diff --git a/NODE_LIST.md b/NODE_LIST.md index be814e56..2de5546b 100644 --- a/NODE_LIST.md +++ b/NODE_LIST.md @@ -55,6 +55,7 @@ TupleExpression UnaryOperation UncheckedBlock UserDefinedTypeName +UserDefinedValueTypeDefinition UsingForDirective VariableDeclaration VariableDeclarationStatement diff --git a/package-lock.json b/package-lock.json index 69014338..56a79277 100644 --- a/package-lock.json +++ b/package-lock.json @@ -250,29 +250,52 @@ "dev": true }, "@cspotcode/source-map-support": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz", - "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", "dev": true, "requires": { "@cspotcode/source-map-consumer": "0.8.0" } }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", + "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", + "debug": "^4.3.2", + "espree": "^9.0.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + } } }, "@ethersproject/abi": { @@ -475,9 +498,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", @@ -486,9 +509,9 @@ } }, "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "@istanbuljs/load-nyc-config": { @@ -574,9 +597,9 @@ "dev": true }, "@jest/types": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.6.tgz", - "integrity": "sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g==", + "version": "27.2.5", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz", + "integrity": "sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -642,6 +665,14 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "requires": { + "@types/node": "*" + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -649,9 +680,9 @@ "dev": true }, "@types/fs-extra": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.12.tgz", - "integrity": "sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==", + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", "dev": true, "requires": { "@types/node": "*" @@ -700,129 +731,145 @@ "dev": true }, "@types/node": { - "version": "12.20.20", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.20.tgz", - "integrity": "sha512-kqmxiJg4AT7rsSPIhO6eoBIx9mNwwpeH42yjtgQh6X2ANSpLpvToMXv+LMFdfxpwG1FZXZ41OGZMiUAtbBLEvg==", - "dev": true + "version": "12.20.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.37.tgz", + "integrity": "sha512-i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA==" + }, + "@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/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "requires": { + "@types/node": "*" + } }, "@types/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now==", + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==", "dev": true }, "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "4.29.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.2.tgz", - "integrity": "sha512-x4EMgn4BTfVd9+Z+r+6rmWxoAzBaapt4QFqE+d8L8sUtYZYLDTK6VG/y/SMMWA5t1/BVU5Kf+20rX4PtWzUYZg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz", + "integrity": "sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.29.2", - "@typescript-eslint/scope-manager": "4.29.2", - "debug": "^4.3.1", + "@typescript-eslint/experimental-utils": "5.3.1", + "@typescript-eslint/scope-manager": "5.3.1", + "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.1.0", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" } }, "@typescript-eslint/experimental-utils": { - "version": "4.29.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.2.tgz", - "integrity": "sha512-P6mn4pqObhftBBPAv4GQtEK7Yos1fz/MlpT7+YjH9fTxZcALbiiPKuSIfYP/j13CeOjfq8/fr9Thr2glM9ub7A==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz", + "integrity": "sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w==", "dev": true, "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.29.2", - "@typescript-eslint/types": "4.29.2", - "@typescript-eslint/typescript-estree": "4.29.2", + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.3.1", + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/typescript-estree": "5.3.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - } } }, "@typescript-eslint/parser": { - "version": "4.29.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.29.2.tgz", - "integrity": "sha512-WQ6BPf+lNuwteUuyk1jD/aHKqMQ9jrdCn7Gxt9vvBnzbpj7aWEf+aZsJ1zvTjx5zFxGCt000lsbD9tQPEL8u6g==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.3.1.tgz", + "integrity": "sha512-TD+ONlx5c+Qhk21x9gsJAMRohWAUMavSOmJgv3JGy9dgPhuBd5Wok0lmMClZDyJNLLZK1JRKiATzCKZNUmoyfw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.29.2", - "@typescript-eslint/types": "4.29.2", - "@typescript-eslint/typescript-estree": "4.29.2", - "debug": "^4.3.1" + "@typescript-eslint/scope-manager": "5.3.1", + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/typescript-estree": "5.3.1", + "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "4.29.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.29.2.tgz", - "integrity": "sha512-mfHmvlQxmfkU8D55CkZO2sQOueTxLqGvzV+mG6S/6fIunDiD2ouwsAoiYCZYDDK73QCibYjIZmGhpvKwAB5BOA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.3.1.tgz", + "integrity": "sha512-XksFVBgAq0Y9H40BDbuPOTUIp7dn4u8oOuhcgGq7EoDP50eqcafkMVGrypyVGvDYHzjhdUCUwuwVUK4JhkMAMg==", "dev": true, "requires": { - "@typescript-eslint/types": "4.29.2", - "@typescript-eslint/visitor-keys": "4.29.2" + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/visitor-keys": "5.3.1" } }, "@typescript-eslint/types": { - "version": "4.29.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.29.2.tgz", - "integrity": "sha512-K6ApnEXId+WTGxqnda8z4LhNMa/pZmbTFkDxEBLQAbhLZL50DjeY0VIDCml/0Y3FlcbqXZrABqrcKxq+n0LwzQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.3.1.tgz", + "integrity": "sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.29.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.2.tgz", - "integrity": "sha512-TJ0/hEnYxapYn9SGn3dCnETO0r+MjaxtlWZ2xU+EvytF0g4CqTpZL48SqSNn2hXsPolnewF30pdzR9a5Lj3DNg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.1.tgz", + "integrity": "sha512-PwFbh/PKDVo/Wct6N3w+E4rLZxUDgsoII/GrWM2A62ETOzJd4M6s0Mu7w4CWsZraTbaC5UQI+dLeyOIFF1PquQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.29.2", - "@typescript-eslint/visitor-keys": "4.29.2", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", + "@typescript-eslint/types": "5.3.1", + "@typescript-eslint/visitor-keys": "5.3.1", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", "semver": "^7.3.5", "tsutils": "^3.21.0" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } } }, "@typescript-eslint/visitor-keys": { - "version": "4.29.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.2.tgz", - "integrity": "sha512-bDgJLQ86oWHJoZ1ai4TZdgXzJxsea3Ee9u9wsTAvjChdj2WLcVsgWYAPeY7RQMn16tKrlQaBnpKv7KBfs4EQag==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.1.tgz", + "integrity": "sha512-3cHUzUuVTuNHx0Gjjt5pEHa87+lzyqOiHXy/Gz+SJOCW1mpw9xQHIIEwnKn+Thph1mgWyZ90nboOcSuZr/jTTQ==", "dev": true, "requires": { - "@typescript-eslint/types": "4.29.2", - "eslint-visitor-keys": "^2.0.0" + "@typescript-eslint/types": "5.3.1", + "eslint-visitor-keys": "^3.0.0" } }, "@ungap/promise-all-settled": { @@ -832,9 +879,9 @@ "dev": true }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", "dev": true }, "acorn-jsx": { @@ -951,17 +998,19 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "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" + } + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -976,6 +1025,11 @@ "file-uri-to-path": "1.0.0" } }, + "blakejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", + "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" + }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", @@ -1009,10 +1063,41 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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" + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, "caching-transform": { "version": "4.0.0", @@ -1104,6 +1189,15 @@ "readdirp": "~3.6.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.1", + "safe-buffer": "^5.0.1" + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1189,6 +1283,31 @@ } } }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -1215,9 +1334,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -1228,23 +1347,10 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "default-require-extensions": { @@ -1307,11 +1413,6 @@ "esutils": "^2.0.2" } }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, "elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", @@ -1375,37 +1476,36 @@ "dev": true }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.2.0.tgz", + "integrity": "sha512-erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.4", + "@humanwhocodes/config-array": "^0.6.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^6.0.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -1413,28 +1513,24 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "cross-spawn": { @@ -1454,6 +1550,57 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, + "eslint-scope": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", + "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -1476,12 +1623,12 @@ "dev": true }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "which": { @@ -1502,9 +1649,9 @@ "dev": true }, "eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" @@ -1521,45 +1668,37 @@ } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", + "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", + "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", "dev": true, "requires": { - "acorn": "^7.4.0", + "acorn": "^8.5.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "eslint-visitor-keys": "^3.0.0" } }, "esprima": { @@ -1578,9 +1717,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -1595,9 +1734,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -1614,16 +1753,6 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, "ethereum-bloom-filters": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", @@ -1632,6 +1761,60 @@ "js-sha3": "^0.8.0" } }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "keccak": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz", + "integrity": "sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + } + } + }, + "ethereumjs-util": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.2.tgz", + "integrity": "sha512-xCV3PTAhW8Q2k88XZn9VcO4OrjpeXAlDm5LQTaOLp81SjNSSY6+MwuGXrx6vafOMheWSmZGxIXUbue5e9UvUBw==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.4" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + }, "ethjs-unit": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", @@ -1648,6 +1831,24 @@ } } }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -1671,16 +1872,16 @@ } }, "expect": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.6.tgz", - "integrity": "sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw==", + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz", + "integrity": "sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==", "dev": true, "requires": { - "@jest/types": "^27.0.6", + "@jest/types": "^27.2.5", "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.0.6", - "jest-message-util": "^27.0.6", + "jest-get-type": "^27.3.1", + "jest-matcher-utils": "^27.3.1", + "jest-message-util": "^27.3.1", "jest-regex-util": "^27.0.6" }, "dependencies": { @@ -1747,9 +1948,9 @@ } }, "fastq": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", - "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -1798,14 +1999,24 @@ } }, "findup-sync": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", - "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "requires": { "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^4.0.2", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", "resolve-dir": "^1.0.1" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + } } }, "flat": { @@ -1836,9 +2047,9 @@ } }, "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, "follow-redirects": { @@ -1980,15 +2191,6 @@ "is-glob": "^4.0.1" } }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, "global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", @@ -2012,9 +2214,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -2040,14 +2242,6 @@ "ignore": "^5.1.4", "merge2": "^1.3.0", "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } } }, "graceful-fs": { @@ -2061,33 +2255,22 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, "hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -2172,9 +2355,9 @@ } }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true }, "ignore-walk": { @@ -2259,15 +2442,11 @@ "number-is-nan": "^1.0.0" } }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -2480,48 +2659,48 @@ } }, "jest-diff": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.6.tgz", - "integrity": "sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==", + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz", + "integrity": "sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==", "dev": true, "requires": { "chalk": "^4.0.0", "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.0.6" + "jest-get-type": "^27.3.1", + "pretty-format": "^27.3.1" } }, "jest-get-type": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz", + "integrity": "sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==", "dev": true }, "jest-matcher-utils": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz", - "integrity": "sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA==", + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz", + "integrity": "sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.0.6" + "jest-diff": "^27.3.1", + "jest-get-type": "^27.3.1", + "pretty-format": "^27.3.1" } }, "jest-message-util": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.6.tgz", - "integrity": "sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw==", + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz", + "integrity": "sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.0.6", + "@jest/types": "^27.2.5", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.0.6", + "pretty-format": "^27.3.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" } @@ -2585,6 +2764,12 @@ "minimist": "^1.2.5" } }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -2670,12 +2855,6 @@ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -2688,12 +2867,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -2750,11 +2923,21 @@ } }, "marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", + "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", "dev": true }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "mem": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", @@ -2790,19 +2973,6 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -2827,16 +2997,16 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mocha": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.0.tgz", - "integrity": "sha512-Kjg/XxYOFFUi0h/FwMOeb6RoroiZ+P1yOfya6NK7h3dNhahrJx1r2XIT3ge4ZQvJM86mdjNA+W5phqRQh7DwCg==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", + "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.2", - "debug": "4.3.1", + "debug": "4.3.2", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", @@ -2847,12 +3017,11 @@ "log-symbols": "4.1.0", "minimatch": "3.0.4", "ms": "2.1.3", - "nanoid": "3.1.23", + "nanoid": "3.1.25", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "wide-align": "1.1.3", "workerpool": "6.1.5", "yargs": "16.2.0", "yargs-parser": "20.2.4", @@ -3090,9 +3259,9 @@ "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" }, "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, "natural-compare": { @@ -3101,23 +3270,27 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "dev": true }, + "node-gyp-build": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" + }, "node-preload": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", @@ -3425,11 +3598,6 @@ } } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3557,11 +3725,6 @@ "callsites": "^3.0.0" } }, - "parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==" - }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -3608,6 +3771,18 @@ "pinkie-promise": "^2.0.0" } }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "peggy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/peggy/-/peggy-1.2.0.tgz", @@ -3704,9 +3879,9 @@ "dev": true }, "prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", "dev": true }, "prettier-linter-helpers": { @@ -3719,21 +3894,21 @@ } }, "pretty-format": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.6.tgz", - "integrity": "sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ==", + "version": "27.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz", + "integrity": "sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==", "dev": true, "requires": { - "@jest/types": "^27.0.6", - "ansi-regex": "^5.0.0", + "@jest/types": "^27.2.5", + "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -3744,11 +3919,6 @@ } } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, "process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -3779,16 +3949,6 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -3828,6 +3988,16 @@ "read-pkg": "^1.0.0" } }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -3838,9 +4008,9 @@ } }, "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "release-zalgo": { @@ -3904,6 +4074,23 @@ "glob": "^7.1.3" } }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "requires": { + "bn.js": "^4.11.1" + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -3918,6 +4105,21 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -3940,6 +4142,20 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -3950,88 +4166,31 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - } + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shiki": { + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.12.tgz", + "integrity": "sha512-VXcROdldv0/Qu0w2XvzU4IrvTeBNs/Kj/FCmtcEXGz7Tic/veQzliJj6tEiAgoKianhQstpYmbPDStHU5Opqcw==", + "dev": true, + "requires": { + "jsonc-parser": "^3.0.0", + "onigasm": "^2.2.5", + "vscode-textmate": "5.2.0" } }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "solc-0.4.13": { "version": "npm:solc@0.4.13", "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.13.tgz", @@ -7904,6 +8063,59 @@ } } }, + "solc-0.8.10": { + "version": "npm:solc@0.8.10", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.10.tgz", + "integrity": "sha512-I/Mcn6J5bEtJqveNLplQm9IRrhemm6v+qkw5S2+wM4x9HItJ1sYdrqVTN3j4DMhFDM3ZbvM0QywVzpPx666PHw==", + "requires": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "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==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, "solc-0.8.2": { "version": "npm:solc@0.8.2", "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.2.tgz", @@ -8192,6 +8404,112 @@ } } }, + "solc-0.8.8": { + "version": "npm:solc@0.8.8", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.8.tgz", + "integrity": "sha512-u5N7fq4kABwyLKDbt9Xq99OiYBP7x56Pl/Oyz4TbNr9xbjgaMW2lhNIAZWtTme7Iuufw+3Tq5Ts3Bia56BOkvQ==", + "requires": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "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==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "solc-0.8.9": { + "version": "npm:solc@0.8.9", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.9.tgz", + "integrity": "sha512-dD8tQgGCrdWQPpbDTbQF048S3JAcpytOax2r5qPgQluKJPCRFT6c/fec0ZkbrRwRSeYT/qiKz0OKBDOinnGeWw==", + "requires": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "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==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -8272,9 +8590,9 @@ "integrity": "sha1-P1DusMcWlDLlW0Jr5uOmjruhYhg=" }, "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -8297,11 +8615,6 @@ "stubs": "^3.0.0" } }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -8312,6 +8625,14 @@ "strip-ansi": "^3.0.0" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -8362,84 +8683,6 @@ "has-flag": "^3.0.0" } }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.5.0.tgz", - "integrity": "sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "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==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "teeny-request": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", @@ -8478,11 +8721,6 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -8506,12 +8744,12 @@ } }, "ts-node": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz", - "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz", + "integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==", "dev": true, "requires": { - "@cspotcode/source-map-support": "0.6.1", + "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", @@ -8534,9 +8772,9 @@ } }, "ts-pegjs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ts-pegjs/-/ts-pegjs-1.1.1.tgz", - "integrity": "sha512-8mjctiNMY0q0YyLAykkaxZnKo6Y3LDL7ncpvrWZsdqO9ZwykUYDsYQmSOAvKXOs5l6FmQsbzMJkRCP49aj59xQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-pegjs/-/ts-pegjs-1.2.1.tgz", + "integrity": "sha512-fvT1oBQKMO3+9MJSUELTIuwkMs0IXJ2iEUCIw6yIriz7agh+OAwAL5Q9y3WiqzxwNF+M+xuK676UVRZxBcaOmQ==", "dev": true, "requires": { "peggy": "^1.2.0" @@ -8582,40 +8820,40 @@ } }, "typedoc": { - "version": "0.21.6", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.21.6.tgz", - "integrity": "sha512-+4u3PEBjQdaL5/yfus5WJbjIdQHv7E/FpZq3cNki9BBdGmZhqnTF6JLIXDQ2EfVggojOJG9/soB5QVFgXRYnIw==", + "version": "0.22.8", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.8.tgz", + "integrity": "sha512-92S+YzyhospdXN5rnkYUTgirdTYqNWY7NP9vco+IqQQoiSXzVSUsawVro+tMyEEsWUS7EMaJ2YOjB9uE0CBi6A==", "dev": true, "requires": { - "glob": "^7.1.7", - "handlebars": "^4.7.7", + "glob": "^7.2.0", "lunr": "^2.3.9", - "marked": "^2.1.1", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.10" + "marked": "^3.0.8", + "minimatch": "^3.0.4", + "shiki": "^0.9.12" + }, + "dependencies": { + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "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" + } + } } }, - "typedoc-default-themes": { - "version": "0.12.10", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz", - "integrity": "sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA==", - "dev": true - }, "typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true }, - "uglify-js": { - "version": "3.13.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.2.tgz", - "integrity": "sha512-SbMu4D2Vo95LMC/MetNaso1194M1htEA+JrqE9Hk+G2DhI+itfS9TRu9ZKeCahLDNa/J3n4MqUJ/fOHMzQpRWw==", - "dev": true, - "optional": true - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -8630,11 +8868,6 @@ "punycode": "^2.1.0" } }, - "url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, "urlgrey": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", @@ -8649,6 +8882,11 @@ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -8671,28 +8909,28 @@ } }, "vscode-textmate": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.3.1.tgz", - "integrity": "sha512-X4E7iPJzmMsL9AY4MyZrxUt0Dm/kGWreJEGdQgAHXHQrRGDdlwAu9X1LCsQ0VKUCg5wjwSS1LPpy1BOfxIw4Tw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", "dev": true }, "web3-eth-abi": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.2.tgz", - "integrity": "sha512-P3bJbDR5wib4kWGfVeBKBVi27T+AiHy4EJxYM6SMNbpm3DboLDdisu9YBd6INMs8rzxgnprBbGmmyn4jKIDKAA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.6.0.tgz", + "integrity": "sha512-fImomGE9McuTMJLwK8Tp0lTUzXqCkWeMm00qPVIwpJ/h7lCw9UFYV9+4m29wSqW6FF+FIZKwc6UBEf9dlx3orA==", "requires": { "@ethersproject/abi": "5.0.7", - "web3-utils": "1.5.2" + "web3-utils": "1.6.0" } }, "web3-utils": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.2.tgz", - "integrity": "sha512-quTtTeQJHYSxAwIBOCGEcQtqdVcFWX6mCFNoqnp+mRbq+Hxbs8CGgO/6oqfBx4OvxIOfCpgJWYVHswRXnbEu9Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz", + "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==", "requires": { "bn.js": "^4.11.9", - "eth-lib": "0.2.8", "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", "randombytes": "^2.1.0", @@ -8712,15 +8950,6 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, "window-size": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", @@ -8732,12 +8961,6 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, "workerpool": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", @@ -8770,44 +8993,6 @@ "typedarray-to-buffer": "^3.1.5" } }, - "xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "requires": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "requires": { - "xhr-request": "^1.1.0" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, "y18n": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", diff --git a/package.json b/package.json index e2669157..e5908e24 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "prepare": "npm run build" }, "dependencies": { - "findup-sync": "^4.0.0", + "findup-sync": "^5.0.0", "fs-extra": "^10.0.0", "jsel": "^1.1.6", "minimist": "^1.2.5", @@ -91,30 +91,33 @@ "solc-0.8.5": "npm:solc@0.8.5", "solc-0.8.6": "npm:solc@0.8.6", "solc-0.8.7": "npm:solc@0.8.7-fixed", + "solc-0.8.8": "npm:solc@0.8.8", + "solc-0.8.9": "npm:solc@0.8.9", + "solc-0.8.10": "npm:solc@0.8.10", "src-location": "^1.1.0", - "web3-eth-abi": "^1.5.2" + "web3-eth-abi": "^1.6.0" }, "devDependencies": { - "@types/fs-extra": "^9.0.12", + "@types/fs-extra": "^9.0.13", "@types/minimist": "^1.2.2", "@types/mocha": "^9.0.0", - "@types/node": "^12.20.20", - "@types/semver": "^7.3.8", - "@typescript-eslint/eslint-plugin": "^4.29.2", - "@typescript-eslint/parser": "^4.29.2", + "@types/node": "^12.20.37", + "@types/semver": "^7.3.9", + "@typescript-eslint/eslint-plugin": "^5.3.1", + "@typescript-eslint/parser": "^5.3.1", "codecov": "^3.8.3", - "eslint": "^7.32.0", + "eslint": "^8.2.0", "eslint-config-prettier": "^8.3.0", - "eslint-plugin-prettier": "^3.4.1", - "expect": "^27.0.6", - "mocha": "^9.1.0", + "eslint-plugin-prettier": "^4.0.0", + "expect": "^27.3.1", + "mocha": "^9.1.3", "nyc": "^15.1.0", "peggy": "^1.2.0", - "prettier": "2.3.2", - "ts-node": "^10.2.1", - "ts-pegjs": "^1.1.1", - "typedoc": "^0.21.6", - "typescript": "^4.3.5" + "prettier": "2.4.1", + "ts-node": "^10.4.0", + "ts-pegjs": "^1.2.1", + "typedoc": "^0.22.8", + "typescript": "^4.4.4" }, "homepage": "https://consensys.github.io/solc-typed-ast", "bugs": "https://github.com/ConsenSys/solc-typed-ast/issues", diff --git a/src/ast/ast_node_factory.ts b/src/ast/ast_node_factory.ts index 65f0cad6..b5d2de9c 100644 --- a/src/ast/ast_node_factory.ts +++ b/src/ast/ast_node_factory.ts @@ -9,6 +9,7 @@ import { EventDefinition } from "./implementation/declaration/event_definition"; import { FunctionDefinition } from "./implementation/declaration/function_definition"; import { ModifierDefinition } from "./implementation/declaration/modifier_definition"; import { StructDefinition } from "./implementation/declaration/struct_definition"; +import { UserDefinedValueTypeDefinition } from "./implementation/declaration/user_defined_value_type_definition"; import { VariableDeclaration } from "./implementation/declaration/variable_declaration"; import { Assignment } from "./implementation/expression/assignment"; import { BinaryOperation } from "./implementation/expression/binary_operation"; @@ -190,6 +191,18 @@ const argExtractionMapping = new Map, (node: any) => node.raw ] ], + [ + UserDefinedValueTypeDefinition, + ( + node: UserDefinedValueTypeDefinition + ): Specific> => [ + node.name, + node.canonicalName, + node.underlyingType, + node.nameLocation, + node.raw + ] + ], [ VariableDeclaration, ( @@ -728,6 +741,12 @@ export class ASTNodeFactory { return this.make(StructDefinition, ...args); } + makeUserDefinedValueTypeDefinition( + ...args: Specific> + ): UserDefinedValueTypeDefinition { + return this.make(UserDefinedValueTypeDefinition, ...args); + } + makeVariableDeclaration( ...args: Specific> ): VariableDeclaration { diff --git a/src/ast/definitions.ts b/src/ast/definitions.ts index 1bd66055..099641da 100644 --- a/src/ast/definitions.ts +++ b/src/ast/definitions.ts @@ -3,12 +3,14 @@ import { forAll, pp } from "../misc"; import { ABIEncoderVersion } from "../types/abi"; import { ASTNode } from "./ast_node"; import { StateVariableVisibility } from "./constants"; -import { EnumDefinition, StructDefinition } from "./implementation/declaration"; import { ContractDefinition } from "./implementation/declaration/contract_definition"; +import { EnumDefinition } from "./implementation/declaration/enum_definition"; import { ErrorDefinition } from "./implementation/declaration/error_definition"; import { EventDefinition } from "./implementation/declaration/event_definition"; import { FunctionDefinition } from "./implementation/declaration/function_definition"; import { ModifierDefinition } from "./implementation/declaration/modifier_definition"; +import { StructDefinition } from "./implementation/declaration/struct_definition"; +import { UserDefinedValueTypeDefinition } from "./implementation/declaration/user_defined_value_type_definition"; import { VariableDeclaration } from "./implementation/declaration/variable_declaration"; import { ImportDirective, SourceUnit } from "./implementation/meta"; import { @@ -31,6 +33,7 @@ export type AnyResolvable = | StructDefinition | EnumDefinition | ContractDefinition + | UserDefinedValueTypeDefinition | ImportDirective; /** @@ -152,7 +155,8 @@ function* lookupInSourceUnit( child instanceof ContractDefinition || child instanceof StructDefinition || child instanceof EnumDefinition || - child instanceof ErrorDefinition) && + child instanceof ErrorDefinition || + child instanceof UserDefinedValueTypeDefinition) && child.name === name ) { yield child; @@ -206,6 +210,7 @@ function* lookupInContractDefinition( scope: ContractDefinition ): Iterable { const overridenSigHashes = new Set(); + for (const base of scope.vLinearizedBaseContracts) { for (const child of base.children) { if ( @@ -215,7 +220,8 @@ function* lookupInContractDefinition( child instanceof EventDefinition || child instanceof StructDefinition || child instanceof EnumDefinition || - child instanceof ErrorDefinition) && + child instanceof ErrorDefinition || + child instanceof UserDefinedValueTypeDefinition) && child.name === name ) { let sigHash: string | undefined; diff --git a/src/ast/implementation/declaration/contract_definition.ts b/src/ast/implementation/declaration/contract_definition.ts index 90de81c9..f9e40cb9 100644 --- a/src/ast/implementation/declaration/contract_definition.ts +++ b/src/ast/implementation/declaration/contract_definition.ts @@ -11,6 +11,7 @@ import { EventDefinition } from "./event_definition"; import { FunctionDefinition } from "./function_definition"; import { ModifierDefinition } from "./modifier_definition"; import { StructDefinition } from "./struct_definition"; +import { UserDefinedValueTypeDefinition } from "./user_defined_value_type_definition"; import { VariableDeclaration } from "./variable_declaration"; export class ContractDefinition extends ASTNodeWithChildren { @@ -251,6 +252,15 @@ export class ContractDefinition extends ASTNodeWithChildren { ) as EnumDefinition[]; } + /** + * User-defined value type definitions of contract + */ + get vUserDefinedValueTypes(): readonly UserDefinedValueTypeDefinition[] { + return this.ownChildren.filter( + (node) => node instanceof UserDefinedValueTypeDefinition + ) as UserDefinedValueTypeDefinition[]; + } + /** * Constructor reference (if definition is present for this contract) */ diff --git a/src/ast/implementation/declaration/index.ts b/src/ast/implementation/declaration/index.ts index 49fcaeaa..1c5dbe39 100644 --- a/src/ast/implementation/declaration/index.ts +++ b/src/ast/implementation/declaration/index.ts @@ -6,4 +6,5 @@ export * from "./event_definition"; export * from "./function_definition"; export * from "./modifier_definition"; export * from "./struct_definition"; +export * from "./user_defined_value_type_definition"; export * from "./variable_declaration"; diff --git a/src/ast/implementation/declaration/user_defined_value_type_definition.ts b/src/ast/implementation/declaration/user_defined_value_type_definition.ts new file mode 100644 index 00000000..1b59ac19 --- /dev/null +++ b/src/ast/implementation/declaration/user_defined_value_type_definition.ts @@ -0,0 +1,58 @@ +import { ASTNode } from "../../ast_node"; +import { SourceUnit } from "../meta/source_unit"; +import { ElementaryTypeName } from "../type/elementary_type_name"; +import { ContractDefinition } from "./contract_definition"; + +export class UserDefinedValueTypeDefinition extends ASTNode { + /** + * The name of the user-defined value type definition + */ + name: string; + + /** + * Canonical name (or qualified name), e.g. `DefiningContract.SomeType`. + * Is `undefined` for Solidity 0.8.8. Available since Solidity 0.8.9. + */ + canonicalName?: string; + + /** + * The source range for name string + */ + nameLocation?: string; + + /** + * Aliased value type + */ + underlyingType: ElementaryTypeName; + + constructor( + id: number, + src: string, + type: string, + name: string, + canonicalName: string | undefined, + underlyingType: ElementaryTypeName, + nameLocation?: string, + raw?: any + ) { + super(id, src, type, raw); + + this.name = name; + this.canonicalName = canonicalName; + this.underlyingType = underlyingType; + this.nameLocation = nameLocation; + + this.acceptChildren(); + } + + get children(): readonly ASTNode[] { + return this.pickNodes(this.underlyingType); + } + + /** + * Reference to its scoped contract or source unit + */ + get vScope(): ContractDefinition | SourceUnit { + return this.parent as ContractDefinition | SourceUnit; + } +} diff --git a/src/ast/implementation/declaration/variable_declaration.ts b/src/ast/implementation/declaration/variable_declaration.ts index 7cd58567..b707b844 100644 --- a/src/ast/implementation/declaration/variable_declaration.ts +++ b/src/ast/implementation/declaration/variable_declaration.ts @@ -173,6 +173,7 @@ export class VariableDeclaration extends ASTNode { canonicalSignatureType(encoderVersion: ABIEncoderVersion): string { const type = variableDeclarationToTypeNode(this); const abiType = toABIEncodedType(type, encoderVersion); + return abiTypeToCanonicalName(generalizeType(abiType)[0]); } diff --git a/src/ast/implementation/meta/source_unit.ts b/src/ast/implementation/meta/source_unit.ts index b2f078aa..5ba89a50 100644 --- a/src/ast/implementation/meta/source_unit.ts +++ b/src/ast/implementation/meta/source_unit.ts @@ -4,6 +4,7 @@ import { EnumDefinition } from "../declaration/enum_definition"; import { ErrorDefinition } from "../declaration/error_definition"; import { FunctionDefinition } from "../declaration/function_definition"; import { StructDefinition } from "../declaration/struct_definition"; +import { UserDefinedValueTypeDefinition } from "../declaration/user_defined_value_type_definition"; import { VariableDeclaration } from "../declaration/variable_declaration"; import { ImportDirective } from "./import_directive"; import { PragmaDirective } from "./pragma_directive"; @@ -14,6 +15,7 @@ export type ExportedSymbol = | EnumDefinition | ErrorDefinition | FunctionDefinition + | UserDefinedValueTypeDefinition | VariableDeclaration | ImportDirective; @@ -135,6 +137,15 @@ export class SourceUnit extends ASTNodeWithChildren { ) as VariableDeclaration[]; } + /** + * References to file-level user-defined value type definitions + */ + get vUserDefinedValueTypes(): readonly UserDefinedValueTypeDefinition[] { + return this.ownChildren.filter( + (node) => node instanceof UserDefinedValueTypeDefinition + ) as UserDefinedValueTypeDefinition[]; + } + /** * Referenced exported symbols */ diff --git a/src/ast/modern/configuration.ts b/src/ast/modern/configuration.ts index a3b8eaf3..04bb4253 100644 --- a/src/ast/modern/configuration.ts +++ b/src/ast/modern/configuration.ts @@ -8,6 +8,7 @@ import { EventDefinition } from "../implementation/declaration/event_definition" import { FunctionDefinition } from "../implementation/declaration/function_definition"; import { ModifierDefinition } from "../implementation/declaration/modifier_definition"; import { StructDefinition } from "../implementation/declaration/struct_definition"; +import { UserDefinedValueTypeDefinition } from "../implementation/declaration/user_defined_value_type_definition"; import { VariableDeclaration } from "../implementation/declaration/variable_declaration"; import { Assignment } from "../implementation/expression/assignment"; import { BinaryOperation } from "../implementation/expression/binary_operation"; @@ -109,6 +110,7 @@ import { ModernTupleExpressionProcessor } from "./tuple_expression_processor"; import { ModernUnaryOperationProcessor } from "./unary_operation_processor"; import { ModernUncheckedBlockProcessor } from "./unchecked_block_processor"; import { ModernUserDefinedTypeNameProcessor } from "./user_defined_type_name_processor"; +import { ModernUserDefinedValueTypeDefinitionProcessor } from "./user_defined_value_type_definition_processor"; import { ModernUsingForDirectiveProcessor } from "./using_for_directive_processor"; import { ModernVariableDeclarationProcessor } from "./variable_declaration_processor"; import { ModernVariableDeclarationStatementProcessor } from "./variable_declaration_statement_processor"; @@ -178,7 +180,8 @@ const processors = { Break: new ModernBreakProcessor(), Continue: new ModernContinueProcessor(), PlaceholderStatement: new ModernPlaceholderStatementProcessor(), - Throw: new ModernThrowProcessor() + Throw: new ModernThrowProcessor(), + UserDefinedValueTypeDefinition: new ModernUserDefinedValueTypeDefinitionProcessor() }; export const ModernConfiguration: ASTReaderConfiguration = { @@ -468,6 +471,11 @@ export const ModernConfiguration: ASTReaderConfiguration = { Throw: { constructor: Throw, processor: processors.Throw + }, + + UserDefinedValueTypeDefinition: { + constructor: UserDefinedValueTypeDefinition, + processor: processors.UserDefinedValueTypeDefinition } } }; diff --git a/src/ast/modern/index.ts b/src/ast/modern/index.ts index 26502674..e6974674 100644 --- a/src/ast/modern/index.ts +++ b/src/ast/modern/index.ts @@ -55,6 +55,7 @@ export * from "./type_name_processor"; export * from "./unary_operation_processor"; export * from "./unchecked_block_processor"; export * from "./user_defined_type_name_processor"; +export * from "./user_defined_value_type_definition_processor"; export * from "./using_for_directive_processor"; export * from "./variable_declaration_processor"; export * from "./variable_declaration_statement_processor"; diff --git a/src/ast/modern/user_defined_value_type_definition_processor.ts b/src/ast/modern/user_defined_value_type_definition_processor.ts new file mode 100644 index 00000000..222a41fb --- /dev/null +++ b/src/ast/modern/user_defined_value_type_definition_processor.ts @@ -0,0 +1,21 @@ +import { ASTReader, ASTReaderConfiguration } from "../ast_reader"; +import { UserDefinedValueTypeDefinition } from "../implementation/declaration/user_defined_value_type_definition"; +import { ElementaryTypeName } from "../implementation/type/elementary_type_name"; +import { ModernNodeProcessor } from "./node_processor"; + +export class ModernUserDefinedValueTypeDefinitionProcessor extends ModernNodeProcessor { + process( + reader: ASTReader, + config: ASTReaderConfiguration, + raw: any + ): ConstructorParameters { + const [id, src, type] = super.process(reader, config, raw); + + const name: string = raw.name; + const canonicalName: string = raw.canonicalName; + const nameLocation: string | undefined = raw.nameLocation; + const underlyingType = reader.convert(raw.underlyingType, config) as ElementaryTypeName; + + return [id, src, type, name, canonicalName, underlyingType, nameLocation, raw]; + } +} diff --git a/src/ast/sanity.ts b/src/ast/sanity.ts index e8084ceb..4669b505 100644 --- a/src/ast/sanity.ts +++ b/src/ast/sanity.ts @@ -53,6 +53,7 @@ import { UnaryOperation, UncheckedBlock, UserDefinedTypeName, + UserDefinedValueTypeDefinition, UsingForDirective, VariableDeclaration, VariableDeclarationStatement, @@ -401,7 +402,8 @@ export function checkSane(unit: SourceUnit, ctx: ASTContext): void { "vStructs", "vFunctions", "vVariables", - "vErrors" + "vErrors", + "vUserDefinedValueTypes" ); } else if (node instanceof ImportDirective) { /** @@ -479,6 +481,7 @@ export function checkSane(unit: SourceUnit, ctx: ASTContext): void { "vUsingForDirectives", "vStructs", "vEnums", + "vUserDefinedValueTypes", "vConstructor" ]; @@ -557,6 +560,11 @@ export function checkSane(unit: SourceUnit, ctx: ASTContext): void { checkVFieldCtx(node, "vScope", ctx); checkDirectChildren(node, "vMembers"); + } else if (node instanceof UserDefinedValueTypeDefinition) { + checkVFieldCtx(node, "vScope", ctx); + checkVFieldCtx(node, "underlyingType", ctx); + + checkDirectChildren(node, "underlyingType"); } else if (node instanceof VariableDeclaration) { checkFieldAndVFieldMatch(node, "scope", "vScope"); checkVFieldCtx(node, "vScope", ctx); diff --git a/src/ast/writing/ast_mapping.ts b/src/ast/writing/ast_mapping.ts index 32a4a90e..ad0e24d5 100644 --- a/src/ast/writing/ast_mapping.ts +++ b/src/ast/writing/ast_mapping.ts @@ -17,6 +17,7 @@ import { FunctionDefinition, ModifierDefinition, StructDefinition, + UserDefinedValueTypeDefinition, VariableDeclaration } from "../implementation/declaration"; import { @@ -113,7 +114,9 @@ function descTrimRight(desc: SrcDesc): void { * compound statements like ifs. */ function pushSemicolonsDown(desc: SrcDesc): void { - if (desc.length === 0) return; + if (desc.length === 0) { + return; + } const last = desc[desc.length - 1]; @@ -1137,6 +1140,12 @@ class EnumDefinitionWriter extends ASTNodeWriter { } } +class UserDefinedValueTypeDefinitionWriter extends ASTNodeWriter { + writeInner(node: UserDefinedValueTypeDefinition, writer: ASTWriter): SrcDesc { + return writer.desc("type ", node.name, " is ", node.underlyingType, ";"); + } +} + class InheritanceSpecifierWriter extends ASTNodeWriter { writeInner(node: InheritanceSpecifier, writer: ASTWriter): SrcDesc { const args: DescArgs = [node.vBaseType]; @@ -1205,6 +1214,10 @@ class ContractDefinitionWriter extends ASTNodeWriter { result.push(...flatJoin(node.vEnums.map(writeLineFn), wrap), wrap); } + if (node.vUserDefinedValueTypes.length) { + result.push(...flatJoin(node.vUserDefinedValueTypes.map(writeLineFn), wrap), wrap); + } + if (node.vErrors.length) { result.push(...flatJoin(node.vErrors.map(writeLineFn), wrap), wrap); } @@ -1305,7 +1318,7 @@ class SourceUnitWriter extends ASTNodeWriter { result.push(...flatten(node.vImportDirectives.map(writeLineFn)), wrap); } - const typeDefs = [...node.vEnums, ...node.vStructs]; + const typeDefs = [...node.vEnums, ...node.vUserDefinedValueTypes, ...node.vStructs]; if (typeDefs.length > 0) { result.push(...flatJoin(typeDefs.map(writeLineFn), wrap), wrap); @@ -1377,6 +1390,7 @@ export const DefaultASTWriterMapping = new Map, ASTN [StructDefinition, new StructDefinitionWriter()], [EnumValue, new EnumValueWriter()], [EnumDefinition, new EnumDefinitionWriter()], + [UserDefinedValueTypeDefinition, new UserDefinedValueTypeDefinitionWriter()], [UsingForDirective, new UsingForDirectiveWriter()], [InheritanceSpecifier, new InheritanceSpecifierWriter()], [ContractDefinition, new ContractDefinitionWriter()], diff --git a/src/compile/constants.ts b/src/compile/constants.ts index a477be2d..628dd8e8 100644 --- a/src/compile/constants.ts +++ b/src/compile/constants.ts @@ -62,7 +62,10 @@ export const CompilerVersions08 = [ "0.8.4", "0.8.5", "0.8.6", - "0.8.7" + "0.8.7", + "0.8.8", + "0.8.9", + "0.8.10" ]; export const CompilerSeries = [ diff --git a/src/compile/utils.ts b/src/compile/utils.ts index e69c91aa..09167f8a 100644 --- a/src/compile/utils.ts +++ b/src/compile/utils.ts @@ -242,7 +242,7 @@ export function createFileSystemImportFinder( } throw new Error(`Unable to find import path "${filePath}"`); - } catch (e) { + } catch (e: any) { return { error: e.message }; } }; diff --git a/src/types/abi.ts b/src/types/abi.ts index 6b0e95ed..6f0577aa 100644 --- a/src/types/abi.ts +++ b/src/types/abi.ts @@ -1,5 +1,18 @@ -import { TypeNode, PointerType, UserDefinedType, AddressType, enumToIntType } from "."; -import { DataLocation, ContractDefinition, EnumDefinition, StructDefinition } from ".."; +import { + AddressType, + enumToIntType, + PointerType, + typeNameToTypeNode, + TypeNode, + UserDefinedType +} from "."; +import { + ContractDefinition, + DataLocation, + EnumDefinition, + StructDefinition, + UserDefinedValueTypeDefinition +} from ".."; import { assert } from "../misc"; import { ArrayType, @@ -35,7 +48,7 @@ export function toABIEncodedType( normalizePointers = false ): TypeNode { if (type instanceof MappingType) { - throw new Error(`Cannnot abi-encode mapping types.`); + throw new Error("Cannnot abi-encode mapping types"); } if (type instanceof ArrayType) { @@ -47,10 +60,15 @@ export function toABIEncodedType( if (type instanceof PointerType) { const toT = toABIEncodedType(type.to, encoderVersion, normalizePointers); + return new PointerType(toT, normalizePointers ? DataLocation.Memory : type.location); } if (type instanceof UserDefinedType) { + if (type.definition instanceof UserDefinedValueTypeDefinition) { + return typeNameToTypeNode(type.definition.underlyingType); + } + if (type.definition instanceof ContractDefinition) { return new AddressType(false); } @@ -95,7 +113,7 @@ export function abiTypeToCanonicalName(t: TypeNode): string { // Payable is ignored in canonical names if (t instanceof AddressType) { - return `address`; + return "address"; } if (t instanceof ArrayType) { @@ -111,7 +129,7 @@ export function abiTypeToCanonicalName(t: TypeNode): string { return abiTypeToCanonicalName(t.to); } - assert(false, `Unexpected ABI Type ${t.pp()}`); + assert(false, "Unexpected ABI Type {0}", t); } /** diff --git a/src/types/ast/user_defined_type.ts b/src/types/ast/user_defined_type.ts index e62780f8..2d6c46bd 100644 --- a/src/types/ast/user_defined_type.ts +++ b/src/types/ast/user_defined_type.ts @@ -1,8 +1,18 @@ -import { ContractDefinition, ContractKind, EnumDefinition, StructDefinition } from "../../ast"; +import { + ContractDefinition, + ContractKind, + EnumDefinition, + StructDefinition, + UserDefinedValueTypeDefinition +} from "../../ast"; import { Range } from "../../misc"; import { TypeNode } from "./type"; -export type UserDefinition = StructDefinition | EnumDefinition | ContractDefinition; +export type UserDefinition = + | StructDefinition + | EnumDefinition + | ContractDefinition + | UserDefinedValueTypeDefinition; export class UserDefinedType extends TypeNode { public readonly name: string; @@ -17,6 +27,10 @@ export class UserDefinedType extends TypeNode { } pp(): string { + if (this.definition instanceof UserDefinedValueTypeDefinition) { + return this.name; + } + let typePrefix: string; if (this.definition instanceof StructDefinition) { diff --git a/src/types/typeStrings/typeString_grammar.pegjs b/src/types/typeStrings/typeString_grammar.pegjs index 6dfd2bb8..ecb1f439 100644 --- a/src/types/typeStrings/typeString_grammar.pegjs +++ b/src/types/typeStrings/typeString_grammar.pegjs @@ -309,6 +309,13 @@ UserDefinedType = options.version, options.ctx ); + } / name: FQName { + return makeUserDefinedType( + name, + UserDefinedValueTypeDefinition, + options.version, + options.ctx + ); } MappingType = @@ -437,27 +444,27 @@ ArrayPtrType = / __ storageLocation: (DataLocation) pointerType: (__ PointerType)? )* { return tail.reduce( - (acc, cur) => { - if (cur.length > 3) { - const size = cur[4]; + (acc, cur) => { + if (cur.length > 3) { + const size = cur[4]; - return new ArrayType(acc, size === null ? undefined : size); - } + return new ArrayType(acc, size === null ? undefined : size); + } - const location = cur[1] as DataLocation; - const kind = cur[2] === null ? undefined : cur[2][1]; + const location = cur[1] as DataLocation; + const kind = cur[2] === null ? undefined : cur[2][1]; - return new PointerType(acc, location, kind); - }, - head + return new PointerType(acc, location, kind); + }, + head ); } // Top-level rule Type = - ModifierType + ModuleType + / ModifierType / TypeExprType / TupleType / BuiltinTypes / ArrayPtrType - / ModuleType diff --git a/src/types/typeStrings/typeString_parser_header.ts b/src/types/typeStrings/typeString_parser_header.ts index 2c75e9b2..4369ea2b 100644 --- a/src/types/typeStrings/typeString_parser_header.ts +++ b/src/types/typeStrings/typeString_parser_header.ts @@ -11,6 +11,7 @@ import { FunctionVisibility, resolveAny, StructDefinition, + UserDefinedValueTypeDefinition, VariableDeclaration } from "../../ast"; import { diff --git a/src/types/utils.ts b/src/types/utils.ts index 1bd1ef1e..9b9da063 100644 --- a/src/types/utils.ts +++ b/src/types/utils.ts @@ -14,6 +14,7 @@ import { StructDefinition, TypeName, UserDefinedTypeName, + UserDefinedValueTypeDefinition, VariableDeclaration } from "../ast"; import { assert } from "../misc"; @@ -32,7 +33,8 @@ import { StringType, TupleType, TypeNode, - UserDefinedType + UserDefinedType, + UserDefinition } from "./ast"; export type VersionDependentType = [TypeNode, string]; @@ -143,9 +145,7 @@ export function generalizeType(type: TypeNode): [TypeNode, DataLocation | undefi return [type, undefined]; } -export function getUserDefinedTypeFQName( - def: ContractDefinition | StructDefinition | EnumDefinition -): string { +export function getUserDefinedTypeFQName(def: UserDefinition): string { return def.vScope instanceof ContractDefinition ? `${def.vScope.name}.${def.name}` : def.name; } @@ -230,7 +230,8 @@ export function typeNameToTypeNode(astT: TypeName): TypeNode { if ( def instanceof StructDefinition || def instanceof EnumDefinition || - def instanceof ContractDefinition + def instanceof ContractDefinition || + def instanceof UserDefinedValueTypeDefinition ) { return new UserDefinedType(getUserDefinedTypeFQName(def), def); } diff --git a/test/integration/compile/latest_08.spec.ts b/test/integration/compile/latest_08.spec.ts index 791c0afa..39655377 100644 --- a/test/integration/compile/latest_08.spec.ts +++ b/test/integration/compile/latest_08.spec.ts @@ -28,47 +28,49 @@ const encounters = new Map([ ["ImportDirective", 1], ["EnumDefinition", 2], ["EnumValue", 6], - ["ContractDefinition", 8], - ["FunctionDefinition", 15], - ["ParameterList", 39], - ["VariableDeclaration", 23], - ["ElementaryTypeName", 23], - ["Block", 32], - ["VariableDeclarationStatement", 9], - ["Literal", 21], + ["ContractDefinition", 12], + ["FunctionDefinition", 23], + ["ParameterList", 57], + ["VariableDeclaration", 41], + ["ElementaryTypeName", 36], + ["Block", 39], + ["VariableDeclarationStatement", 10], + ["Literal", 23], ["UncheckedBlock", 2], - ["ExpressionStatement", 7], + ["ExpressionStatement", 9], ["UnaryOperation", 2], - ["Identifier", 21], - ["Return", 5], + ["Identifier", 47], + ["Return", 10], ["InheritanceSpecifier", 1], - ["IdentifierPath", 11], + ["IdentifierPath", 19], ["UsingForDirective", 1], - ["UserDefinedTypeName", 6], + ["UserDefinedTypeName", 14], ["ModifierInvocation", 2], - ["FunctionCall", 16], - ["MemberAccess", 9], + ["FunctionCall", 27], + ["MemberAccess", 23], ["OverrideSpecifier", 1], ["ElementaryTypeNameExpression", 3], ["NewExpression", 2], ["TryStatement", 2], ["TryCatchClause", 8], ["IfStatement", 3], - ["BinaryOperation", 3], + ["BinaryOperation", 10], ["EventDefinition", 1], ["ModifierDefinition", 1], ["PlaceholderStatement", 1], - ["TupleExpression", 2], + ["TupleExpression", 3], ["EmitStatement", 1], ["WhileStatement", 1], ["Continue", 1], ["DoWhileStatement", 1], ["Break", 1], ["ForStatement", 1], - ["InlineAssembly", 3], + ["InlineAssembly", 4], ["ErrorDefinition", 3], ["StructuredDocumentation", 3], - ["RevertStatement", 3] + ["RevertStatement", 3], + ["UserDefinedValueTypeDefinition", 4], + ["FunctionTypeName", 1] ]); describe(`Compile ${mainSample} with ${compilerVersion} compiler`, () => { @@ -99,11 +101,11 @@ describe(`Compile ${mainSample} with ${compilerVersion} compiler`, () => { const sourceUnit = sourceUnits[0]; - expect(sourceUnit.id).toEqual(315); - expect(sourceUnit.src).toEqual("0:4733:0"); + expect(sourceUnit.id).toEqual(474); + expect(sourceUnit.src).toEqual("0:6239:0"); expect(sourceUnit.absolutePath).toEqual(mainSample); - expect(sourceUnit.children.length).toEqual(13); - expect(sourceUnit.getChildren().length).toEqual(309); + expect(sourceUnit.children.length).toEqual(19); + expect(sourceUnit.getChildren().length).toEqual(468); }); it(`Validate parsed output (${kind})`, () => { diff --git a/test/integration/factory/replace_node.spec.ts b/test/integration/factory/replace_node.spec.ts index 87a8fc30..7b76f099 100644 --- a/test/integration/factory/replace_node.spec.ts +++ b/test/integration/factory/replace_node.spec.ts @@ -14,6 +14,7 @@ import { ModifierDefinition, replaceNode, StructDefinition, + UserDefinedValueTypeDefinition, VariableDeclaration } from "../../../src"; @@ -104,6 +105,7 @@ describe(`replaceNode() validation`, () => { child instanceof ModifierDefinition || child instanceof StructDefinition || child instanceof EnumDefinition || + child instanceof UserDefinedValueTypeDefinition || child instanceof VariableDeclaration ) { continue; diff --git a/test/integration/sol-ast-compile/source/snapshot.spec.ts b/test/integration/sol-ast-compile/source/snapshot.spec.ts index 5f4f63da..a7943439 100644 --- a/test/integration/sol-ast-compile/source/snapshot.spec.ts +++ b/test/integration/sol-ast-compile/source/snapshot.spec.ts @@ -90,9 +90,14 @@ for (const [fileName, sample] of cases) { }); it("STDOUT is correct", () => { + const result = outData.replace(new RegExp(process.cwd(), "g"), ""); + + // Uncomment next line to update snapshots + // fse.writeFileSync(sample, result, { encoding: "utf-8" }); + const content = fse.readFileSync(sample, { encoding: "utf-8" }); - expect(outData.replace(new RegExp(process.cwd(), "g"), "")).toEqual(content); + expect(result).toEqual(content); }); }); } diff --git a/test/samples/solidity/declarations/contract_050.nodes.txt b/test/samples/solidity/declarations/contract_050.nodes.txt index cea5a760..8515fcd7 100644 --- a/test/samples/solidity/declarations/contract_050.nodes.txt +++ b/test/samples/solidity/declarations/contract_050.nodes.txt @@ -15,6 +15,7 @@ SourceUnit #146 vStructs: Array(0) vFunctions: Array(0) vVariables: Array(0) + vUserDefinedValueTypes: Array(0) vExportedSymbols: Map(3) { "A" -> ContractDefinition #90, "B" -> ContractDefinition #100, "C" -> ContractDefinition #145 } children: Array(3) [ ContractDefinition #90, ContractDefinition #100, ContractDefinition #145 ] firstChild: ContractDefinition #90 @@ -52,6 +53,7 @@ SourceUnit #146 vUsingForDirectives: Array(0) vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(0) vConstructor: undefined children: Array(1) [ FunctionDefinition #89 ] firstChild: FunctionDefinition #89 @@ -412,6 +414,7 @@ SourceUnit #146 vUsingForDirectives: Array(0) vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(0) vConstructor: undefined children: Array(1) [ FunctionDefinition #99 ] firstChild: FunctionDefinition #99 @@ -647,6 +650,7 @@ SourceUnit #146 vUsingForDirectives: Array(1) [ UsingForDirective #116 ] vStructs: Array(1) [ StructDefinition #109 ] vEnums: Array(1) [ EnumDefinition #113 ] + vUserDefinedValueTypes: Array(0) vConstructor: FunctionDefinition #129 children: Array(8) [ InheritanceSpecifier #102, EventDefinition #106, StructDefinition #109, EnumDefinition #113, UsingForDirective #116, VariableDeclaration #118, FunctionDefinition #129, FunctionDefinition #144 ] firstChild: InheritanceSpecifier #102 diff --git a/test/samples/solidity/declarations/contract_050.sourced.sol b/test/samples/solidity/declarations/contract_050.sourced.sol index d12f5cab..3f8153d1 100644 --- a/test/samples/solidity/declarations/contract_050.sourced.sol +++ b/test/samples/solidity/declarations/contract_050.sourced.sol @@ -24,7 +24,7 @@ contract C is B { uint internal val; - constructor() public { + constructor() { val = some(1, 2); } diff --git a/test/samples/solidity/getters_08.sol b/test/samples/solidity/getters_08.sol index 5e64bb7d..754ee4b9 100644 --- a/test/samples/solidity/getters_08.sol +++ b/test/samples/solidity/getters_08.sol @@ -3,6 +3,13 @@ pragma solidity ^0.8.0; interface Some {} contract AccessorReturns { + type U is uint; + type I is int; + type A is address; + type AP is address payable; + type B1 is bytes1; + type B32 is bytes32; + enum E { A, B, C } @@ -35,6 +42,15 @@ contract AccessorReturns { Some[] public g; Some public h; + U public u; + I public i; + A public addr; + AP public ap; + B1 public b1; + B32 public b32; + + mapping(A => U[4]) public udtvMapping; + function main() public { function (uint256) external view returns (uint) a1 = this.a; function (address) external view returns (uint) b1 = this.b; @@ -44,5 +60,14 @@ contract AccessorReturns { function (uint256) external view returns (int8, string memory, S1 memory) f1 = this.f; function (uint256) external view returns (Some) g1 = this.g; function () external view returns (Some) h1 = this.h; + + function () external view returns (U) u1 = this.u; + function () external view returns (I) i1 = this.i; + function () external view returns (A) addr1 = this.addr; + function () external view returns (AP) ap1 = this.ap; + function () external view returns (B1) b11 = this.b1; + function () external view returns (B32) b321 = this.b32; + + function (A, uint256) external view returns (U) udtvMapping1 = this.udtvMapping; } } diff --git a/test/samples/solidity/latest_08.nodes.txt b/test/samples/solidity/latest_08.nodes.txt index d7f0471a..06b87bad 100644 --- a/test/samples/solidity/latest_08.nodes.txt +++ b/test/samples/solidity/latest_08.nodes.txt @@ -1,197 +1,199 @@ -SourceUnit #641 - id: 641 +SourceUnit #959 + id: 959 src: "0:0:0" type: "SourceUnit" sourceEntryKey: "./test/samples/solidity/latest_08.sol" sourceListIndex: 0 absolutePath: "./test/samples/solidity/latest_08.sol" - exportedSymbols: Map(11) { "CatchPanic" -> 469, "EmitsIdentifierPath" -> 391, "EnumABC" -> 338, "Features082" -> 554, "Features084" -> 623, "Features087" -> 640, "LI" -> 334, "LibErrors084" -> 565, "UncheckedMathExample" -> 355, "UnitLevelError084" -> 559, "UsesNewAddressMembers" -> 412 } + exportedSymbols: Map(17) { "CatchPanic" -> 628, "EmitsIdentifierPath" -> 550, "EnumABC" -> 497, "EnumTypeMinMax_088" -> 927, "ExternalFnSelectorAndAddress_0810" -> 958, "Features082" -> 713, "Features084" -> 782, "Features087" -> 799, "InterfaceWithUDTV_088" -> 902, "LI" -> 493, "LibErrors084" -> 724, "LibWithUDVT_088" -> 891, "Price" -> 801, "Quantity" -> 803, "UncheckedMathExample" -> 514, "UnitLevelError084" -> 718, "UsesNewAddressMembers" -> 571 } context: ASTContext #1000 - vPragmaDirectives: Array(2) [ PragmaDirective #332, PragmaDirective #333 ] - vImportDirectives: Array(1) [ ImportDirective #334 ] - vContracts: Array(8) [ ContractDefinition #355, ContractDefinition #391, ContractDefinition #412, ContractDefinition #469, ContractDefinition #554, ContractDefinition #565, ContractDefinition #623, ContractDefinition #640 ] - vEnums: Array(1) [ EnumDefinition #338 ] - vErrors: Array(1) [ ErrorDefinition #559 ] + vPragmaDirectives: Array(2) [ PragmaDirective #491, PragmaDirective #492 ] + vImportDirectives: Array(1) [ ImportDirective #493 ] + vContracts: Array(12) [ ContractDefinition #514, ContractDefinition #550, ContractDefinition #571, ContractDefinition #628, ContractDefinition #713, ContractDefinition #724, ContractDefinition #782, ContractDefinition #799, ContractDefinition #891, ContractDefinition #902, ContractDefinition #927, ContractDefinition #958 ] + vEnums: Array(1) [ EnumDefinition #497 ] + vErrors: Array(1) [ ErrorDefinition #718 ] vStructs: Array(0) vFunctions: Array(0) vVariables: Array(0) - vExportedSymbols: Map(11) { "CatchPanic" -> ContractDefinition #469, "EmitsIdentifierPath" -> ContractDefinition #391, "EnumABC" -> EnumDefinition #338, "Features082" -> ContractDefinition #554, "Features084" -> ContractDefinition #623, "Features087" -> ContractDefinition #640, "LI" -> ImportDirective #334, "LibErrors084" -> ContractDefinition #565, "UncheckedMathExample" -> ContractDefinition #355, "UnitLevelError084" -> ErrorDefinition #559, "UsesNewAddressMembers" -> ContractDefinition #412 } - children: Array(13) [ PragmaDirective #332, PragmaDirective #333, ImportDirective #334, EnumDefinition #338, ContractDefinition #355, ContractDefinition #391, ContractDefinition #412, ContractDefinition #469, ContractDefinition #554, ErrorDefinition #559, ContractDefinition #565, ContractDefinition #623, ContractDefinition #640 ] - firstChild: PragmaDirective #332 - lastChild: ContractDefinition #640 + vUserDefinedValueTypes: Array(2) [ UserDefinedValueTypeDefinition #801, UserDefinedValueTypeDefinition #803 ] + vExportedSymbols: Map(17) { "CatchPanic" -> ContractDefinition #628, "EmitsIdentifierPath" -> ContractDefinition #550, "EnumABC" -> EnumDefinition #497, "EnumTypeMinMax_088" -> ContractDefinition #927, "ExternalFnSelectorAndAddress_0810" -> ContractDefinition #958, "Features082" -> ContractDefinition #713, "Features084" -> ContractDefinition #782, "Features087" -> ContractDefinition #799, "InterfaceWithUDTV_088" -> ContractDefinition #902, "LI" -> ImportDirective #493, "LibErrors084" -> ContractDefinition #724, "LibWithUDVT_088" -> ContractDefinition #891, "Price" -> UserDefinedValueTypeDefinition #801, "Quantity" -> UserDefinedValueTypeDefinition #803, "UncheckedMathExample" -> ContractDefinition #514, "UnitLevelError084" -> ErrorDefinition #718, "UsesNewAddressMembers" -> ContractDefinition #571 } + children: Array(19) [ PragmaDirective #491, PragmaDirective #492, ImportDirective #493, EnumDefinition #497, ContractDefinition #514, ContractDefinition #550, ContractDefinition #571, ContractDefinition #628, ContractDefinition #713, ErrorDefinition #718, ContractDefinition #724, ContractDefinition #782, ContractDefinition #799, UserDefinedValueTypeDefinition #801, UserDefinedValueTypeDefinition #803, ContractDefinition #891, ContractDefinition #902, ContractDefinition #927, ContractDefinition #958 ] + firstChild: PragmaDirective #491 + lastChild: ContractDefinition #958 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - PragmaDirective #332 - id: 332 + PragmaDirective #491 + id: 491 src: "0:0:0" type: "PragmaDirective" literals: Array(4) [ "solidity", "^", "0.8", ".0" ] context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 vIdentifier: "solidity" vValue: "^0.8.0" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: PragmaDirective #333 - root: SourceUnit #641 + nextSibling: PragmaDirective #492 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - PragmaDirective #333 - id: 333 + PragmaDirective #492 + id: 492 src: "0:0:0" type: "PragmaDirective" literals: Array(2) [ "abicoder", "v2" ] context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 vIdentifier: "abicoder" vValue: "v2" children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: PragmaDirective #332 - nextSibling: ImportDirective #334 - root: SourceUnit #641 + previousSibling: PragmaDirective #491 + nextSibling: ImportDirective #493 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ImportDirective #334 - id: 334 + ImportDirective #493 + id: 493 src: "0:0:0" type: "ImportDirective" file: "./latest_imports_08.sol" absolutePath: "./test/samples/solidity/latest_imports_08.sol" unitAlias: "LI" symbolAliases: Array(0) - scope: 641 - sourceUnit: 331 + scope: 959 + sourceUnit: 490 context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 children: Array(0) - vScope: SourceUnit #641 - vSourceUnit: SourceUnit #331 + vScope: SourceUnit #959 + vSourceUnit: SourceUnit #490 vSymbolAliases: Array(0) firstChild: undefined lastChild: undefined - previousSibling: PragmaDirective #333 - nextSibling: EnumDefinition #338 - root: SourceUnit #641 + previousSibling: PragmaDirective #492 + nextSibling: EnumDefinition #497 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EnumDefinition #338 - id: 338 + EnumDefinition #497 + id: 497 src: "0:0:0" type: "EnumDefinition" name: "EnumABC" canonicalName: "EnumABC" nameLocation: "91:7:0" context: ASTContext #1000 - parent: SourceUnit #641 - vMembers: Array(3) [ EnumValue #335, EnumValue #336, EnumValue #337 ] - vScope: SourceUnit #641 - children: Array(3) [ EnumValue #335, EnumValue #336, EnumValue #337 ] - firstChild: EnumValue #335 - lastChild: EnumValue #337 - previousSibling: ImportDirective #334 - nextSibling: ContractDefinition #355 - root: SourceUnit #641 + parent: SourceUnit #959 + vMembers: Array(3) [ EnumValue #494, EnumValue #495, EnumValue #496 ] + vScope: SourceUnit #959 + children: Array(3) [ EnumValue #494, EnumValue #495, EnumValue #496 ] + firstChild: EnumValue #494 + lastChild: EnumValue #496 + previousSibling: ImportDirective #493 + nextSibling: ContractDefinition #514 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EnumValue #335 - id: 335 + EnumValue #494 + id: 494 src: "0:0:0" type: "EnumValue" name: "A" nameLocation: "105:1:0" context: ASTContext #1000 - parent: EnumDefinition #338 + parent: EnumDefinition #497 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: EnumValue #336 - root: SourceUnit #641 + nextSibling: EnumValue #495 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EnumValue #336 - id: 336 + EnumValue #495 + id: 495 src: "0:0:0" type: "EnumValue" name: "B" nameLocation: "108:1:0" context: ASTContext #1000 - parent: EnumDefinition #338 + parent: EnumDefinition #497 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: EnumValue #335 - nextSibling: EnumValue #337 - root: SourceUnit #641 + previousSibling: EnumValue #494 + nextSibling: EnumValue #496 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EnumValue #337 - id: 337 + EnumValue #496 + id: 496 src: "0:0:0" type: "EnumValue" name: "C" nameLocation: "111:1:0" context: ASTContext #1000 - parent: EnumDefinition #338 + parent: EnumDefinition #497 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: EnumValue #336 + previousSibling: EnumValue #495 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #355 - id: 355 + ContractDefinition #514 + id: 514 src: "0:0:0" type: "ContractDefinition" name: "UncheckedMathExample" - scope: 641 + scope: 959 kind: "contract" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(1) [ 355 ] + linearizedBaseContracts: Array(1) [ 514 ] usedErrors: Array(0) docString: undefined nameLocation: "125:20:0" context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 documentation: undefined - vScope: SourceUnit #641 - vLinearizedBaseContracts: Array(1) [ ContractDefinition #355 ] + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #514 ] vUsedErrors: Array(0) vInheritanceSpecifiers: Array(0) vStateVariables: Array(0) vModifiers: Array(0) vEvents: Array(0) vErrors: Array(0) - vFunctions: Array(1) [ FunctionDefinition #354 ] + vFunctions: Array(1) [ FunctionDefinition #513 ] vUsingForDirectives: Array(0) vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(0) vConstructor: undefined - children: Array(1) [ FunctionDefinition #354 ] - firstChild: FunctionDefinition #354 - lastChild: FunctionDefinition #354 - previousSibling: EnumDefinition #338 - nextSibling: ContractDefinition #391 - root: SourceUnit #641 + children: Array(1) [ FunctionDefinition #513 ] + firstChild: FunctionDefinition #513 + lastChild: FunctionDefinition #513 + previousSibling: EnumDefinition #497 + nextSibling: ContractDefinition #550 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #354 - id: 354 + FunctionDefinition #513 + id: 513 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 355 + scope: 514 kind: "function" name: "test" visibility: "public" @@ -199,60 +201,60 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "161:4:0" - vParameters: ParameterList #339 - vReturnParameters: ParameterList #342 + vParameters: ParameterList #498 + vReturnParameters: ParameterList #501 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #353 + vBody: Block #512 context: ASTContext #1000 - parent: ContractDefinition #355 - children: Array(3) [ ParameterList #339, ParameterList #342, Block #353 ] - vScope: ContractDefinition #355 - firstChild: ParameterList #339 - lastChild: Block #353 + parent: ContractDefinition #514 + children: Array(3) [ ParameterList #498, ParameterList #501, Block #512 ] + vScope: ContractDefinition #514 + firstChild: ParameterList #498 + lastChild: Block #512 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #339 - id: 339 + ParameterList #498 + id: 498 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #354 + parent: FunctionDefinition #513 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #342 - root: SourceUnit #641 + nextSibling: ParameterList #501 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #342 - id: 342 + ParameterList #501 + id: 501 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #354 - vParameters: Array(1) [ VariableDeclaration #341 ] - children: Array(1) [ VariableDeclaration #341 ] - firstChild: VariableDeclaration #341 - lastChild: VariableDeclaration #341 - previousSibling: ParameterList #339 - nextSibling: Block #353 - root: SourceUnit #641 + parent: FunctionDefinition #513 + vParameters: Array(1) [ VariableDeclaration #500 ] + children: Array(1) [ VariableDeclaration #500 ] + firstChild: VariableDeclaration #500 + lastChild: VariableDeclaration #500 + previousSibling: ParameterList #498 + nextSibling: Block #512 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #341 - id: 341 + VariableDeclaration #500 + id: 500 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "" - scope: 354 + scope: 513 stateVariable: false storageLocation: "default" visibility: "internal" @@ -260,79 +262,79 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "-1:-1:-1" - vType: ElementaryTypeName #340 + vType: ElementaryTypeName #499 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #342 - children: Array(1) [ ElementaryTypeName #340 ] - vScope: FunctionDefinition #354 - firstChild: ElementaryTypeName #340 - lastChild: ElementaryTypeName #340 + parent: ParameterList #501 + children: Array(1) [ ElementaryTypeName #499 ] + vScope: FunctionDefinition #513 + firstChild: ElementaryTypeName #499 + lastChild: ElementaryTypeName #499 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #340 - id: 340 + ElementaryTypeName #499 + id: 499 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #341 + parent: VariableDeclaration #500 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #353 - id: 353 + Block #512 + id: 512 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #354 - vStatements: Array(3) [ VariableDeclarationStatement #346, UncheckedBlock #350, Return #352 ] - children: Array(3) [ VariableDeclarationStatement #346, UncheckedBlock #350, Return #352 ] - firstChild: VariableDeclarationStatement #346 - lastChild: Return #352 - previousSibling: ParameterList #342 + parent: FunctionDefinition #513 + vStatements: Array(3) [ VariableDeclarationStatement #505, UncheckedBlock #509, Return #511 ] + children: Array(3) [ VariableDeclarationStatement #505, UncheckedBlock #509, Return #511 ] + firstChild: VariableDeclarationStatement #505 + lastChild: Return #511 + previousSibling: ParameterList #501 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclarationStatement #346 - id: 346 + VariableDeclarationStatement #505 + id: 505 src: "0:0:0" type: "VariableDeclarationStatement" documentation: undefined - assignments: Array(1) [ 344 ] - vDeclarations: Array(1) [ VariableDeclaration #344 ] - vInitialValue: Literal #345 + assignments: Array(1) [ 503 ] + vDeclarations: Array(1) [ VariableDeclaration #503 ] + vInitialValue: Literal #504 context: ASTContext #1000 - parent: Block #353 - children: Array(2) [ VariableDeclaration #344, Literal #345 ] - firstChild: VariableDeclaration #344 - lastChild: Literal #345 + parent: Block #512 + children: Array(2) [ VariableDeclaration #503, Literal #504 ] + firstChild: VariableDeclaration #503 + lastChild: Literal #504 previousSibling: undefined - nextSibling: UncheckedBlock #350 - root: SourceUnit #641 + nextSibling: UncheckedBlock #509 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #344 - id: 344 + VariableDeclaration #503 + id: 503 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "x" - scope: 353 + scope: 512 stateVariable: false storageLocation: "default" visibility: "internal" @@ -340,39 +342,39 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "210:1:0" - vType: ElementaryTypeName #343 + vType: ElementaryTypeName #502 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #346 - children: Array(1) [ ElementaryTypeName #343 ] - vScope: Block #353 - firstChild: ElementaryTypeName #343 - lastChild: ElementaryTypeName #343 + parent: VariableDeclarationStatement #505 + children: Array(1) [ ElementaryTypeName #502 ] + vScope: Block #512 + firstChild: ElementaryTypeName #502 + lastChild: ElementaryTypeName #502 previousSibling: undefined - nextSibling: Literal #345 - root: SourceUnit #641 + nextSibling: Literal #504 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #343 - id: 343 + ElementaryTypeName #502 + id: 502 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #344 + parent: VariableDeclaration #503 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #345 - id: 345 + Literal #504 + id: 504 src: "0:0:0" type: "Literal" typeString: "int_const 0" @@ -381,267 +383,268 @@ SourceUnit #641 value: "0" subdenomination: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #346 + parent: VariableDeclarationStatement #505 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: VariableDeclaration #344 + previousSibling: VariableDeclaration #503 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UncheckedBlock #350 - id: 350 + UncheckedBlock #509 + id: 509 src: "0:0:0" type: "UncheckedBlock" documentation: undefined context: ASTContext #1000 - parent: Block #353 - vStatements: Array(1) [ ExpressionStatement #349 ] - children: Array(1) [ ExpressionStatement #349 ] - firstChild: ExpressionStatement #349 - lastChild: ExpressionStatement #349 - previousSibling: VariableDeclarationStatement #346 - nextSibling: Return #352 - root: SourceUnit #641 + parent: Block #512 + vStatements: Array(1) [ ExpressionStatement #508 ] + children: Array(1) [ ExpressionStatement #508 ] + firstChild: ExpressionStatement #508 + lastChild: ExpressionStatement #508 + previousSibling: VariableDeclarationStatement #505 + nextSibling: Return #511 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ExpressionStatement #349 - id: 349 + ExpressionStatement #508 + id: 508 src: "0:0:0" type: "ExpressionStatement" documentation: undefined - vExpression: UnaryOperation #348 + vExpression: UnaryOperation #507 context: ASTContext #1000 - parent: UncheckedBlock #350 - children: Array(1) [ UnaryOperation #348 ] - firstChild: UnaryOperation #348 - lastChild: UnaryOperation #348 + parent: UncheckedBlock #509 + children: Array(1) [ UnaryOperation #507 ] + firstChild: UnaryOperation #507 + lastChild: UnaryOperation #507 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UnaryOperation #348 - id: 348 + UnaryOperation #507 + id: 507 src: "0:0:0" type: "UnaryOperation" typeString: "uint256" prefix: false operator: "--" - vSubExpression: Identifier #347 + vSubExpression: Identifier #506 context: ASTContext #1000 - parent: ExpressionStatement #349 - children: Array(1) [ Identifier #347 ] - firstChild: Identifier #347 - lastChild: Identifier #347 + parent: ExpressionStatement #508 + children: Array(1) [ Identifier #506 ] + firstChild: Identifier #506 + lastChild: Identifier #506 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #347 - id: 347 + Identifier #506 + id: 506 src: "0:0:0" type: "Identifier" typeString: "uint256" name: "x" - referencedDeclaration: 344 + referencedDeclaration: 503 context: ASTContext #1000 - parent: UnaryOperation #348 - vReferencedDeclaration: VariableDeclaration #344 + parent: UnaryOperation #507 + vReferencedDeclaration: VariableDeclaration #503 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Return #352 - id: 352 + Return #511 + id: 511 src: "0:0:0" type: "Return" documentation: undefined functionReturnParameters: 11 - vExpression: Identifier #351 + vExpression: Identifier #510 context: ASTContext #1000 - parent: Block #353 - children: Array(1) [ Identifier #351 ] + parent: Block #512 + children: Array(1) [ Identifier #510 ] vFunctionReturnParameters: ParameterList #11 - firstChild: Identifier #351 - lastChild: Identifier #351 - previousSibling: UncheckedBlock #350 + firstChild: Identifier #510 + lastChild: Identifier #510 + previousSibling: UncheckedBlock #509 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #351 - id: 351 + Identifier #510 + id: 510 src: "0:0:0" type: "Identifier" typeString: "uint256" name: "x" - referencedDeclaration: 344 + referencedDeclaration: 503 context: ASTContext #1000 - parent: Return #352 - vReferencedDeclaration: VariableDeclaration #344 + parent: Return #511 + vReferencedDeclaration: VariableDeclaration #503 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #391 - id: 391 + ContractDefinition #550 + id: 550 src: "0:0:0" type: "ContractDefinition" name: "EmitsIdentifierPath" - scope: 641 + scope: 959 kind: "contract" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(2) [ 391, 329 ] + linearizedBaseContracts: Array(2) [ 550, 488 ] usedErrors: Array(0) docString: undefined nameLocation: "302:19:0" context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 documentation: undefined - vScope: SourceUnit #641 - vLinearizedBaseContracts: Array(2) [ ContractDefinition #391, ContractDefinition #329 ] + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(2) [ ContractDefinition #550, ContractDefinition #488 ] vUsedErrors: Array(0) - vInheritanceSpecifiers: Array(1) [ InheritanceSpecifier #357 ] + vInheritanceSpecifiers: Array(1) [ InheritanceSpecifier #516 ] vStateVariables: Array(0) vModifiers: Array(0) vEvents: Array(0) vErrors: Array(0) - vFunctions: Array(3) [ FunctionDefinition #367, FunctionDefinition #380, FunctionDefinition #390 ] - vUsingForDirectives: Array(1) [ UsingForDirective #361 ] + vFunctions: Array(3) [ FunctionDefinition #526, FunctionDefinition #539, FunctionDefinition #549 ] + vUsingForDirectives: Array(1) [ UsingForDirective #520 ] vStructs: Array(0) vEnums: Array(0) - vConstructor: FunctionDefinition #367 - children: Array(5) [ InheritanceSpecifier #357, UsingForDirective #361, FunctionDefinition #367, FunctionDefinition #380, FunctionDefinition #390 ] - firstChild: InheritanceSpecifier #357 - lastChild: FunctionDefinition #390 - previousSibling: ContractDefinition #355 - nextSibling: ContractDefinition #412 - root: SourceUnit #641 + vUserDefinedValueTypes: Array(0) + vConstructor: FunctionDefinition #526 + children: Array(5) [ InheritanceSpecifier #516, UsingForDirective #520, FunctionDefinition #526, FunctionDefinition #539, FunctionDefinition #549 ] + firstChild: InheritanceSpecifier #516 + lastChild: FunctionDefinition #549 + previousSibling: ContractDefinition #514 + nextSibling: ContractDefinition #571 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - InheritanceSpecifier #357 - id: 357 + InheritanceSpecifier #516 + id: 516 src: "0:0:0" type: "InheritanceSpecifier" - vBaseType: IdentifierPath #356 + vBaseType: IdentifierPath #515 vArguments: Array(0) context: ASTContext #1000 - parent: ContractDefinition #391 - children: Array(1) [ IdentifierPath #356 ] - firstChild: IdentifierPath #356 - lastChild: IdentifierPath #356 + parent: ContractDefinition #550 + children: Array(1) [ IdentifierPath #515 ] + firstChild: IdentifierPath #515 + lastChild: IdentifierPath #515 previousSibling: undefined - nextSibling: UsingForDirective #361 - root: SourceUnit #641 + nextSibling: UsingForDirective #520 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #356 - id: 356 + IdentifierPath #515 + id: 515 src: "0:0:0" type: "IdentifierPath" name: "LI.SomeContract" - referencedDeclaration: 329 + referencedDeclaration: 488 context: ASTContext #1000 - parent: InheritanceSpecifier #357 - vReferencedDeclaration: ContractDefinition #329 + parent: InheritanceSpecifier #516 + vReferencedDeclaration: ContractDefinition #488 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UsingForDirective #361 - id: 361 + UsingForDirective #520 + id: 520 src: "0:0:0" type: "UsingForDirective" - vLibraryName: IdentifierPath #358 - vTypeName: UserDefinedTypeName #360 + vLibraryName: IdentifierPath #517 + vTypeName: UserDefinedTypeName #519 context: ASTContext #1000 - parent: ContractDefinition #391 - children: Array(2) [ IdentifierPath #358, UserDefinedTypeName #360 ] - firstChild: IdentifierPath #358 - lastChild: UserDefinedTypeName #360 - previousSibling: InheritanceSpecifier #357 - nextSibling: FunctionDefinition #367 - root: SourceUnit #641 + parent: ContractDefinition #550 + children: Array(2) [ IdentifierPath #517, UserDefinedTypeName #519 ] + firstChild: IdentifierPath #517 + lastChild: UserDefinedTypeName #519 + previousSibling: InheritanceSpecifier #516 + nextSibling: FunctionDefinition #526 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #358 - id: 358 + IdentifierPath #517 + id: 517 src: "0:0:0" type: "IdentifierPath" name: "LI.SomeLib" - referencedDeclaration: 330 + referencedDeclaration: 489 context: ASTContext #1000 - parent: UsingForDirective #361 - vReferencedDeclaration: ContractDefinition #330 + parent: UsingForDirective #520 + vReferencedDeclaration: ContractDefinition #489 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: UserDefinedTypeName #360 - root: SourceUnit #641 + nextSibling: UserDefinedTypeName #519 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UserDefinedTypeName #360 - id: 360 + UserDefinedTypeName #519 + id: 519 src: "0:0:0" type: "UserDefinedTypeName" typeString: "struct SomeContract.SomeStruct" name: undefined - referencedDeclaration: 320 - path: IdentifierPath #359 + referencedDeclaration: 479 + path: IdentifierPath #518 context: ASTContext #1000 - parent: UsingForDirective #361 - children: Array(1) [ IdentifierPath #359 ] - vReferencedDeclaration: StructDefinition #320 - firstChild: IdentifierPath #359 - lastChild: IdentifierPath #359 - previousSibling: IdentifierPath #358 + parent: UsingForDirective #520 + children: Array(1) [ IdentifierPath #518 ] + vReferencedDeclaration: StructDefinition #479 + firstChild: IdentifierPath #518 + lastChild: IdentifierPath #518 + previousSibling: IdentifierPath #517 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #359 - id: 359 + IdentifierPath #518 + id: 518 src: "0:0:0" type: "IdentifierPath" name: "LI.SomeContract.SomeStruct" - referencedDeclaration: 320 + referencedDeclaration: 479 context: ASTContext #1000 - parent: UserDefinedTypeName #360 - vReferencedDeclaration: StructDefinition #320 + parent: UserDefinedTypeName #519 + vReferencedDeclaration: StructDefinition #479 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #367 - id: 367 + FunctionDefinition #526 + id: 526 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 391 + scope: 550 kind: "constructor" name: "" visibility: "public" @@ -649,110 +652,110 @@ SourceUnit #641 isConstructor: true documentation: undefined nameLocation: "-1:-1:-1" - vParameters: ParameterList #362 - vReturnParameters: ParameterList #363 - vModifiers: Array(1) [ ModifierInvocation #365 ] + vParameters: ParameterList #521 + vReturnParameters: ParameterList #522 + vModifiers: Array(1) [ ModifierInvocation #524 ] vOverrideSpecifier: undefined - vBody: Block #366 + vBody: Block #525 context: ASTContext #1000 - parent: ContractDefinition #391 - children: Array(4) [ ParameterList #362, ModifierInvocation #365, ParameterList #363, Block #366 ] - vScope: ContractDefinition #391 - firstChild: ParameterList #362 - lastChild: Block #366 - previousSibling: UsingForDirective #361 - nextSibling: FunctionDefinition #380 - root: SourceUnit #641 + parent: ContractDefinition #550 + children: Array(4) [ ParameterList #521, ModifierInvocation #524, ParameterList #522, Block #525 ] + vScope: ContractDefinition #550 + firstChild: ParameterList #521 + lastChild: Block #525 + previousSibling: UsingForDirective #520 + nextSibling: FunctionDefinition #539 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #362 - id: 362 + ParameterList #521 + id: 521 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #367 + parent: FunctionDefinition #526 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ModifierInvocation #365 - root: SourceUnit #641 + nextSibling: ModifierInvocation #524 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ModifierInvocation #365 - id: 365 + ModifierInvocation #524 + id: 524 src: "0:0:0" type: "ModifierInvocation" kind: "baseConstructorSpecifier" - vModifierName: IdentifierPath #364 + vModifierName: IdentifierPath #523 vArguments: Array(0) context: ASTContext #1000 - parent: FunctionDefinition #367 - children: Array(1) [ IdentifierPath #364 ] - vModifier: ContractDefinition #329 - firstChild: IdentifierPath #364 - lastChild: IdentifierPath #364 - previousSibling: ParameterList #362 - nextSibling: ParameterList #363 - root: SourceUnit #641 + parent: FunctionDefinition #526 + children: Array(1) [ IdentifierPath #523 ] + vModifier: ContractDefinition #488 + firstChild: IdentifierPath #523 + lastChild: IdentifierPath #523 + previousSibling: ParameterList #521 + nextSibling: ParameterList #522 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #364 - id: 364 + IdentifierPath #523 + id: 523 src: "0:0:0" type: "IdentifierPath" name: "LI.SomeContract" - referencedDeclaration: 329 + referencedDeclaration: 488 context: ASTContext #1000 - parent: ModifierInvocation #365 - vReferencedDeclaration: ContractDefinition #329 + parent: ModifierInvocation #524 + vReferencedDeclaration: ContractDefinition #488 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #363 - id: 363 + ParameterList #522 + id: 522 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #367 + parent: FunctionDefinition #526 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ModifierInvocation #365 - nextSibling: Block #366 - root: SourceUnit #641 + previousSibling: ModifierInvocation #524 + nextSibling: Block #525 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #366 - id: 366 + Block #525 + id: 525 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #367 + parent: FunctionDefinition #526 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #363 + previousSibling: ParameterList #522 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #380 - id: 380 + FunctionDefinition #539 + id: 539 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 391 + scope: 550 kind: "function" name: "test" visibility: "public" @@ -760,94 +763,94 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "450:4:0" - vParameters: ParameterList #368 - vReturnParameters: ParameterList #369 + vParameters: ParameterList #527 + vReturnParameters: ParameterList #528 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #379 + vBody: Block #538 context: ASTContext #1000 - parent: ContractDefinition #391 - children: Array(3) [ ParameterList #368, ParameterList #369, Block #379 ] - vScope: ContractDefinition #391 - firstChild: ParameterList #368 - lastChild: Block #379 - previousSibling: FunctionDefinition #367 - nextSibling: FunctionDefinition #390 - root: SourceUnit #641 + parent: ContractDefinition #550 + children: Array(3) [ ParameterList #527, ParameterList #528, Block #538 ] + vScope: ContractDefinition #550 + firstChild: ParameterList #527 + lastChild: Block #538 + previousSibling: FunctionDefinition #526 + nextSibling: FunctionDefinition #549 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #368 - id: 368 + ParameterList #527 + id: 527 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #380 + parent: FunctionDefinition #539 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #369 - root: SourceUnit #641 + nextSibling: ParameterList #528 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #369 - id: 369 + ParameterList #528 + id: 528 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #380 + parent: FunctionDefinition #539 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #368 - nextSibling: Block #379 - root: SourceUnit #641 + previousSibling: ParameterList #527 + nextSibling: Block #538 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #379 - id: 379 + Block #538 + id: 538 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #380 - vStatements: Array(1) [ VariableDeclarationStatement #378 ] - children: Array(1) [ VariableDeclarationStatement #378 ] - firstChild: VariableDeclarationStatement #378 - lastChild: VariableDeclarationStatement #378 - previousSibling: ParameterList #369 + parent: FunctionDefinition #539 + vStatements: Array(1) [ VariableDeclarationStatement #537 ] + children: Array(1) [ VariableDeclarationStatement #537 ] + firstChild: VariableDeclarationStatement #537 + lastChild: VariableDeclarationStatement #537 + previousSibling: ParameterList #528 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclarationStatement #378 - id: 378 + VariableDeclarationStatement #537 + id: 537 src: "0:0:0" type: "VariableDeclarationStatement" documentation: undefined - assignments: Array(1) [ 372 ] - vDeclarations: Array(1) [ VariableDeclaration #372 ] - vInitialValue: FunctionCall #377 + assignments: Array(1) [ 531 ] + vDeclarations: Array(1) [ VariableDeclaration #531 ] + vInitialValue: FunctionCall #536 context: ASTContext #1000 - parent: Block #379 - children: Array(2) [ VariableDeclaration #372, FunctionCall #377 ] - firstChild: VariableDeclaration #372 - lastChild: FunctionCall #377 + parent: Block #538 + children: Array(2) [ VariableDeclaration #531, FunctionCall #536 ] + firstChild: VariableDeclaration #531 + lastChild: FunctionCall #536 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #372 - id: 372 + VariableDeclaration #531 + id: 531 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "s" - scope: 379 + scope: 538 stateVariable: false storageLocation: "memory" visibility: "internal" @@ -855,140 +858,140 @@ SourceUnit #641 typeString: "struct SomeContract.SomeStruct" documentation: undefined nameLocation: "508:1:0" - vType: UserDefinedTypeName #371 + vType: UserDefinedTypeName #530 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #378 - children: Array(1) [ UserDefinedTypeName #371 ] - vScope: Block #379 - firstChild: UserDefinedTypeName #371 - lastChild: UserDefinedTypeName #371 + parent: VariableDeclarationStatement #537 + children: Array(1) [ UserDefinedTypeName #530 ] + vScope: Block #538 + firstChild: UserDefinedTypeName #530 + lastChild: UserDefinedTypeName #530 previousSibling: undefined - nextSibling: FunctionCall #377 - root: SourceUnit #641 + nextSibling: FunctionCall #536 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UserDefinedTypeName #371 - id: 371 + UserDefinedTypeName #530 + id: 530 src: "0:0:0" type: "UserDefinedTypeName" typeString: "struct SomeContract.SomeStruct" name: undefined - referencedDeclaration: 320 - path: IdentifierPath #370 + referencedDeclaration: 479 + path: IdentifierPath #529 context: ASTContext #1000 - parent: VariableDeclaration #372 - children: Array(1) [ IdentifierPath #370 ] - vReferencedDeclaration: StructDefinition #320 - firstChild: IdentifierPath #370 - lastChild: IdentifierPath #370 + parent: VariableDeclaration #531 + children: Array(1) [ IdentifierPath #529 ] + vReferencedDeclaration: StructDefinition #479 + firstChild: IdentifierPath #529 + lastChild: IdentifierPath #529 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #370 - id: 370 + IdentifierPath #529 + id: 529 src: "0:0:0" type: "IdentifierPath" name: "LI.SomeContract.SomeStruct" - referencedDeclaration: 320 + referencedDeclaration: 479 context: ASTContext #1000 - parent: UserDefinedTypeName #371 - vReferencedDeclaration: StructDefinition #320 + parent: UserDefinedTypeName #530 + vReferencedDeclaration: StructDefinition #479 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #377 - id: 377 + FunctionCall #536 + id: 536 src: "0:0:0" type: "FunctionCall" typeString: "struct SomeContract.SomeStruct memory" kind: "structConstructorCall" fieldNames: undefined - vExpression: MemberAccess #375 - vArguments: Array(1) [ Literal #376 ] + vExpression: MemberAccess #534 + vArguments: Array(1) [ Literal #535 ] context: ASTContext #1000 - parent: VariableDeclarationStatement #378 - children: Array(2) [ MemberAccess #375, Literal #376 ] + parent: VariableDeclarationStatement #537 + children: Array(2) [ MemberAccess #534, Literal #535 ] vIdentifier: undefined vMemberName: "SomeStruct" vFunctionCallType: "userDefined" - vReferencedDeclaration: StructDefinition #320 + vReferencedDeclaration: StructDefinition #479 vFunctionName: "SomeStruct" - vCallee: MemberAccess #375 - firstChild: MemberAccess #375 - lastChild: Literal #376 - previousSibling: VariableDeclaration #372 + vCallee: MemberAccess #534 + firstChild: MemberAccess #534 + lastChild: Literal #535 + previousSibling: VariableDeclaration #531 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - MemberAccess #375 - id: 375 + MemberAccess #534 + id: 534 src: "0:0:0" type: "MemberAccess" typeString: "type(struct SomeContract.SomeStruct storage pointer)" - vExpression: MemberAccess #374 + vExpression: MemberAccess #533 memberName: "SomeStruct" - referencedDeclaration: 320 + referencedDeclaration: 479 context: ASTContext #1000 - parent: FunctionCall #377 - children: Array(1) [ MemberAccess #374 ] - vReferencedDeclaration: StructDefinition #320 - firstChild: MemberAccess #374 - lastChild: MemberAccess #374 + parent: FunctionCall #536 + children: Array(1) [ MemberAccess #533 ] + vReferencedDeclaration: StructDefinition #479 + firstChild: MemberAccess #533 + lastChild: MemberAccess #533 previousSibling: undefined - nextSibling: Literal #376 - root: SourceUnit #641 + nextSibling: Literal #535 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - MemberAccess #374 - id: 374 + MemberAccess #533 + id: 533 src: "0:0:0" type: "MemberAccess" typeString: "type(contract SomeContract)" - vExpression: Identifier #373 + vExpression: Identifier #532 memberName: "SomeContract" - referencedDeclaration: 329 + referencedDeclaration: 488 context: ASTContext #1000 - parent: MemberAccess #375 - children: Array(1) [ Identifier #373 ] - vReferencedDeclaration: ContractDefinition #329 - firstChild: Identifier #373 - lastChild: Identifier #373 + parent: MemberAccess #534 + children: Array(1) [ Identifier #532 ] + vReferencedDeclaration: ContractDefinition #488 + firstChild: Identifier #532 + lastChild: Identifier #532 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #373 - id: 373 + Identifier #532 + id: 532 src: "0:0:0" type: "Identifier" typeString: "module \"./test/samples/solidity/latest_imports_08.sol\"" name: "LI" - referencedDeclaration: 334 + referencedDeclaration: 493 context: ASTContext #1000 - parent: MemberAccess #374 - vReferencedDeclaration: ImportDirective #334 + parent: MemberAccess #533 + vReferencedDeclaration: ImportDirective #493 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #376 - id: 376 + Literal #535 + id: 535 src: "0:0:0" type: "Literal" typeString: "int_const 10" @@ -997,22 +1000,22 @@ SourceUnit #641 value: "10" subdenomination: undefined context: ASTContext #1000 - parent: FunctionCall #377 + parent: FunctionCall #536 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: MemberAccess #375 + previousSibling: MemberAccess #534 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #390 - id: 390 + FunctionDefinition #549 + id: 549 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 391 + scope: 550 kind: "function" name: "some" visibility: "public" @@ -1020,92 +1023,92 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "564:4:0" - vParameters: ParameterList #381 - vReturnParameters: ParameterList #384 + vParameters: ParameterList #540 + vReturnParameters: ParameterList #543 vModifiers: Array(0) - vOverrideSpecifier: OverrideSpecifier #386 - vBody: Block #389 + vOverrideSpecifier: OverrideSpecifier #545 + vBody: Block #548 context: ASTContext #1000 - parent: ContractDefinition #391 - children: Array(4) [ ParameterList #381, OverrideSpecifier #386, ParameterList #384, Block #389 ] - vScope: ContractDefinition #391 - firstChild: ParameterList #381 - lastChild: Block #389 - previousSibling: FunctionDefinition #380 + parent: ContractDefinition #550 + children: Array(4) [ ParameterList #540, OverrideSpecifier #545, ParameterList #543, Block #548 ] + vScope: ContractDefinition #550 + firstChild: ParameterList #540 + lastChild: Block #548 + previousSibling: FunctionDefinition #539 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #381 - id: 381 + ParameterList #540 + id: 540 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #390 + parent: FunctionDefinition #549 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: OverrideSpecifier #386 - root: SourceUnit #641 + nextSibling: OverrideSpecifier #545 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - OverrideSpecifier #386 - id: 386 + OverrideSpecifier #545 + id: 545 src: "0:0:0" type: "OverrideSpecifier" context: ASTContext #1000 - parent: FunctionDefinition #390 - vOverrides: Array(1) [ IdentifierPath #385 ] - children: Array(1) [ IdentifierPath #385 ] - firstChild: IdentifierPath #385 - lastChild: IdentifierPath #385 - previousSibling: ParameterList #381 - nextSibling: ParameterList #384 - root: SourceUnit #641 + parent: FunctionDefinition #549 + vOverrides: Array(1) [ IdentifierPath #544 ] + children: Array(1) [ IdentifierPath #544 ] + firstChild: IdentifierPath #544 + lastChild: IdentifierPath #544 + previousSibling: ParameterList #540 + nextSibling: ParameterList #543 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #385 - id: 385 + IdentifierPath #544 + id: 544 src: "0:0:0" type: "IdentifierPath" name: "LI.SomeContract" - referencedDeclaration: 329 + referencedDeclaration: 488 context: ASTContext #1000 - parent: OverrideSpecifier #386 - vReferencedDeclaration: ContractDefinition #329 + parent: OverrideSpecifier #545 + vReferencedDeclaration: ContractDefinition #488 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #384 - id: 384 + ParameterList #543 + id: 543 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #390 - vParameters: Array(1) [ VariableDeclaration #383 ] - children: Array(1) [ VariableDeclaration #383 ] - firstChild: VariableDeclaration #383 - lastChild: VariableDeclaration #383 - previousSibling: OverrideSpecifier #386 - nextSibling: Block #389 - root: SourceUnit #641 + parent: FunctionDefinition #549 + vParameters: Array(1) [ VariableDeclaration #542 ] + children: Array(1) [ VariableDeclaration #542 ] + firstChild: VariableDeclaration #542 + lastChild: VariableDeclaration #542 + previousSibling: OverrideSpecifier #545 + nextSibling: Block #548 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #383 - id: 383 + VariableDeclaration #542 + id: 542 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "" - scope: 390 + scope: 549 stateVariable: false storageLocation: "default" visibility: "internal" @@ -1113,73 +1116,73 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "-1:-1:-1" - vType: ElementaryTypeName #382 + vType: ElementaryTypeName #541 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #384 - children: Array(1) [ ElementaryTypeName #382 ] - vScope: FunctionDefinition #390 - firstChild: ElementaryTypeName #382 - lastChild: ElementaryTypeName #382 + parent: ParameterList #543 + children: Array(1) [ ElementaryTypeName #541 ] + vScope: FunctionDefinition #549 + firstChild: ElementaryTypeName #541 + lastChild: ElementaryTypeName #541 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #382 - id: 382 + ElementaryTypeName #541 + id: 541 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #383 + parent: VariableDeclaration #542 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #389 - id: 389 + Block #548 + id: 548 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #390 - vStatements: Array(1) [ Return #388 ] - children: Array(1) [ Return #388 ] - firstChild: Return #388 - lastChild: Return #388 - previousSibling: ParameterList #384 + parent: FunctionDefinition #549 + vStatements: Array(1) [ Return #547 ] + children: Array(1) [ Return #547 ] + firstChild: Return #547 + lastChild: Return #547 + previousSibling: ParameterList #543 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Return #388 - id: 388 + Return #547 + id: 547 src: "0:0:0" type: "Return" documentation: undefined functionReturnParameters: 58 - vExpression: Literal #387 + vExpression: Literal #546 context: ASTContext #1000 - parent: Block #389 - children: Array(1) [ Literal #387 ] + parent: Block #548 + children: Array(1) [ Literal #546 ] vFunctionReturnParameters: ParameterList #58 - firstChild: Literal #387 - lastChild: Literal #387 + firstChild: Literal #546 + lastChild: Literal #546 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #387 - id: 387 + Literal #546 + id: 546 src: "0:0:0" type: "Literal" typeString: "int_const 2" @@ -1188,59 +1191,60 @@ SourceUnit #641 value: "2" subdenomination: undefined context: ASTContext #1000 - parent: Return #388 + parent: Return #547 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #412 - id: 412 + ContractDefinition #571 + id: 571 src: "0:0:0" type: "ContractDefinition" name: "UsesNewAddressMembers" - scope: 641 + scope: 959 kind: "contract" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(1) [ 412 ] + linearizedBaseContracts: Array(1) [ 571 ] usedErrors: Array(0) docString: undefined nameLocation: "656:21:0" context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 documentation: undefined - vScope: SourceUnit #641 - vLinearizedBaseContracts: Array(1) [ ContractDefinition #412 ] + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #571 ] vUsedErrors: Array(0) vInheritanceSpecifiers: Array(0) vStateVariables: Array(0) vModifiers: Array(0) vEvents: Array(0) vErrors: Array(0) - vFunctions: Array(1) [ FunctionDefinition #411 ] + vFunctions: Array(1) [ FunctionDefinition #570 ] vUsingForDirectives: Array(0) vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(0) vConstructor: undefined - children: Array(1) [ FunctionDefinition #411 ] - firstChild: FunctionDefinition #411 - lastChild: FunctionDefinition #411 - previousSibling: ContractDefinition #391 - nextSibling: ContractDefinition #469 - root: SourceUnit #641 + children: Array(1) [ FunctionDefinition #570 ] + firstChild: FunctionDefinition #570 + lastChild: FunctionDefinition #570 + previousSibling: ContractDefinition #550 + nextSibling: ContractDefinition #628 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #411 - id: 411 + FunctionDefinition #570 + id: 570 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 412 + scope: 571 kind: "function" name: "test" visibility: "public" @@ -1248,94 +1252,94 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "693:4:0" - vParameters: ParameterList #392 - vReturnParameters: ParameterList #393 + vParameters: ParameterList #551 + vReturnParameters: ParameterList #552 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #410 + vBody: Block #569 context: ASTContext #1000 - parent: ContractDefinition #412 - children: Array(3) [ ParameterList #392, ParameterList #393, Block #410 ] - vScope: ContractDefinition #412 - firstChild: ParameterList #392 - lastChild: Block #410 + parent: ContractDefinition #571 + children: Array(3) [ ParameterList #551, ParameterList #552, Block #569 ] + vScope: ContractDefinition #571 + firstChild: ParameterList #551 + lastChild: Block #569 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #392 - id: 392 + ParameterList #551 + id: 551 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #411 + parent: FunctionDefinition #570 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #393 - root: SourceUnit #641 + nextSibling: ParameterList #552 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #393 - id: 393 + ParameterList #552 + id: 552 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #411 + parent: FunctionDefinition #570 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #392 - nextSibling: Block #410 - root: SourceUnit #641 + previousSibling: ParameterList #551 + nextSibling: Block #569 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #410 - id: 410 + Block #569 + id: 569 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #411 - vStatements: Array(2) [ VariableDeclarationStatement #401, VariableDeclarationStatement #409 ] - children: Array(2) [ VariableDeclarationStatement #401, VariableDeclarationStatement #409 ] - firstChild: VariableDeclarationStatement #401 - lastChild: VariableDeclarationStatement #409 - previousSibling: ParameterList #393 + parent: FunctionDefinition #570 + vStatements: Array(2) [ VariableDeclarationStatement #560, VariableDeclarationStatement #568 ] + children: Array(2) [ VariableDeclarationStatement #560, VariableDeclarationStatement #568 ] + firstChild: VariableDeclarationStatement #560 + lastChild: VariableDeclarationStatement #568 + previousSibling: ParameterList #552 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclarationStatement #401 - id: 401 + VariableDeclarationStatement #560 + id: 560 src: "0:0:0" type: "VariableDeclarationStatement" documentation: undefined - assignments: Array(1) [ 395 ] - vDeclarations: Array(1) [ VariableDeclaration #395 ] - vInitialValue: MemberAccess #400 + assignments: Array(1) [ 554 ] + vDeclarations: Array(1) [ VariableDeclaration #554 ] + vInitialValue: MemberAccess #559 context: ASTContext #1000 - parent: Block #410 - children: Array(2) [ VariableDeclaration #395, MemberAccess #400 ] - firstChild: VariableDeclaration #395 - lastChild: MemberAccess #400 + parent: Block #569 + children: Array(2) [ VariableDeclaration #554, MemberAccess #559 ] + firstChild: VariableDeclaration #554 + lastChild: MemberAccess #559 previousSibling: undefined - nextSibling: VariableDeclarationStatement #409 - root: SourceUnit #641 + nextSibling: VariableDeclarationStatement #568 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #395 - id: 395 + VariableDeclaration #554 + id: 554 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "code" - scope: 410 + scope: 569 stateVariable: false storageLocation: "memory" visibility: "internal" @@ -1343,116 +1347,116 @@ SourceUnit #641 typeString: "bytes" documentation: undefined nameLocation: "730:4:0" - vType: ElementaryTypeName #394 + vType: ElementaryTypeName #553 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #401 - children: Array(1) [ ElementaryTypeName #394 ] - vScope: Block #410 - firstChild: ElementaryTypeName #394 - lastChild: ElementaryTypeName #394 + parent: VariableDeclarationStatement #560 + children: Array(1) [ ElementaryTypeName #553 ] + vScope: Block #569 + firstChild: ElementaryTypeName #553 + lastChild: ElementaryTypeName #553 previousSibling: undefined - nextSibling: MemberAccess #400 - root: SourceUnit #641 + nextSibling: MemberAccess #559 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #394 - id: 394 + ElementaryTypeName #553 + id: 553 src: "0:0:0" type: "ElementaryTypeName" typeString: "bytes" name: "bytes" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #395 + parent: VariableDeclaration #554 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - MemberAccess #400 - id: 400 + MemberAccess #559 + id: 559 src: "0:0:0" type: "MemberAccess" typeString: "bytes memory" - vExpression: FunctionCall #399 + vExpression: FunctionCall #558 memberName: "code" referencedDeclaration: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #401 - children: Array(1) [ FunctionCall #399 ] + parent: VariableDeclarationStatement #560 + children: Array(1) [ FunctionCall #558 ] vReferencedDeclaration: undefined - firstChild: FunctionCall #399 - lastChild: FunctionCall #399 - previousSibling: VariableDeclaration #395 + firstChild: FunctionCall #558 + lastChild: FunctionCall #558 + previousSibling: VariableDeclaration #554 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #399 - id: 399 + FunctionCall #558 + id: 558 src: "0:0:0" type: "FunctionCall" typeString: "address" kind: "typeConversion" fieldNames: undefined - vExpression: ElementaryTypeNameExpression #397 - vArguments: Array(1) [ Literal #398 ] + vExpression: ElementaryTypeNameExpression #556 + vArguments: Array(1) [ Literal #557 ] context: ASTContext #1000 - parent: MemberAccess #400 - children: Array(2) [ ElementaryTypeNameExpression #397, Literal #398 ] + parent: MemberAccess #559 + children: Array(2) [ ElementaryTypeNameExpression #556, Literal #557 ] vIdentifier: "address" vMemberName: undefined vFunctionCallType: "builtin" vReferencedDeclaration: undefined vFunctionName: "address" - vCallee: ElementaryTypeNameExpression #397 - firstChild: ElementaryTypeNameExpression #397 - lastChild: Literal #398 + vCallee: ElementaryTypeNameExpression #556 + firstChild: ElementaryTypeNameExpression #556 + lastChild: Literal #557 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeNameExpression #397 - id: 397 + ElementaryTypeNameExpression #556 + id: 556 src: "0:0:0" type: "ElementaryTypeNameExpression" typeString: "type(address)" - typeName: ElementaryTypeName #396 + typeName: ElementaryTypeName #555 context: ASTContext #1000 - parent: FunctionCall #399 - children: Array(1) [ ElementaryTypeName #396 ] - firstChild: ElementaryTypeName #396 - lastChild: ElementaryTypeName #396 + parent: FunctionCall #558 + children: Array(1) [ ElementaryTypeName #555 ] + firstChild: ElementaryTypeName #555 + lastChild: ElementaryTypeName #555 previousSibling: undefined - nextSibling: Literal #398 - root: SourceUnit #641 + nextSibling: Literal #557 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #396 - id: 396 + ElementaryTypeName #555 + id: 555 src: "0:0:0" type: "ElementaryTypeName" typeString: undefined name: "address" stateMutability: "nonpayable" context: ASTContext #1000 - parent: ElementaryTypeNameExpression #397 + parent: ElementaryTypeNameExpression #556 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #398 - id: 398 + Literal #557 + id: 557 src: "0:0:0" type: "Literal" typeString: "int_const 0" @@ -1461,41 +1465,41 @@ SourceUnit #641 value: "0" subdenomination: undefined context: ASTContext #1000 - parent: FunctionCall #399 + parent: FunctionCall #558 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ElementaryTypeNameExpression #397 + previousSibling: ElementaryTypeNameExpression #556 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclarationStatement #409 - id: 409 + VariableDeclarationStatement #568 + id: 568 src: "0:0:0" type: "VariableDeclarationStatement" documentation: undefined - assignments: Array(1) [ 403 ] - vDeclarations: Array(1) [ VariableDeclaration #403 ] - vInitialValue: MemberAccess #408 + assignments: Array(1) [ 562 ] + vDeclarations: Array(1) [ VariableDeclaration #562 ] + vInitialValue: MemberAccess #567 context: ASTContext #1000 - parent: Block #410 - children: Array(2) [ VariableDeclaration #403, MemberAccess #408 ] - firstChild: VariableDeclaration #403 - lastChild: MemberAccess #408 - previousSibling: VariableDeclarationStatement #401 + parent: Block #569 + children: Array(2) [ VariableDeclaration #562, MemberAccess #567 ] + firstChild: VariableDeclaration #562 + lastChild: MemberAccess #567 + previousSibling: VariableDeclarationStatement #560 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #403 - id: 403 + VariableDeclaration #562 + id: 562 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "codeHash" - scope: 410 + scope: 569 stateVariable: false storageLocation: "default" visibility: "internal" @@ -1503,116 +1507,116 @@ SourceUnit #641 typeString: "bytes32" documentation: undefined nameLocation: "770:8:0" - vType: ElementaryTypeName #402 + vType: ElementaryTypeName #561 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #409 - children: Array(1) [ ElementaryTypeName #402 ] - vScope: Block #410 - firstChild: ElementaryTypeName #402 - lastChild: ElementaryTypeName #402 + parent: VariableDeclarationStatement #568 + children: Array(1) [ ElementaryTypeName #561 ] + vScope: Block #569 + firstChild: ElementaryTypeName #561 + lastChild: ElementaryTypeName #561 previousSibling: undefined - nextSibling: MemberAccess #408 - root: SourceUnit #641 + nextSibling: MemberAccess #567 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #402 - id: 402 + ElementaryTypeName #561 + id: 561 src: "0:0:0" type: "ElementaryTypeName" typeString: "bytes32" name: "bytes32" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #403 + parent: VariableDeclaration #562 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - MemberAccess #408 - id: 408 + MemberAccess #567 + id: 567 src: "0:0:0" type: "MemberAccess" typeString: "bytes32" - vExpression: FunctionCall #407 + vExpression: FunctionCall #566 memberName: "codehash" referencedDeclaration: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #409 - children: Array(1) [ FunctionCall #407 ] + parent: VariableDeclarationStatement #568 + children: Array(1) [ FunctionCall #566 ] vReferencedDeclaration: undefined - firstChild: FunctionCall #407 - lastChild: FunctionCall #407 - previousSibling: VariableDeclaration #403 + firstChild: FunctionCall #566 + lastChild: FunctionCall #566 + previousSibling: VariableDeclaration #562 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #407 - id: 407 + FunctionCall #566 + id: 566 src: "0:0:0" type: "FunctionCall" typeString: "address" kind: "typeConversion" fieldNames: undefined - vExpression: ElementaryTypeNameExpression #405 - vArguments: Array(1) [ Literal #406 ] + vExpression: ElementaryTypeNameExpression #564 + vArguments: Array(1) [ Literal #565 ] context: ASTContext #1000 - parent: MemberAccess #408 - children: Array(2) [ ElementaryTypeNameExpression #405, Literal #406 ] + parent: MemberAccess #567 + children: Array(2) [ ElementaryTypeNameExpression #564, Literal #565 ] vIdentifier: "address" vMemberName: undefined vFunctionCallType: "builtin" vReferencedDeclaration: undefined vFunctionName: "address" - vCallee: ElementaryTypeNameExpression #405 - firstChild: ElementaryTypeNameExpression #405 - lastChild: Literal #406 + vCallee: ElementaryTypeNameExpression #564 + firstChild: ElementaryTypeNameExpression #564 + lastChild: Literal #565 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeNameExpression #405 - id: 405 + ElementaryTypeNameExpression #564 + id: 564 src: "0:0:0" type: "ElementaryTypeNameExpression" typeString: "type(address)" - typeName: ElementaryTypeName #404 + typeName: ElementaryTypeName #563 context: ASTContext #1000 - parent: FunctionCall #407 - children: Array(1) [ ElementaryTypeName #404 ] - firstChild: ElementaryTypeName #404 - lastChild: ElementaryTypeName #404 + parent: FunctionCall #566 + children: Array(1) [ ElementaryTypeName #563 ] + firstChild: ElementaryTypeName #563 + lastChild: ElementaryTypeName #563 previousSibling: undefined - nextSibling: Literal #406 - root: SourceUnit #641 + nextSibling: Literal #565 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #404 - id: 404 + ElementaryTypeName #563 + id: 563 src: "0:0:0" type: "ElementaryTypeName" typeString: undefined name: "address" stateMutability: "nonpayable" context: ASTContext #1000 - parent: ElementaryTypeNameExpression #405 + parent: ElementaryTypeNameExpression #564 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #406 - id: 406 + Literal #565 + id: 565 src: "0:0:0" type: "Literal" typeString: "int_const 0" @@ -1621,59 +1625,60 @@ SourceUnit #641 value: "0" subdenomination: undefined context: ASTContext #1000 - parent: FunctionCall #407 + parent: FunctionCall #566 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ElementaryTypeNameExpression #405 + previousSibling: ElementaryTypeNameExpression #564 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #469 - id: 469 + ContractDefinition #628 + id: 628 src: "0:0:0" type: "ContractDefinition" name: "CatchPanic" - scope: 641 + scope: 959 kind: "contract" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(1) [ 469 ] + linearizedBaseContracts: Array(1) [ 628 ] usedErrors: Array(0) docString: undefined nameLocation: "820:10:0" context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 documentation: undefined - vScope: SourceUnit #641 - vLinearizedBaseContracts: Array(1) [ ContractDefinition #469 ] + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #628 ] vUsedErrors: Array(0) vInheritanceSpecifiers: Array(0) vStateVariables: Array(0) vModifiers: Array(0) vEvents: Array(0) vErrors: Array(0) - vFunctions: Array(1) [ FunctionDefinition #468 ] + vFunctions: Array(1) [ FunctionDefinition #627 ] vUsingForDirectives: Array(0) vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(0) vConstructor: undefined - children: Array(1) [ FunctionDefinition #468 ] - firstChild: FunctionDefinition #468 - lastChild: FunctionDefinition #468 - previousSibling: ContractDefinition #412 - nextSibling: ContractDefinition #554 - root: SourceUnit #641 + children: Array(1) [ FunctionDefinition #627 ] + firstChild: FunctionDefinition #627 + lastChild: FunctionDefinition #627 + previousSibling: ContractDefinition #571 + nextSibling: ContractDefinition #713 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #468 - id: 468 + FunctionDefinition #627 + id: 627 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 469 + scope: 628 kind: "function" name: "test" visibility: "public" @@ -1681,94 +1686,94 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "846:4:0" - vParameters: ParameterList #413 - vReturnParameters: ParameterList #414 + vParameters: ParameterList #572 + vReturnParameters: ParameterList #573 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #467 + vBody: Block #626 context: ASTContext #1000 - parent: ContractDefinition #469 - children: Array(3) [ ParameterList #413, ParameterList #414, Block #467 ] - vScope: ContractDefinition #469 - firstChild: ParameterList #413 - lastChild: Block #467 + parent: ContractDefinition #628 + children: Array(3) [ ParameterList #572, ParameterList #573, Block #626 ] + vScope: ContractDefinition #628 + firstChild: ParameterList #572 + lastChild: Block #626 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #413 - id: 413 + ParameterList #572 + id: 572 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #468 + parent: FunctionDefinition #627 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #414 - root: SourceUnit #641 + nextSibling: ParameterList #573 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #414 - id: 414 + ParameterList #573 + id: 573 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #468 + parent: FunctionDefinition #627 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #413 - nextSibling: Block #467 - root: SourceUnit #641 + previousSibling: ParameterList #572 + nextSibling: Block #626 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #467 - id: 467 + Block #626 + id: 626 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #468 - vStatements: Array(2) [ VariableDeclarationStatement #422, TryStatement #466 ] - children: Array(2) [ VariableDeclarationStatement #422, TryStatement #466 ] - firstChild: VariableDeclarationStatement #422 - lastChild: TryStatement #466 - previousSibling: ParameterList #414 + parent: FunctionDefinition #627 + vStatements: Array(2) [ VariableDeclarationStatement #581, TryStatement #625 ] + children: Array(2) [ VariableDeclarationStatement #581, TryStatement #625 ] + firstChild: VariableDeclarationStatement #581 + lastChild: TryStatement #625 + previousSibling: ParameterList #573 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclarationStatement #422 - id: 422 + VariableDeclarationStatement #581 + id: 581 src: "0:0:0" type: "VariableDeclarationStatement" documentation: undefined - assignments: Array(1) [ 417 ] - vDeclarations: Array(1) [ VariableDeclaration #417 ] - vInitialValue: FunctionCall #421 + assignments: Array(1) [ 576 ] + vDeclarations: Array(1) [ VariableDeclaration #576 ] + vInitialValue: FunctionCall #580 context: ASTContext #1000 - parent: Block #467 - children: Array(2) [ VariableDeclaration #417, FunctionCall #421 ] - firstChild: VariableDeclaration #417 - lastChild: FunctionCall #421 + parent: Block #626 + children: Array(2) [ VariableDeclaration #576, FunctionCall #580 ] + firstChild: VariableDeclaration #576 + lastChild: FunctionCall #580 previousSibling: undefined - nextSibling: TryStatement #466 - root: SourceUnit #641 + nextSibling: TryStatement #625 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #417 - id: 417 + VariableDeclaration #576 + id: 576 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "c" - scope: 467 + scope: 626 stateVariable: false storageLocation: "default" visibility: "internal" @@ -1776,288 +1781,288 @@ SourceUnit #641 typeString: "contract UsesNewAddressMembers" documentation: undefined nameLocation: "892:1:0" - vType: UserDefinedTypeName #416 + vType: UserDefinedTypeName #575 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #422 - children: Array(1) [ UserDefinedTypeName #416 ] - vScope: Block #467 - firstChild: UserDefinedTypeName #416 - lastChild: UserDefinedTypeName #416 + parent: VariableDeclarationStatement #581 + children: Array(1) [ UserDefinedTypeName #575 ] + vScope: Block #626 + firstChild: UserDefinedTypeName #575 + lastChild: UserDefinedTypeName #575 previousSibling: undefined - nextSibling: FunctionCall #421 - root: SourceUnit #641 + nextSibling: FunctionCall #580 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UserDefinedTypeName #416 - id: 416 + UserDefinedTypeName #575 + id: 575 src: "0:0:0" type: "UserDefinedTypeName" typeString: "contract UsesNewAddressMembers" name: undefined - referencedDeclaration: 412 - path: IdentifierPath #415 + referencedDeclaration: 571 + path: IdentifierPath #574 context: ASTContext #1000 - parent: VariableDeclaration #417 - children: Array(1) [ IdentifierPath #415 ] - vReferencedDeclaration: ContractDefinition #412 - firstChild: IdentifierPath #415 - lastChild: IdentifierPath #415 + parent: VariableDeclaration #576 + children: Array(1) [ IdentifierPath #574 ] + vReferencedDeclaration: ContractDefinition #571 + firstChild: IdentifierPath #574 + lastChild: IdentifierPath #574 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #415 - id: 415 + IdentifierPath #574 + id: 574 src: "0:0:0" type: "IdentifierPath" name: "UsesNewAddressMembers" referencedDeclaration: 84 context: ASTContext #1000 - parent: UserDefinedTypeName #416 + parent: UserDefinedTypeName #575 vReferencedDeclaration: ContractDefinition #84 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #421 - id: 421 + FunctionCall #580 + id: 580 src: "0:0:0" type: "FunctionCall" typeString: "contract UsesNewAddressMembers" kind: "functionCall" fieldNames: undefined - vExpression: NewExpression #420 + vExpression: NewExpression #579 vArguments: Array(0) context: ASTContext #1000 - parent: VariableDeclarationStatement #422 - children: Array(1) [ NewExpression #420 ] + parent: VariableDeclarationStatement #581 + children: Array(1) [ NewExpression #579 ] vIdentifier: "new" vMemberName: undefined vFunctionCallType: "builtin" vReferencedDeclaration: undefined vFunctionName: "new" - vCallee: NewExpression #420 - firstChild: NewExpression #420 - lastChild: NewExpression #420 - previousSibling: VariableDeclaration #417 + vCallee: NewExpression #579 + firstChild: NewExpression #579 + lastChild: NewExpression #579 + previousSibling: VariableDeclaration #576 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - NewExpression #420 - id: 420 + NewExpression #579 + id: 579 src: "0:0:0" type: "NewExpression" typeString: "function () returns (contract UsesNewAddressMembers)" - vTypeName: UserDefinedTypeName #419 + vTypeName: UserDefinedTypeName #578 context: ASTContext #1000 - parent: FunctionCall #421 - children: Array(1) [ UserDefinedTypeName #419 ] - firstChild: UserDefinedTypeName #419 - lastChild: UserDefinedTypeName #419 + parent: FunctionCall #580 + children: Array(1) [ UserDefinedTypeName #578 ] + firstChild: UserDefinedTypeName #578 + lastChild: UserDefinedTypeName #578 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UserDefinedTypeName #419 - id: 419 + UserDefinedTypeName #578 + id: 578 src: "0:0:0" type: "UserDefinedTypeName" typeString: "contract UsesNewAddressMembers" name: undefined - referencedDeclaration: 412 - path: IdentifierPath #418 + referencedDeclaration: 571 + path: IdentifierPath #577 context: ASTContext #1000 - parent: NewExpression #420 - children: Array(1) [ IdentifierPath #418 ] - vReferencedDeclaration: ContractDefinition #412 - firstChild: IdentifierPath #418 - lastChild: IdentifierPath #418 + parent: NewExpression #579 + children: Array(1) [ IdentifierPath #577 ] + vReferencedDeclaration: ContractDefinition #571 + firstChild: IdentifierPath #577 + lastChild: IdentifierPath #577 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #418 - id: 418 + IdentifierPath #577 + id: 577 src: "0:0:0" type: "IdentifierPath" name: "UsesNewAddressMembers" referencedDeclaration: 84 context: ASTContext #1000 - parent: UserDefinedTypeName #419 + parent: UserDefinedTypeName #578 vReferencedDeclaration: ContractDefinition #84 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryStatement #466 - id: 466 + TryStatement #625 + id: 625 src: "0:0:0" type: "TryStatement" documentation: undefined - vExternalCall: FunctionCall #425 - vClauses: Array(4) [ TryCatchClause #427, TryCatchClause #436, TryCatchClause #459, TryCatchClause #465 ] + vExternalCall: FunctionCall #584 + vClauses: Array(4) [ TryCatchClause #586, TryCatchClause #595, TryCatchClause #618, TryCatchClause #624 ] context: ASTContext #1000 - parent: Block #467 - children: Array(5) [ FunctionCall #425, TryCatchClause #427, TryCatchClause #436, TryCatchClause #459, TryCatchClause #465 ] - firstChild: FunctionCall #425 - lastChild: TryCatchClause #465 - previousSibling: VariableDeclarationStatement #422 + parent: Block #626 + children: Array(5) [ FunctionCall #584, TryCatchClause #586, TryCatchClause #595, TryCatchClause #618, TryCatchClause #624 ] + firstChild: FunctionCall #584 + lastChild: TryCatchClause #624 + previousSibling: VariableDeclarationStatement #581 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #425 - id: 425 + FunctionCall #584 + id: 584 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: MemberAccess #424 + vExpression: MemberAccess #583 vArguments: Array(0) context: ASTContext #1000 - parent: TryStatement #466 - children: Array(1) [ MemberAccess #424 ] + parent: TryStatement #625 + children: Array(1) [ MemberAccess #583 ] vIdentifier: "c" vMemberName: "test" vFunctionCallType: "userDefined" - vReferencedDeclaration: FunctionDefinition #411 + vReferencedDeclaration: FunctionDefinition #570 vFunctionName: "test" - vCallee: MemberAccess #424 - firstChild: MemberAccess #424 - lastChild: MemberAccess #424 + vCallee: MemberAccess #583 + firstChild: MemberAccess #583 + lastChild: MemberAccess #583 previousSibling: undefined - nextSibling: TryCatchClause #427 - root: SourceUnit #641 + nextSibling: TryCatchClause #586 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - MemberAccess #424 - id: 424 + MemberAccess #583 + id: 583 src: "0:0:0" type: "MemberAccess" typeString: "function () external" - vExpression: Identifier #423 + vExpression: Identifier #582 memberName: "test" - referencedDeclaration: 411 + referencedDeclaration: 570 context: ASTContext #1000 - parent: FunctionCall #425 - children: Array(1) [ Identifier #423 ] - vReferencedDeclaration: FunctionDefinition #411 - firstChild: Identifier #423 - lastChild: Identifier #423 + parent: FunctionCall #584 + children: Array(1) [ Identifier #582 ] + vReferencedDeclaration: FunctionDefinition #570 + firstChild: Identifier #582 + lastChild: Identifier #582 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #423 - id: 423 + Identifier #582 + id: 582 src: "0:0:0" type: "Identifier" typeString: "contract UsesNewAddressMembers" name: "c" - referencedDeclaration: 417 + referencedDeclaration: 576 context: ASTContext #1000 - parent: MemberAccess #424 - vReferencedDeclaration: VariableDeclaration #417 + parent: MemberAccess #583 + vReferencedDeclaration: VariableDeclaration #576 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryCatchClause #427 - id: 427 + TryCatchClause #586 + id: 586 src: "0:0:0" type: "TryCatchClause" documentation: undefined errorName: "" vParameters: undefined - vBlock: Block #426 + vBlock: Block #585 context: ASTContext #1000 - parent: TryStatement #466 - children: Array(1) [ Block #426 ] - firstChild: Block #426 - lastChild: Block #426 - previousSibling: FunctionCall #425 - nextSibling: TryCatchClause #436 - root: SourceUnit #641 + parent: TryStatement #625 + children: Array(1) [ Block #585 ] + firstChild: Block #585 + lastChild: Block #585 + previousSibling: FunctionCall #584 + nextSibling: TryCatchClause #595 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #426 - id: 426 + Block #585 + id: 585 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: TryCatchClause #427 + parent: TryCatchClause #586 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryCatchClause #436 - id: 436 + TryCatchClause #595 + id: 595 src: "0:0:0" type: "TryCatchClause" documentation: undefined errorName: "Error" - vParameters: ParameterList #435 - vBlock: Block #432 + vParameters: ParameterList #594 + vBlock: Block #591 context: ASTContext #1000 - parent: TryStatement #466 - children: Array(2) [ ParameterList #435, Block #432 ] - firstChild: ParameterList #435 - lastChild: Block #432 - previousSibling: TryCatchClause #427 - nextSibling: TryCatchClause #459 - root: SourceUnit #641 + parent: TryStatement #625 + children: Array(2) [ ParameterList #594, Block #591 ] + firstChild: ParameterList #594 + lastChild: Block #591 + previousSibling: TryCatchClause #586 + nextSibling: TryCatchClause #618 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #435 - id: 435 + ParameterList #594 + id: 594 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: TryCatchClause #436 - vParameters: Array(1) [ VariableDeclaration #434 ] - children: Array(1) [ VariableDeclaration #434 ] - firstChild: VariableDeclaration #434 - lastChild: VariableDeclaration #434 + parent: TryCatchClause #595 + vParameters: Array(1) [ VariableDeclaration #593 ] + children: Array(1) [ VariableDeclaration #593 ] + firstChild: VariableDeclaration #593 + lastChild: VariableDeclaration #593 previousSibling: undefined - nextSibling: Block #432 - root: SourceUnit #641 + nextSibling: Block #591 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #434 - id: 434 + VariableDeclaration #593 + id: 593 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "reason" - scope: 436 + scope: 595 stateVariable: false storageLocation: "memory" visibility: "internal" @@ -2065,173 +2070,173 @@ SourceUnit #641 typeString: "string" documentation: undefined nameLocation: "998:6:0" - vType: ElementaryTypeName #433 + vType: ElementaryTypeName #592 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #435 - children: Array(1) [ ElementaryTypeName #433 ] - vScope: TryCatchClause #436 - firstChild: ElementaryTypeName #433 - lastChild: ElementaryTypeName #433 + parent: ParameterList #594 + children: Array(1) [ ElementaryTypeName #592 ] + vScope: TryCatchClause #595 + firstChild: ElementaryTypeName #592 + lastChild: ElementaryTypeName #592 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #433 - id: 433 + ElementaryTypeName #592 + id: 592 src: "0:0:0" type: "ElementaryTypeName" typeString: "string" name: "string" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #434 + parent: VariableDeclaration #593 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #432 - id: 432 + Block #591 + id: 591 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: TryCatchClause #436 - vStatements: Array(1) [ ExpressionStatement #431 ] - children: Array(1) [ ExpressionStatement #431 ] - firstChild: ExpressionStatement #431 - lastChild: ExpressionStatement #431 - previousSibling: ParameterList #435 + parent: TryCatchClause #595 + vStatements: Array(1) [ ExpressionStatement #590 ] + children: Array(1) [ ExpressionStatement #590 ] + firstChild: ExpressionStatement #590 + lastChild: ExpressionStatement #590 + previousSibling: ParameterList #594 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ExpressionStatement #431 - id: 431 + ExpressionStatement #590 + id: 590 src: "0:0:0" type: "ExpressionStatement" documentation: undefined - vExpression: FunctionCall #430 + vExpression: FunctionCall #589 context: ASTContext #1000 - parent: Block #432 - children: Array(1) [ FunctionCall #430 ] - firstChild: FunctionCall #430 - lastChild: FunctionCall #430 + parent: Block #591 + children: Array(1) [ FunctionCall #589 ] + firstChild: FunctionCall #589 + lastChild: FunctionCall #589 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #430 - id: 430 + FunctionCall #589 + id: 589 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: Identifier #428 - vArguments: Array(1) [ Identifier #429 ] + vExpression: Identifier #587 + vArguments: Array(1) [ Identifier #588 ] context: ASTContext #1000 - parent: ExpressionStatement #431 - children: Array(2) [ Identifier #428, Identifier #429 ] + parent: ExpressionStatement #590 + children: Array(2) [ Identifier #587, Identifier #588 ] vIdentifier: "revert" vMemberName: undefined vFunctionCallType: "builtin" vReferencedDeclaration: undefined vFunctionName: "revert" - vCallee: Identifier #428 - firstChild: Identifier #428 - lastChild: Identifier #429 + vCallee: Identifier #587 + firstChild: Identifier #587 + lastChild: Identifier #588 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #428 - id: 428 + Identifier #587 + id: 587 src: "0:0:0" type: "Identifier" typeString: "function (string memory) pure" name: "revert" referencedDeclaration: -1 context: ASTContext #1000 - parent: FunctionCall #430 + parent: FunctionCall #589 vReferencedDeclaration: undefined vIdentifierType: "builtin" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Identifier #429 - root: SourceUnit #641 + nextSibling: Identifier #588 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #429 - id: 429 + Identifier #588 + id: 588 src: "0:0:0" type: "Identifier" typeString: "string memory" name: "reason" - referencedDeclaration: 434 + referencedDeclaration: 593 context: ASTContext #1000 - parent: FunctionCall #430 - vReferencedDeclaration: VariableDeclaration #434 + parent: FunctionCall #589 + vReferencedDeclaration: VariableDeclaration #593 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #428 + previousSibling: Identifier #587 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryCatchClause #459 - id: 459 + TryCatchClause #618 + id: 618 src: "0:0:0" type: "TryCatchClause" documentation: undefined errorName: "Panic" - vParameters: ParameterList #458 - vBlock: Block #455 + vParameters: ParameterList #617 + vBlock: Block #614 context: ASTContext #1000 - parent: TryStatement #466 - children: Array(2) [ ParameterList #458, Block #455 ] - firstChild: ParameterList #458 - lastChild: Block #455 - previousSibling: TryCatchClause #436 - nextSibling: TryCatchClause #465 - root: SourceUnit #641 + parent: TryStatement #625 + children: Array(2) [ ParameterList #617, Block #614 ] + firstChild: ParameterList #617 + lastChild: Block #614 + previousSibling: TryCatchClause #595 + nextSibling: TryCatchClause #624 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #458 - id: 458 + ParameterList #617 + id: 617 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: TryCatchClause #459 - vParameters: Array(1) [ VariableDeclaration #457 ] - children: Array(1) [ VariableDeclaration #457 ] - firstChild: VariableDeclaration #457 - lastChild: VariableDeclaration #457 + parent: TryCatchClause #618 + vParameters: Array(1) [ VariableDeclaration #616 ] + children: Array(1) [ VariableDeclaration #616 ] + firstChild: VariableDeclaration #616 + lastChild: VariableDeclaration #616 previousSibling: undefined - nextSibling: Block #455 - root: SourceUnit #641 + nextSibling: Block #614 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #457 - id: 457 + VariableDeclaration #616 + id: 616 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "_code" - scope: 459 + scope: 618 stateVariable: false storageLocation: "default" visibility: "internal" @@ -2239,110 +2244,110 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "1063:5:0" - vType: ElementaryTypeName #456 + vType: ElementaryTypeName #615 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #458 - children: Array(1) [ ElementaryTypeName #456 ] - vScope: TryCatchClause #459 - firstChild: ElementaryTypeName #456 - lastChild: ElementaryTypeName #456 + parent: ParameterList #617 + children: Array(1) [ ElementaryTypeName #615 ] + vScope: TryCatchClause #618 + firstChild: ElementaryTypeName #615 + lastChild: ElementaryTypeName #615 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #456 - id: 456 + ElementaryTypeName #615 + id: 615 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #457 + parent: VariableDeclaration #616 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #455 - id: 455 + Block #614 + id: 614 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: TryCatchClause #459 - vStatements: Array(1) [ IfStatement #454 ] - children: Array(1) [ IfStatement #454 ] - firstChild: IfStatement #454 - lastChild: IfStatement #454 - previousSibling: ParameterList #458 + parent: TryCatchClause #618 + vStatements: Array(1) [ IfStatement #613 ] + children: Array(1) [ IfStatement #613 ] + firstChild: IfStatement #613 + lastChild: IfStatement #613 + previousSibling: ParameterList #617 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IfStatement #454 - id: 454 + IfStatement #613 + id: 613 src: "0:0:0" type: "IfStatement" documentation: undefined - vCondition: BinaryOperation #439 - vTrueBody: Block #444 - vFalseBody: IfStatement #453 + vCondition: BinaryOperation #598 + vTrueBody: Block #603 + vFalseBody: IfStatement #612 context: ASTContext #1000 - parent: Block #455 - children: Array(3) [ BinaryOperation #439, Block #444, IfStatement #453 ] - firstChild: BinaryOperation #439 - lastChild: IfStatement #453 + parent: Block #614 + children: Array(3) [ BinaryOperation #598, Block #603, IfStatement #612 ] + firstChild: BinaryOperation #598 + lastChild: IfStatement #612 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - BinaryOperation #439 - id: 439 + BinaryOperation #598 + id: 598 src: "0:0:0" type: "BinaryOperation" typeString: "bool" operator: "==" - vLeftExpression: Identifier #437 - vRightExpression: Literal #438 + vLeftExpression: Identifier #596 + vRightExpression: Literal #597 context: ASTContext #1000 - parent: IfStatement #454 - children: Array(2) [ Identifier #437, Literal #438 ] - firstChild: Identifier #437 - lastChild: Literal #438 + parent: IfStatement #613 + children: Array(2) [ Identifier #596, Literal #597 ] + firstChild: Identifier #596 + lastChild: Literal #597 previousSibling: undefined - nextSibling: Block #444 - root: SourceUnit #641 + nextSibling: Block #603 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #437 - id: 437 + Identifier #596 + id: 596 src: "0:0:0" type: "Identifier" typeString: "uint256" name: "_code" - referencedDeclaration: 457 + referencedDeclaration: 616 context: ASTContext #1000 - parent: BinaryOperation #439 - vReferencedDeclaration: VariableDeclaration #457 + parent: BinaryOperation #598 + vReferencedDeclaration: VariableDeclaration #616 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Literal #438 - root: SourceUnit #641 + nextSibling: Literal #597 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #438 - id: 438 + Literal #597 + id: 597 src: "0:0:0" type: "Literal" typeString: "int_const 1" @@ -2351,93 +2356,93 @@ SourceUnit #641 value: "0x01" subdenomination: undefined context: ASTContext #1000 - parent: BinaryOperation #439 + parent: BinaryOperation #598 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #437 + previousSibling: Identifier #596 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #444 - id: 444 + Block #603 + id: 603 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: IfStatement #454 - vStatements: Array(1) [ ExpressionStatement #443 ] - children: Array(1) [ ExpressionStatement #443 ] - firstChild: ExpressionStatement #443 - lastChild: ExpressionStatement #443 - previousSibling: BinaryOperation #439 - nextSibling: IfStatement #453 - root: SourceUnit #641 + parent: IfStatement #613 + vStatements: Array(1) [ ExpressionStatement #602 ] + children: Array(1) [ ExpressionStatement #602 ] + firstChild: ExpressionStatement #602 + lastChild: ExpressionStatement #602 + previousSibling: BinaryOperation #598 + nextSibling: IfStatement #612 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ExpressionStatement #443 - id: 443 + ExpressionStatement #602 + id: 602 src: "0:0:0" type: "ExpressionStatement" documentation: undefined - vExpression: FunctionCall #442 + vExpression: FunctionCall #601 context: ASTContext #1000 - parent: Block #444 - children: Array(1) [ FunctionCall #442 ] - firstChild: FunctionCall #442 - lastChild: FunctionCall #442 + parent: Block #603 + children: Array(1) [ FunctionCall #601 ] + firstChild: FunctionCall #601 + lastChild: FunctionCall #601 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #442 - id: 442 + FunctionCall #601 + id: 601 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: Identifier #440 - vArguments: Array(1) [ Literal #441 ] + vExpression: Identifier #599 + vArguments: Array(1) [ Literal #600 ] context: ASTContext #1000 - parent: ExpressionStatement #443 - children: Array(2) [ Identifier #440, Literal #441 ] + parent: ExpressionStatement #602 + children: Array(2) [ Identifier #599, Literal #600 ] vIdentifier: "revert" vMemberName: undefined vFunctionCallType: "builtin" vReferencedDeclaration: undefined vFunctionName: "revert" - vCallee: Identifier #440 - firstChild: Identifier #440 - lastChild: Literal #441 + vCallee: Identifier #599 + firstChild: Identifier #599 + lastChild: Literal #600 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #440 - id: 440 + Identifier #599 + id: 599 src: "0:0:0" type: "Identifier" typeString: "function (string memory) pure" name: "revert" referencedDeclaration: -1 context: ASTContext #1000 - parent: FunctionCall #442 + parent: FunctionCall #601 vReferencedDeclaration: undefined vIdentifierType: "builtin" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Literal #441 - root: SourceUnit #641 + nextSibling: Literal #600 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #441 - id: 441 + Literal #600 + id: 600 src: "0:0:0" type: "Literal" typeString: "literal_string \"Assertion failed\"" @@ -2446,72 +2451,72 @@ SourceUnit #641 value: "Assertion failed" subdenomination: undefined context: ASTContext #1000 - parent: FunctionCall #442 + parent: FunctionCall #601 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #440 + previousSibling: Identifier #599 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IfStatement #453 - id: 453 + IfStatement #612 + id: 612 src: "0:0:0" type: "IfStatement" documentation: undefined - vCondition: BinaryOperation #447 - vTrueBody: Block #452 + vCondition: BinaryOperation #606 + vTrueBody: Block #611 vFalseBody: undefined context: ASTContext #1000 - parent: IfStatement #454 - children: Array(2) [ BinaryOperation #447, Block #452 ] - firstChild: BinaryOperation #447 - lastChild: Block #452 - previousSibling: Block #444 + parent: IfStatement #613 + children: Array(2) [ BinaryOperation #606, Block #611 ] + firstChild: BinaryOperation #606 + lastChild: Block #611 + previousSibling: Block #603 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - BinaryOperation #447 - id: 447 + BinaryOperation #606 + id: 606 src: "0:0:0" type: "BinaryOperation" typeString: "bool" operator: "==" - vLeftExpression: Identifier #445 - vRightExpression: Literal #446 + vLeftExpression: Identifier #604 + vRightExpression: Literal #605 context: ASTContext #1000 - parent: IfStatement #453 - children: Array(2) [ Identifier #445, Literal #446 ] - firstChild: Identifier #445 - lastChild: Literal #446 + parent: IfStatement #612 + children: Array(2) [ Identifier #604, Literal #605 ] + firstChild: Identifier #604 + lastChild: Literal #605 previousSibling: undefined - nextSibling: Block #452 - root: SourceUnit #641 + nextSibling: Block #611 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #445 - id: 445 + Identifier #604 + id: 604 src: "0:0:0" type: "Identifier" typeString: "uint256" name: "_code" - referencedDeclaration: 457 + referencedDeclaration: 616 context: ASTContext #1000 - parent: BinaryOperation #447 - vReferencedDeclaration: VariableDeclaration #457 + parent: BinaryOperation #606 + vReferencedDeclaration: VariableDeclaration #616 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Literal #446 - root: SourceUnit #641 + nextSibling: Literal #605 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #446 - id: 446 + Literal #605 + id: 605 src: "0:0:0" type: "Literal" typeString: "int_const 17" @@ -2520,93 +2525,93 @@ SourceUnit #641 value: "0x11" subdenomination: undefined context: ASTContext #1000 - parent: BinaryOperation #447 + parent: BinaryOperation #606 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #445 + previousSibling: Identifier #604 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #452 - id: 452 + Block #611 + id: 611 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: IfStatement #453 - vStatements: Array(1) [ ExpressionStatement #451 ] - children: Array(1) [ ExpressionStatement #451 ] - firstChild: ExpressionStatement #451 - lastChild: ExpressionStatement #451 - previousSibling: BinaryOperation #447 + parent: IfStatement #612 + vStatements: Array(1) [ ExpressionStatement #610 ] + children: Array(1) [ ExpressionStatement #610 ] + firstChild: ExpressionStatement #610 + lastChild: ExpressionStatement #610 + previousSibling: BinaryOperation #606 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ExpressionStatement #451 - id: 451 + ExpressionStatement #610 + id: 610 src: "0:0:0" type: "ExpressionStatement" documentation: undefined - vExpression: FunctionCall #450 + vExpression: FunctionCall #609 context: ASTContext #1000 - parent: Block #452 - children: Array(1) [ FunctionCall #450 ] - firstChild: FunctionCall #450 - lastChild: FunctionCall #450 + parent: Block #611 + children: Array(1) [ FunctionCall #609 ] + firstChild: FunctionCall #609 + lastChild: FunctionCall #609 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #450 - id: 450 + FunctionCall #609 + id: 609 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: Identifier #448 - vArguments: Array(1) [ Literal #449 ] + vExpression: Identifier #607 + vArguments: Array(1) [ Literal #608 ] context: ASTContext #1000 - parent: ExpressionStatement #451 - children: Array(2) [ Identifier #448, Literal #449 ] + parent: ExpressionStatement #610 + children: Array(2) [ Identifier #607, Literal #608 ] vIdentifier: "revert" vMemberName: undefined vFunctionCallType: "builtin" vReferencedDeclaration: undefined vFunctionName: "revert" - vCallee: Identifier #448 - firstChild: Identifier #448 - lastChild: Literal #449 + vCallee: Identifier #607 + firstChild: Identifier #607 + lastChild: Literal #608 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #448 - id: 448 + Identifier #607 + id: 607 src: "0:0:0" type: "Identifier" typeString: "function (string memory) pure" name: "revert" referencedDeclaration: -1 context: ASTContext #1000 - parent: FunctionCall #450 + parent: FunctionCall #609 vReferencedDeclaration: undefined vIdentifierType: "builtin" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Literal #449 - root: SourceUnit #641 + nextSibling: Literal #608 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #449 - id: 449 + Literal #608 + id: 608 src: "0:0:0" type: "Literal" typeString: "literal_string \"Underflow/overflow\"" @@ -2615,111 +2620,111 @@ SourceUnit #641 value: "Underflow/overflow" subdenomination: undefined context: ASTContext #1000 - parent: FunctionCall #450 + parent: FunctionCall #609 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #448 + previousSibling: Identifier #607 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryCatchClause #465 - id: 465 + TryCatchClause #624 + id: 624 src: "0:0:0" type: "TryCatchClause" documentation: undefined errorName: "" vParameters: undefined - vBlock: Block #464 + vBlock: Block #623 context: ASTContext #1000 - parent: TryStatement #466 - children: Array(1) [ Block #464 ] - firstChild: Block #464 - lastChild: Block #464 - previousSibling: TryCatchClause #459 + parent: TryStatement #625 + children: Array(1) [ Block #623 ] + firstChild: Block #623 + lastChild: Block #623 + previousSibling: TryCatchClause #618 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #464 - id: 464 + Block #623 + id: 623 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: TryCatchClause #465 - vStatements: Array(1) [ ExpressionStatement #463 ] - children: Array(1) [ ExpressionStatement #463 ] - firstChild: ExpressionStatement #463 - lastChild: ExpressionStatement #463 + parent: TryCatchClause #624 + vStatements: Array(1) [ ExpressionStatement #622 ] + children: Array(1) [ ExpressionStatement #622 ] + firstChild: ExpressionStatement #622 + lastChild: ExpressionStatement #622 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ExpressionStatement #463 - id: 463 + ExpressionStatement #622 + id: 622 src: "0:0:0" type: "ExpressionStatement" documentation: undefined - vExpression: FunctionCall #462 + vExpression: FunctionCall #621 context: ASTContext #1000 - parent: Block #464 - children: Array(1) [ FunctionCall #462 ] - firstChild: FunctionCall #462 - lastChild: FunctionCall #462 + parent: Block #623 + children: Array(1) [ FunctionCall #621 ] + firstChild: FunctionCall #621 + lastChild: FunctionCall #621 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #462 - id: 462 + FunctionCall #621 + id: 621 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: Identifier #460 - vArguments: Array(1) [ Literal #461 ] + vExpression: Identifier #619 + vArguments: Array(1) [ Literal #620 ] context: ASTContext #1000 - parent: ExpressionStatement #463 - children: Array(2) [ Identifier #460, Literal #461 ] + parent: ExpressionStatement #622 + children: Array(2) [ Identifier #619, Literal #620 ] vIdentifier: "revert" vMemberName: undefined vFunctionCallType: "builtin" vReferencedDeclaration: undefined vFunctionName: "revert" - vCallee: Identifier #460 - firstChild: Identifier #460 - lastChild: Literal #461 + vCallee: Identifier #619 + firstChild: Identifier #619 + lastChild: Literal #620 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #460 - id: 460 + Identifier #619 + id: 619 src: "0:0:0" type: "Identifier" typeString: "function (string memory) pure" name: "revert" referencedDeclaration: -1 context: ASTContext #1000 - parent: FunctionCall #462 + parent: FunctionCall #621 vReferencedDeclaration: undefined vIdentifierType: "builtin" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Literal #461 - root: SourceUnit #641 + nextSibling: Literal #620 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #461 - id: 461 + Literal #620 + id: 620 src: "0:0:0" type: "Literal" typeString: "literal_string \"Internal error\"" @@ -2728,95 +2733,96 @@ SourceUnit #641 value: "Internal error" subdenomination: undefined context: ASTContext #1000 - parent: FunctionCall #462 + parent: FunctionCall #621 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #460 + previousSibling: Identifier #619 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #554 - id: 554 + ContractDefinition #713 + id: 713 src: "0:0:0" type: "ContractDefinition" name: "Features082" - scope: 641 + scope: 959 kind: "contract" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(1) [ 554 ] + linearizedBaseContracts: Array(1) [ 713 ] usedErrors: Array(0) docString: undefined nameLocation: "1333:11:0" context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 documentation: undefined - vScope: SourceUnit #641 - vLinearizedBaseContracts: Array(1) [ ContractDefinition #554 ] + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #713 ] vUsedErrors: Array(0) vInheritanceSpecifiers: Array(0) vStateVariables: Array(0) - vModifiers: Array(1) [ ModifierDefinition #481 ] - vEvents: Array(1) [ EventDefinition #473 ] + vModifiers: Array(1) [ ModifierDefinition #640 ] + vEvents: Array(1) [ EventDefinition #632 ] vErrors: Array(0) - vFunctions: Array(1) [ FunctionDefinition #553 ] + vFunctions: Array(1) [ FunctionDefinition #712 ] vUsingForDirectives: Array(0) vStructs: Array(0) - vEnums: Array(1) [ EnumDefinition #477 ] + vEnums: Array(1) [ EnumDefinition #636 ] + vUserDefinedValueTypes: Array(0) vConstructor: undefined - children: Array(4) [ EventDefinition #473, EnumDefinition #477, ModifierDefinition #481, FunctionDefinition #553 ] - firstChild: EventDefinition #473 - lastChild: FunctionDefinition #553 - previousSibling: ContractDefinition #469 - nextSibling: ErrorDefinition #559 - root: SourceUnit #641 + children: Array(4) [ EventDefinition #632, EnumDefinition #636, ModifierDefinition #640, FunctionDefinition #712 ] + firstChild: EventDefinition #632 + lastChild: FunctionDefinition #712 + previousSibling: ContractDefinition #628 + nextSibling: ErrorDefinition #718 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EventDefinition #473 - id: 473 + EventDefinition #632 + id: 632 src: "0:0:0" type: "EventDefinition" anonymous: false name: "Ev" documentation: undefined nameLocation: "1357:2:0" - vParameters: ParameterList #472 + vParameters: ParameterList #631 context: ASTContext #1000 - parent: ContractDefinition #554 - children: Array(1) [ ParameterList #472 ] - vScope: ContractDefinition #554 - firstChild: ParameterList #472 - lastChild: ParameterList #472 + parent: ContractDefinition #713 + children: Array(1) [ ParameterList #631 ] + vScope: ContractDefinition #713 + firstChild: ParameterList #631 + lastChild: ParameterList #631 previousSibling: undefined - nextSibling: EnumDefinition #477 - root: SourceUnit #641 + nextSibling: EnumDefinition #636 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #472 - id: 472 + ParameterList #631 + id: 631 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: EventDefinition #473 - vParameters: Array(1) [ VariableDeclaration #471 ] - children: Array(1) [ VariableDeclaration #471 ] - firstChild: VariableDeclaration #471 - lastChild: VariableDeclaration #471 + parent: EventDefinition #632 + vParameters: Array(1) [ VariableDeclaration #630 ] + children: Array(1) [ VariableDeclaration #630 ] + firstChild: VariableDeclaration #630 + lastChild: VariableDeclaration #630 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #471 - id: 471 + VariableDeclaration #630 + id: 630 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "a" - scope: 473 + scope: 632 stateVariable: false storageLocation: "default" visibility: "internal" @@ -2824,106 +2830,106 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "1365:1:0" - vType: ElementaryTypeName #470 + vType: ElementaryTypeName #629 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #472 - children: Array(1) [ ElementaryTypeName #470 ] - vScope: EventDefinition #473 - firstChild: ElementaryTypeName #470 - lastChild: ElementaryTypeName #470 + parent: ParameterList #631 + children: Array(1) [ ElementaryTypeName #629 ] + vScope: EventDefinition #632 + firstChild: ElementaryTypeName #629 + lastChild: ElementaryTypeName #629 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #470 - id: 470 + ElementaryTypeName #629 + id: 629 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #471 + parent: VariableDeclaration #630 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EnumDefinition #477 - id: 477 + EnumDefinition #636 + id: 636 src: "0:0:0" type: "EnumDefinition" name: "EnumXYZ" canonicalName: "Features082.EnumXYZ" nameLocation: "1379:7:0" context: ASTContext #1000 - parent: ContractDefinition #554 - vMembers: Array(3) [ EnumValue #474, EnumValue #475, EnumValue #476 ] - vScope: ContractDefinition #554 - children: Array(3) [ EnumValue #474, EnumValue #475, EnumValue #476 ] - firstChild: EnumValue #474 - lastChild: EnumValue #476 - previousSibling: EventDefinition #473 - nextSibling: ModifierDefinition #481 - root: SourceUnit #641 + parent: ContractDefinition #713 + vMembers: Array(3) [ EnumValue #633, EnumValue #634, EnumValue #635 ] + vScope: ContractDefinition #713 + children: Array(3) [ EnumValue #633, EnumValue #634, EnumValue #635 ] + firstChild: EnumValue #633 + lastChild: EnumValue #635 + previousSibling: EventDefinition #632 + nextSibling: ModifierDefinition #640 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EnumValue #474 - id: 474 + EnumValue #633 + id: 633 src: "0:0:0" type: "EnumValue" name: "X" nameLocation: "1397:1:0" context: ASTContext #1000 - parent: EnumDefinition #477 + parent: EnumDefinition #636 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: EnumValue #475 - root: SourceUnit #641 + nextSibling: EnumValue #634 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EnumValue #475 - id: 475 + EnumValue #634 + id: 634 src: "0:0:0" type: "EnumValue" name: "Y" nameLocation: "1400:1:0" context: ASTContext #1000 - parent: EnumDefinition #477 + parent: EnumDefinition #636 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: EnumValue #474 - nextSibling: EnumValue #476 - root: SourceUnit #641 + previousSibling: EnumValue #633 + nextSibling: EnumValue #635 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EnumValue #476 - id: 476 + EnumValue #635 + id: 635 src: "0:0:0" type: "EnumValue" name: "Z" nameLocation: "1403:1:0" context: ASTContext #1000 - parent: EnumDefinition #477 + parent: EnumDefinition #636 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: EnumValue #475 + previousSibling: EnumValue #634 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ModifierDefinition #481 - id: 481 + ModifierDefinition #640 + id: 640 src: "0:0:0" type: "ModifierDefinition" name: "modStructDocs" @@ -2931,73 +2937,73 @@ SourceUnit #641 visibility: "internal" documentation: undefined nameLocation: "1425:13:0" - vParameters: ParameterList #478 + vParameters: ParameterList #637 vOverrideSpecifier: undefined - vBody: Block #480 + vBody: Block #639 context: ASTContext #1000 - parent: ContractDefinition #554 - children: Array(2) [ ParameterList #478, Block #480 ] - vScope: ContractDefinition #554 - firstChild: ParameterList #478 - lastChild: Block #480 - previousSibling: EnumDefinition #477 - nextSibling: FunctionDefinition #553 - root: SourceUnit #641 + parent: ContractDefinition #713 + children: Array(2) [ ParameterList #637, Block #639 ] + vScope: ContractDefinition #713 + firstChild: ParameterList #637 + lastChild: Block #639 + previousSibling: EnumDefinition #636 + nextSibling: FunctionDefinition #712 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #478 - id: 478 + ParameterList #637 + id: 637 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: ModifierDefinition #481 + parent: ModifierDefinition #640 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Block #480 - root: SourceUnit #641 + nextSibling: Block #639 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #480 - id: 480 + Block #639 + id: 639 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: ModifierDefinition #481 - vStatements: Array(1) [ PlaceholderStatement #479 ] - children: Array(1) [ PlaceholderStatement #479 ] - firstChild: PlaceholderStatement #479 - lastChild: PlaceholderStatement #479 - previousSibling: ParameterList #478 + parent: ModifierDefinition #640 + vStatements: Array(1) [ PlaceholderStatement #638 ] + children: Array(1) [ PlaceholderStatement #638 ] + firstChild: PlaceholderStatement #638 + lastChild: PlaceholderStatement #638 + previousSibling: ParameterList #637 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - PlaceholderStatement #479 - id: 479 + PlaceholderStatement #638 + id: 638 src: "0:0:0" type: "PlaceholderStatement" documentation: "PlaceholderStatement docstring" context: ASTContext #1000 - parent: Block #480 + parent: Block #639 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #553 - id: 553 + FunctionDefinition #712 + id: 712 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 554 + scope: 713 kind: "function" name: "stmtStructDocs" visibility: "public" @@ -3005,129 +3011,129 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "1517:14:0" - vParameters: ParameterList #482 - vReturnParameters: ParameterList #483 - vModifiers: Array(1) [ ModifierInvocation #485 ] + vParameters: ParameterList #641 + vReturnParameters: ParameterList #642 + vModifiers: Array(1) [ ModifierInvocation #644 ] vOverrideSpecifier: undefined - vBody: Block #552 + vBody: Block #711 context: ASTContext #1000 - parent: ContractDefinition #554 - children: Array(4) [ ParameterList #482, ModifierInvocation #485, ParameterList #483, Block #552 ] - vScope: ContractDefinition #554 - firstChild: ParameterList #482 - lastChild: Block #552 - previousSibling: ModifierDefinition #481 + parent: ContractDefinition #713 + children: Array(4) [ ParameterList #641, ModifierInvocation #644, ParameterList #642, Block #711 ] + vScope: ContractDefinition #713 + firstChild: ParameterList #641 + lastChild: Block #711 + previousSibling: ModifierDefinition #640 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #482 - id: 482 + ParameterList #641 + id: 641 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #553 + parent: FunctionDefinition #712 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ModifierInvocation #485 - root: SourceUnit #641 + nextSibling: ModifierInvocation #644 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ModifierInvocation #485 - id: 485 + ModifierInvocation #644 + id: 644 src: "0:0:0" type: "ModifierInvocation" kind: "modifierInvocation" - vModifierName: IdentifierPath #484 + vModifierName: IdentifierPath #643 vArguments: Array(0) context: ASTContext #1000 - parent: FunctionDefinition #553 - children: Array(1) [ IdentifierPath #484 ] + parent: FunctionDefinition #712 + children: Array(1) [ IdentifierPath #643 ] vModifier: ModifierDefinition #153 - firstChild: IdentifierPath #484 - lastChild: IdentifierPath #484 - previousSibling: ParameterList #482 - nextSibling: ParameterList #483 - root: SourceUnit #641 + firstChild: IdentifierPath #643 + lastChild: IdentifierPath #643 + previousSibling: ParameterList #641 + nextSibling: ParameterList #642 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #484 - id: 484 + IdentifierPath #643 + id: 643 src: "0:0:0" type: "IdentifierPath" name: "modStructDocs" referencedDeclaration: 153 context: ASTContext #1000 - parent: ModifierInvocation #485 + parent: ModifierInvocation #644 vReferencedDeclaration: ModifierDefinition #153 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #483 - id: 483 + ParameterList #642 + id: 642 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #553 + parent: FunctionDefinition #712 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ModifierInvocation #485 - nextSibling: Block #552 - root: SourceUnit #641 + previousSibling: ModifierInvocation #644 + nextSibling: Block #711 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #552 - id: 552 + Block #711 + id: 711 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #553 - vStatements: Array(13) [ VariableDeclarationStatement #490, ExpressionStatement #492, Block #493, EmitStatement #497, WhileStatement #501, DoWhileStatement #505, ForStatement #518, IfStatement #522, VariableDeclarationStatement #530, TryStatement #548, InlineAssembly #549, UncheckedBlock #550, Return #551 ] - children: Array(13) [ VariableDeclarationStatement #490, ExpressionStatement #492, Block #493, EmitStatement #497, WhileStatement #501, DoWhileStatement #505, ForStatement #518, IfStatement #522, VariableDeclarationStatement #530, TryStatement #548, InlineAssembly #549, UncheckedBlock #550, Return #551 ] - firstChild: VariableDeclarationStatement #490 - lastChild: Return #551 - previousSibling: ParameterList #483 + parent: FunctionDefinition #712 + vStatements: Array(13) [ VariableDeclarationStatement #649, ExpressionStatement #651, Block #652, EmitStatement #656, WhileStatement #660, DoWhileStatement #664, ForStatement #677, IfStatement #681, VariableDeclarationStatement #689, TryStatement #707, InlineAssembly #708, UncheckedBlock #709, Return #710 ] + children: Array(13) [ VariableDeclarationStatement #649, ExpressionStatement #651, Block #652, EmitStatement #656, WhileStatement #660, DoWhileStatement #664, ForStatement #677, IfStatement #681, VariableDeclarationStatement #689, TryStatement #707, InlineAssembly #708, UncheckedBlock #709, Return #710 ] + firstChild: VariableDeclarationStatement #649 + lastChild: Return #710 + previousSibling: ParameterList #642 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclarationStatement #490 - id: 490 + VariableDeclarationStatement #649 + id: 649 src: "0:0:0" type: "VariableDeclarationStatement" documentation: "VariableDeclarationStatement docstring" - assignments: Array(1) [ 487 ] - vDeclarations: Array(1) [ VariableDeclaration #487 ] - vInitialValue: TupleExpression #489 + assignments: Array(1) [ 646 ] + vDeclarations: Array(1) [ VariableDeclaration #646 ] + vInitialValue: TupleExpression #648 context: ASTContext #1000 - parent: Block #552 - children: Array(2) [ VariableDeclaration #487, TupleExpression #489 ] - firstChild: VariableDeclaration #487 - lastChild: TupleExpression #489 + parent: Block #711 + children: Array(2) [ VariableDeclaration #646, TupleExpression #648 ] + firstChild: VariableDeclaration #646 + lastChild: TupleExpression #648 previousSibling: undefined - nextSibling: ExpressionStatement #492 - root: SourceUnit #641 + nextSibling: ExpressionStatement #651 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #487 - id: 487 + VariableDeclaration #646 + id: 646 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "a" - scope: 552 + scope: 711 stateVariable: false storageLocation: "default" visibility: "internal" @@ -3135,58 +3141,58 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "1624:1:0" - vType: ElementaryTypeName #486 + vType: ElementaryTypeName #645 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #490 - children: Array(1) [ ElementaryTypeName #486 ] - vScope: Block #552 - firstChild: ElementaryTypeName #486 - lastChild: ElementaryTypeName #486 + parent: VariableDeclarationStatement #649 + children: Array(1) [ ElementaryTypeName #645 ] + vScope: Block #711 + firstChild: ElementaryTypeName #645 + lastChild: ElementaryTypeName #645 previousSibling: undefined - nextSibling: TupleExpression #489 - root: SourceUnit #641 + nextSibling: TupleExpression #648 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #486 - id: 486 + ElementaryTypeName #645 + id: 645 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #487 + parent: VariableDeclaration #646 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TupleExpression #489 - id: 489 + TupleExpression #648 + id: 648 src: "0:0:0" type: "TupleExpression" typeString: "int_const 1" isInlineArray: false - vOriginalComponents: Array(1) [ Literal #488 ] + vOriginalComponents: Array(1) [ Literal #647 ] context: ASTContext #1000 - parent: VariableDeclarationStatement #490 - children: Array(1) [ Literal #488 ] - components: Array(1) [ 488 ] - vComponents: Array(1) [ Literal #488 ] - firstChild: Literal #488 - lastChild: Literal #488 - previousSibling: VariableDeclaration #487 + parent: VariableDeclarationStatement #649 + children: Array(1) [ Literal #647 ] + components: Array(1) [ 647 ] + vComponents: Array(1) [ Literal #647 ] + firstChild: Literal #647 + lastChild: Literal #647 + previousSibling: VariableDeclaration #646 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #488 - id: 488 + Literal #647 + id: 647 src: "0:0:0" type: "Literal" typeString: "int_const 1" @@ -3195,33 +3201,33 @@ SourceUnit #641 value: "1" subdenomination: undefined context: ASTContext #1000 - parent: TupleExpression #489 + parent: TupleExpression #648 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ExpressionStatement #492 - id: 492 + ExpressionStatement #651 + id: 651 src: "0:0:0" type: "ExpressionStatement" documentation: "ExpressionStatement docstring" - vExpression: Literal #491 + vExpression: Literal #650 context: ASTContext #1000 - parent: Block #552 - children: Array(1) [ Literal #491 ] - firstChild: Literal #491 - lastChild: Literal #491 - previousSibling: VariableDeclarationStatement #490 - nextSibling: Block #493 - root: SourceUnit #641 + parent: Block #711 + children: Array(1) [ Literal #650 ] + firstChild: Literal #650 + lastChild: Literal #650 + previousSibling: VariableDeclarationStatement #649 + nextSibling: Block #652 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #491 - id: 491 + Literal #650 + id: 650 src: "0:0:0" type: "Literal" typeString: "int_const 1" @@ -3230,93 +3236,93 @@ SourceUnit #641 value: "1" subdenomination: undefined context: ASTContext #1000 - parent: ExpressionStatement #492 + parent: ExpressionStatement #651 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #493 - id: 493 + Block #652 + id: 652 src: "0:0:0" type: "Block" documentation: "Block docstring" context: ASTContext #1000 - parent: Block #552 + parent: Block #711 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ExpressionStatement #492 - nextSibling: EmitStatement #497 - root: SourceUnit #641 + previousSibling: ExpressionStatement #651 + nextSibling: EmitStatement #656 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - EmitStatement #497 - id: 497 + EmitStatement #656 + id: 656 src: "0:0:0" type: "EmitStatement" documentation: "EmitStatement docstring" - vEventCall: FunctionCall #496 + vEventCall: FunctionCall #655 context: ASTContext #1000 - parent: Block #552 - children: Array(1) [ FunctionCall #496 ] - firstChild: FunctionCall #496 - lastChild: FunctionCall #496 - previousSibling: Block #493 - nextSibling: WhileStatement #501 - root: SourceUnit #641 + parent: Block #711 + children: Array(1) [ FunctionCall #655 ] + firstChild: FunctionCall #655 + lastChild: FunctionCall #655 + previousSibling: Block #652 + nextSibling: WhileStatement #660 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #496 - id: 496 + FunctionCall #655 + id: 655 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: Identifier #494 - vArguments: Array(1) [ Literal #495 ] + vExpression: Identifier #653 + vArguments: Array(1) [ Literal #654 ] context: ASTContext #1000 - parent: EmitStatement #497 - children: Array(2) [ Identifier #494, Literal #495 ] + parent: EmitStatement #656 + children: Array(2) [ Identifier #653, Literal #654 ] vIdentifier: "Ev" vMemberName: undefined vFunctionCallType: "userDefined" - vReferencedDeclaration: EventDefinition #473 + vReferencedDeclaration: EventDefinition #632 vFunctionName: "Ev" - vCallee: Identifier #494 - firstChild: Identifier #494 - lastChild: Literal #495 + vCallee: Identifier #653 + firstChild: Identifier #653 + lastChild: Literal #654 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #494 - id: 494 + Identifier #653 + id: 653 src: "0:0:0" type: "Identifier" typeString: "function (uint256)" name: "Ev" - referencedDeclaration: 473 + referencedDeclaration: 632 context: ASTContext #1000 - parent: FunctionCall #496 - vReferencedDeclaration: EventDefinition #473 + parent: FunctionCall #655 + vReferencedDeclaration: EventDefinition #632 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Literal #495 - root: SourceUnit #641 + nextSibling: Literal #654 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #495 - id: 495 + Literal #654 + id: 654 src: "0:0:0" type: "Literal" typeString: "int_const 1" @@ -3325,34 +3331,34 @@ SourceUnit #641 value: "1" subdenomination: undefined context: ASTContext #1000 - parent: FunctionCall #496 + parent: FunctionCall #655 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #494 + previousSibling: Identifier #653 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - WhileStatement #501 - id: 501 + WhileStatement #660 + id: 660 src: "0:0:0" type: "WhileStatement" documentation: "WhileStatement docstring" - vCondition: Literal #498 - vBody: Block #500 + vCondition: Literal #657 + vBody: Block #659 context: ASTContext #1000 - parent: Block #552 - children: Array(2) [ Literal #498, Block #500 ] - firstChild: Literal #498 - lastChild: Block #500 - previousSibling: EmitStatement #497 - nextSibling: DoWhileStatement #505 - root: SourceUnit #641 + parent: Block #711 + children: Array(2) [ Literal #657, Block #659 ] + firstChild: Literal #657 + lastChild: Block #659 + previousSibling: EmitStatement #656 + nextSibling: DoWhileStatement #664 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #498 - id: 498 + Literal #657 + id: 657 src: "0:0:0" type: "Literal" typeString: "bool" @@ -3361,65 +3367,65 @@ SourceUnit #641 value: "false" subdenomination: undefined context: ASTContext #1000 - parent: WhileStatement #501 + parent: WhileStatement #660 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Block #500 - root: SourceUnit #641 + nextSibling: Block #659 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #500 - id: 500 + Block #659 + id: 659 src: "0:0:0" type: "Block" documentation: "Body Block docstring" context: ASTContext #1000 - parent: WhileStatement #501 - vStatements: Array(1) [ Continue #499 ] - children: Array(1) [ Continue #499 ] - firstChild: Continue #499 - lastChild: Continue #499 - previousSibling: Literal #498 + parent: WhileStatement #660 + vStatements: Array(1) [ Continue #658 ] + children: Array(1) [ Continue #658 ] + firstChild: Continue #658 + lastChild: Continue #658 + previousSibling: Literal #657 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Continue #499 - id: 499 + Continue #658 + id: 658 src: "0:0:0" type: "Continue" documentation: "Continue docstring" context: ASTContext #1000 - parent: Block #500 + parent: Block #659 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - DoWhileStatement #505 - id: 505 + DoWhileStatement #664 + id: 664 src: "0:0:0" type: "DoWhileStatement" documentation: "DoWhileStatement docstring" - vCondition: Literal #502 - vBody: Block #504 + vCondition: Literal #661 + vBody: Block #663 context: ASTContext #1000 - parent: Block #552 - children: Array(2) [ Literal #502, Block #504 ] - firstChild: Literal #502 - lastChild: Block #504 - previousSibling: WhileStatement #501 - nextSibling: ForStatement #518 - root: SourceUnit #641 + parent: Block #711 + children: Array(2) [ Literal #661, Block #663 ] + firstChild: Literal #661 + lastChild: Block #663 + previousSibling: WhileStatement #660 + nextSibling: ForStatement #677 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #502 - id: 502 + Literal #661 + id: 661 src: "0:0:0" type: "Literal" typeString: "bool" @@ -3428,91 +3434,91 @@ SourceUnit #641 value: "true" subdenomination: undefined context: ASTContext #1000 - parent: DoWhileStatement #505 + parent: DoWhileStatement #664 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Block #504 - root: SourceUnit #641 + nextSibling: Block #663 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #504 - id: 504 + Block #663 + id: 663 src: "0:0:0" type: "Block" documentation: "Body Block docstring" context: ASTContext #1000 - parent: DoWhileStatement #505 - vStatements: Array(1) [ Break #503 ] - children: Array(1) [ Break #503 ] - firstChild: Break #503 - lastChild: Break #503 - previousSibling: Literal #502 + parent: DoWhileStatement #664 + vStatements: Array(1) [ Break #662 ] + children: Array(1) [ Break #662 ] + firstChild: Break #662 + lastChild: Break #662 + previousSibling: Literal #661 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Break #503 - id: 503 + Break #662 + id: 662 src: "0:0:0" type: "Break" documentation: "Break docstring" context: ASTContext #1000 - parent: Block #504 + parent: Block #663 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ForStatement #518 - id: 518 + ForStatement #677 + id: 677 src: "0:0:0" type: "ForStatement" documentation: "ForStatement docstring" - vInitializationExpression: VariableDeclarationStatement #511 - vCondition: BinaryOperation #514 - vLoopExpression: ExpressionStatement #517 - vBody: Block #506 + vInitializationExpression: VariableDeclarationStatement #670 + vCondition: BinaryOperation #673 + vLoopExpression: ExpressionStatement #676 + vBody: Block #665 context: ASTContext #1000 - parent: Block #552 - children: Array(4) [ VariableDeclarationStatement #511, BinaryOperation #514, ExpressionStatement #517, Block #506 ] - firstChild: VariableDeclarationStatement #511 - lastChild: Block #506 - previousSibling: DoWhileStatement #505 - nextSibling: IfStatement #522 - root: SourceUnit #641 + parent: Block #711 + children: Array(4) [ VariableDeclarationStatement #670, BinaryOperation #673, ExpressionStatement #676, Block #665 ] + firstChild: VariableDeclarationStatement #670 + lastChild: Block #665 + previousSibling: DoWhileStatement #664 + nextSibling: IfStatement #681 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclarationStatement #511 - id: 511 + VariableDeclarationStatement #670 + id: 670 src: "0:0:0" type: "VariableDeclarationStatement" documentation: undefined - assignments: Array(1) [ 508 ] - vDeclarations: Array(1) [ VariableDeclaration #508 ] - vInitialValue: TupleExpression #510 + assignments: Array(1) [ 667 ] + vDeclarations: Array(1) [ VariableDeclaration #667 ] + vInitialValue: TupleExpression #669 context: ASTContext #1000 - parent: ForStatement #518 - children: Array(2) [ VariableDeclaration #508, TupleExpression #510 ] - firstChild: VariableDeclaration #508 - lastChild: TupleExpression #510 + parent: ForStatement #677 + children: Array(2) [ VariableDeclaration #667, TupleExpression #669 ] + firstChild: VariableDeclaration #667 + lastChild: TupleExpression #669 previousSibling: undefined - nextSibling: BinaryOperation #514 - root: SourceUnit #641 + nextSibling: BinaryOperation #673 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #508 - id: 508 + VariableDeclaration #667 + id: 667 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "n" - scope: 518 + scope: 677 stateVariable: false storageLocation: "default" visibility: "internal" @@ -3520,58 +3526,58 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "2258:1:0" - vType: ElementaryTypeName #507 + vType: ElementaryTypeName #666 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #511 - children: Array(1) [ ElementaryTypeName #507 ] - vScope: ForStatement #518 - firstChild: ElementaryTypeName #507 - lastChild: ElementaryTypeName #507 + parent: VariableDeclarationStatement #670 + children: Array(1) [ ElementaryTypeName #666 ] + vScope: ForStatement #677 + firstChild: ElementaryTypeName #666 + lastChild: ElementaryTypeName #666 previousSibling: undefined - nextSibling: TupleExpression #510 - root: SourceUnit #641 + nextSibling: TupleExpression #669 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #507 - id: 507 + ElementaryTypeName #666 + id: 666 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #508 + parent: VariableDeclaration #667 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TupleExpression #510 - id: 510 + TupleExpression #669 + id: 669 src: "0:0:0" type: "TupleExpression" typeString: "int_const 1" isInlineArray: false - vOriginalComponents: Array(1) [ Literal #509 ] + vOriginalComponents: Array(1) [ Literal #668 ] context: ASTContext #1000 - parent: VariableDeclarationStatement #511 - children: Array(1) [ Literal #509 ] - components: Array(1) [ 509 ] - vComponents: Array(1) [ Literal #509 ] - firstChild: Literal #509 - lastChild: Literal #509 - previousSibling: VariableDeclaration #508 + parent: VariableDeclarationStatement #670 + children: Array(1) [ Literal #668 ] + components: Array(1) [ 668 ] + vComponents: Array(1) [ Literal #668 ] + firstChild: Literal #668 + lastChild: Literal #668 + previousSibling: VariableDeclaration #667 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #509 - id: 509 + Literal #668 + id: 668 src: "0:0:0" type: "Literal" typeString: "int_const 1" @@ -3580,54 +3586,54 @@ SourceUnit #641 value: "1" subdenomination: undefined context: ASTContext #1000 - parent: TupleExpression #510 + parent: TupleExpression #669 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - BinaryOperation #514 - id: 514 + BinaryOperation #673 + id: 673 src: "0:0:0" type: "BinaryOperation" typeString: "bool" operator: "<" - vLeftExpression: Identifier #512 - vRightExpression: Literal #513 + vLeftExpression: Identifier #671 + vRightExpression: Literal #672 context: ASTContext #1000 - parent: ForStatement #518 - children: Array(2) [ Identifier #512, Literal #513 ] - firstChild: Identifier #512 - lastChild: Literal #513 - previousSibling: VariableDeclarationStatement #511 - nextSibling: ExpressionStatement #517 - root: SourceUnit #641 + parent: ForStatement #677 + children: Array(2) [ Identifier #671, Literal #672 ] + firstChild: Identifier #671 + lastChild: Literal #672 + previousSibling: VariableDeclarationStatement #670 + nextSibling: ExpressionStatement #676 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #512 - id: 512 + Identifier #671 + id: 671 src: "0:0:0" type: "Identifier" typeString: "uint256" name: "n" - referencedDeclaration: 508 + referencedDeclaration: 667 context: ASTContext #1000 - parent: BinaryOperation #514 - vReferencedDeclaration: VariableDeclaration #508 + parent: BinaryOperation #673 + vReferencedDeclaration: VariableDeclaration #667 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Literal #513 - root: SourceUnit #641 + nextSibling: Literal #672 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #513 - id: 513 + Literal #672 + id: 672 src: "0:0:0" type: "Literal" typeString: "int_const 1" @@ -3636,104 +3642,104 @@ SourceUnit #641 value: "1" subdenomination: undefined context: ASTContext #1000 - parent: BinaryOperation #514 + parent: BinaryOperation #673 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #512 + previousSibling: Identifier #671 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ExpressionStatement #517 - id: 517 + ExpressionStatement #676 + id: 676 src: "0:0:0" type: "ExpressionStatement" documentation: undefined - vExpression: UnaryOperation #516 + vExpression: UnaryOperation #675 context: ASTContext #1000 - parent: ForStatement #518 - children: Array(1) [ UnaryOperation #516 ] - firstChild: UnaryOperation #516 - lastChild: UnaryOperation #516 - previousSibling: BinaryOperation #514 - nextSibling: Block #506 - root: SourceUnit #641 + parent: ForStatement #677 + children: Array(1) [ UnaryOperation #675 ] + firstChild: UnaryOperation #675 + lastChild: UnaryOperation #675 + previousSibling: BinaryOperation #673 + nextSibling: Block #665 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UnaryOperation #516 - id: 516 + UnaryOperation #675 + id: 675 src: "0:0:0" type: "UnaryOperation" typeString: "uint256" prefix: false operator: "++" - vSubExpression: Identifier #515 + vSubExpression: Identifier #674 context: ASTContext #1000 - parent: ExpressionStatement #517 - children: Array(1) [ Identifier #515 ] - firstChild: Identifier #515 - lastChild: Identifier #515 + parent: ExpressionStatement #676 + children: Array(1) [ Identifier #674 ] + firstChild: Identifier #674 + lastChild: Identifier #674 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #515 - id: 515 + Identifier #674 + id: 674 src: "0:0:0" type: "Identifier" typeString: "uint256" name: "n" - referencedDeclaration: 508 + referencedDeclaration: 667 context: ASTContext #1000 - parent: UnaryOperation #516 - vReferencedDeclaration: VariableDeclaration #508 + parent: UnaryOperation #675 + vReferencedDeclaration: VariableDeclaration #667 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #506 - id: 506 + Block #665 + id: 665 src: "0:0:0" type: "Block" documentation: "Body Block docstring" context: ASTContext #1000 - parent: ForStatement #518 + parent: ForStatement #677 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ExpressionStatement #517 + previousSibling: ExpressionStatement #676 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IfStatement #522 - id: 522 + IfStatement #681 + id: 681 src: "0:0:0" type: "IfStatement" documentation: "IfStatement docstring" - vCondition: Literal #519 - vTrueBody: Block #520 - vFalseBody: Block #521 + vCondition: Literal #678 + vTrueBody: Block #679 + vFalseBody: Block #680 context: ASTContext #1000 - parent: Block #552 - children: Array(3) [ Literal #519, Block #520, Block #521 ] - firstChild: Literal #519 - lastChild: Block #521 - previousSibling: ForStatement #518 - nextSibling: VariableDeclarationStatement #530 - root: SourceUnit #641 + parent: Block #711 + children: Array(3) [ Literal #678, Block #679, Block #680 ] + firstChild: Literal #678 + lastChild: Block #680 + previousSibling: ForStatement #677 + nextSibling: VariableDeclarationStatement #689 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #519 - id: 519 + Literal #678 + id: 678 src: "0:0:0" type: "Literal" typeString: "bool" @@ -3742,73 +3748,73 @@ SourceUnit #641 value: "false" subdenomination: undefined context: ASTContext #1000 - parent: IfStatement #522 + parent: IfStatement #681 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Block #520 - root: SourceUnit #641 + nextSibling: Block #679 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #520 - id: 520 + Block #679 + id: 679 src: "0:0:0" type: "Block" documentation: "True body Block docstring" context: ASTContext #1000 - parent: IfStatement #522 + parent: IfStatement #681 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Literal #519 - nextSibling: Block #521 - root: SourceUnit #641 + previousSibling: Literal #678 + nextSibling: Block #680 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #521 - id: 521 + Block #680 + id: 680 src: "0:0:0" type: "Block" documentation: "False body Block docstring" context: ASTContext #1000 - parent: IfStatement #522 + parent: IfStatement #681 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Block #520 + previousSibling: Block #679 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclarationStatement #530 - id: 530 + VariableDeclarationStatement #689 + id: 689 src: "0:0:0" type: "VariableDeclarationStatement" documentation: undefined - assignments: Array(1) [ 525 ] - vDeclarations: Array(1) [ VariableDeclaration #525 ] - vInitialValue: FunctionCall #529 + assignments: Array(1) [ 684 ] + vDeclarations: Array(1) [ VariableDeclaration #684 ] + vInitialValue: FunctionCall #688 context: ASTContext #1000 - parent: Block #552 - children: Array(2) [ VariableDeclaration #525, FunctionCall #529 ] - firstChild: VariableDeclaration #525 - lastChild: FunctionCall #529 - previousSibling: IfStatement #522 - nextSibling: TryStatement #548 - root: SourceUnit #641 + parent: Block #711 + children: Array(2) [ VariableDeclaration #684, FunctionCall #688 ] + firstChild: VariableDeclaration #684 + lastChild: FunctionCall #688 + previousSibling: IfStatement #681 + nextSibling: TryStatement #707 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #525 - id: 525 + VariableDeclaration #684 + id: 684 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "cp" - scope: 552 + scope: 711 stateVariable: false storageLocation: "default" visibility: "internal" @@ -3816,288 +3822,288 @@ SourceUnit #641 typeString: "contract CatchPanic" documentation: undefined nameLocation: "2637:2:0" - vType: UserDefinedTypeName #524 + vType: UserDefinedTypeName #683 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #530 - children: Array(1) [ UserDefinedTypeName #524 ] - vScope: Block #552 - firstChild: UserDefinedTypeName #524 - lastChild: UserDefinedTypeName #524 + parent: VariableDeclarationStatement #689 + children: Array(1) [ UserDefinedTypeName #683 ] + vScope: Block #711 + firstChild: UserDefinedTypeName #683 + lastChild: UserDefinedTypeName #683 previousSibling: undefined - nextSibling: FunctionCall #529 - root: SourceUnit #641 + nextSibling: FunctionCall #688 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UserDefinedTypeName #524 - id: 524 + UserDefinedTypeName #683 + id: 683 src: "0:0:0" type: "UserDefinedTypeName" typeString: "contract CatchPanic" name: undefined - referencedDeclaration: 469 - path: IdentifierPath #523 + referencedDeclaration: 628 + path: IdentifierPath #682 context: ASTContext #1000 - parent: VariableDeclaration #525 - children: Array(1) [ IdentifierPath #523 ] - vReferencedDeclaration: ContractDefinition #469 - firstChild: IdentifierPath #523 - lastChild: IdentifierPath #523 + parent: VariableDeclaration #684 + children: Array(1) [ IdentifierPath #682 ] + vReferencedDeclaration: ContractDefinition #628 + firstChild: IdentifierPath #682 + lastChild: IdentifierPath #682 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #523 - id: 523 + IdentifierPath #682 + id: 682 src: "0:0:0" type: "IdentifierPath" name: "CatchPanic" referencedDeclaration: 141 context: ASTContext #1000 - parent: UserDefinedTypeName #524 + parent: UserDefinedTypeName #683 vReferencedDeclaration: ContractDefinition #141 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #529 - id: 529 + FunctionCall #688 + id: 688 src: "0:0:0" type: "FunctionCall" typeString: "contract CatchPanic" kind: "functionCall" fieldNames: undefined - vExpression: NewExpression #528 + vExpression: NewExpression #687 vArguments: Array(0) context: ASTContext #1000 - parent: VariableDeclarationStatement #530 - children: Array(1) [ NewExpression #528 ] + parent: VariableDeclarationStatement #689 + children: Array(1) [ NewExpression #687 ] vIdentifier: "new" vMemberName: undefined vFunctionCallType: "builtin" vReferencedDeclaration: undefined vFunctionName: "new" - vCallee: NewExpression #528 - firstChild: NewExpression #528 - lastChild: NewExpression #528 - previousSibling: VariableDeclaration #525 + vCallee: NewExpression #687 + firstChild: NewExpression #687 + lastChild: NewExpression #687 + previousSibling: VariableDeclaration #684 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - NewExpression #528 - id: 528 + NewExpression #687 + id: 687 src: "0:0:0" type: "NewExpression" typeString: "function () returns (contract CatchPanic)" - vTypeName: UserDefinedTypeName #527 + vTypeName: UserDefinedTypeName #686 context: ASTContext #1000 - parent: FunctionCall #529 - children: Array(1) [ UserDefinedTypeName #527 ] - firstChild: UserDefinedTypeName #527 - lastChild: UserDefinedTypeName #527 + parent: FunctionCall #688 + children: Array(1) [ UserDefinedTypeName #686 ] + firstChild: UserDefinedTypeName #686 + lastChild: UserDefinedTypeName #686 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UserDefinedTypeName #527 - id: 527 + UserDefinedTypeName #686 + id: 686 src: "0:0:0" type: "UserDefinedTypeName" typeString: "contract CatchPanic" name: undefined - referencedDeclaration: 469 - path: IdentifierPath #526 + referencedDeclaration: 628 + path: IdentifierPath #685 context: ASTContext #1000 - parent: NewExpression #528 - children: Array(1) [ IdentifierPath #526 ] - vReferencedDeclaration: ContractDefinition #469 - firstChild: IdentifierPath #526 - lastChild: IdentifierPath #526 + parent: NewExpression #687 + children: Array(1) [ IdentifierPath #685 ] + vReferencedDeclaration: ContractDefinition #628 + firstChild: IdentifierPath #685 + lastChild: IdentifierPath #685 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - IdentifierPath #526 - id: 526 + IdentifierPath #685 + id: 685 src: "0:0:0" type: "IdentifierPath" name: "CatchPanic" referencedDeclaration: 141 context: ASTContext #1000 - parent: UserDefinedTypeName #527 + parent: UserDefinedTypeName #686 vReferencedDeclaration: ContractDefinition #141 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryStatement #548 - id: 548 + TryStatement #707 + id: 707 src: "0:0:0" type: "TryStatement" documentation: "TryStatement docstring" - vExternalCall: FunctionCall #533 - vClauses: Array(4) [ TryCatchClause #535, TryCatchClause #540, TryCatchClause #545, TryCatchClause #547 ] + vExternalCall: FunctionCall #692 + vClauses: Array(4) [ TryCatchClause #694, TryCatchClause #699, TryCatchClause #704, TryCatchClause #706 ] context: ASTContext #1000 - parent: Block #552 - children: Array(5) [ FunctionCall #533, TryCatchClause #535, TryCatchClause #540, TryCatchClause #545, TryCatchClause #547 ] - firstChild: FunctionCall #533 - lastChild: TryCatchClause #547 - previousSibling: VariableDeclarationStatement #530 - nextSibling: InlineAssembly #549 - root: SourceUnit #641 + parent: Block #711 + children: Array(5) [ FunctionCall #692, TryCatchClause #694, TryCatchClause #699, TryCatchClause #704, TryCatchClause #706 ] + firstChild: FunctionCall #692 + lastChild: TryCatchClause #706 + previousSibling: VariableDeclarationStatement #689 + nextSibling: InlineAssembly #708 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #533 - id: 533 + FunctionCall #692 + id: 692 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: MemberAccess #532 + vExpression: MemberAccess #691 vArguments: Array(0) context: ASTContext #1000 - parent: TryStatement #548 - children: Array(1) [ MemberAccess #532 ] + parent: TryStatement #707 + children: Array(1) [ MemberAccess #691 ] vIdentifier: "cp" vMemberName: "test" vFunctionCallType: "userDefined" - vReferencedDeclaration: FunctionDefinition #468 + vReferencedDeclaration: FunctionDefinition #627 vFunctionName: "test" - vCallee: MemberAccess #532 - firstChild: MemberAccess #532 - lastChild: MemberAccess #532 + vCallee: MemberAccess #691 + firstChild: MemberAccess #691 + lastChild: MemberAccess #691 previousSibling: undefined - nextSibling: TryCatchClause #535 - root: SourceUnit #641 + nextSibling: TryCatchClause #694 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - MemberAccess #532 - id: 532 + MemberAccess #691 + id: 691 src: "0:0:0" type: "MemberAccess" typeString: "function () external" - vExpression: Identifier #531 + vExpression: Identifier #690 memberName: "test" - referencedDeclaration: 468 + referencedDeclaration: 627 context: ASTContext #1000 - parent: FunctionCall #533 - children: Array(1) [ Identifier #531 ] - vReferencedDeclaration: FunctionDefinition #468 - firstChild: Identifier #531 - lastChild: Identifier #531 + parent: FunctionCall #692 + children: Array(1) [ Identifier #690 ] + vReferencedDeclaration: FunctionDefinition #627 + firstChild: Identifier #690 + lastChild: Identifier #690 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #531 - id: 531 + Identifier #690 + id: 690 src: "0:0:0" type: "Identifier" typeString: "contract CatchPanic" name: "cp" - referencedDeclaration: 525 + referencedDeclaration: 684 context: ASTContext #1000 - parent: MemberAccess #532 - vReferencedDeclaration: VariableDeclaration #525 + parent: MemberAccess #691 + vReferencedDeclaration: VariableDeclaration #684 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryCatchClause #535 - id: 535 + TryCatchClause #694 + id: 694 src: "0:0:0" type: "TryCatchClause" documentation: undefined errorName: "" vParameters: undefined - vBlock: Block #534 + vBlock: Block #693 context: ASTContext #1000 - parent: TryStatement #548 - children: Array(1) [ Block #534 ] - firstChild: Block #534 - lastChild: Block #534 - previousSibling: FunctionCall #533 - nextSibling: TryCatchClause #540 - root: SourceUnit #641 + parent: TryStatement #707 + children: Array(1) [ Block #693 ] + firstChild: Block #693 + lastChild: Block #693 + previousSibling: FunctionCall #692 + nextSibling: TryCatchClause #699 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #534 - id: 534 + Block #693 + id: 693 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: TryCatchClause #535 + parent: TryCatchClause #694 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryCatchClause #540 - id: 540 + TryCatchClause #699 + id: 699 src: "0:0:0" type: "TryCatchClause" documentation: undefined errorName: "Error" - vParameters: ParameterList #539 - vBlock: Block #536 + vParameters: ParameterList #698 + vBlock: Block #695 context: ASTContext #1000 - parent: TryStatement #548 - children: Array(2) [ ParameterList #539, Block #536 ] - firstChild: ParameterList #539 - lastChild: Block #536 - previousSibling: TryCatchClause #535 - nextSibling: TryCatchClause #545 - root: SourceUnit #641 + parent: TryStatement #707 + children: Array(2) [ ParameterList #698, Block #695 ] + firstChild: ParameterList #698 + lastChild: Block #695 + previousSibling: TryCatchClause #694 + nextSibling: TryCatchClause #704 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #539 - id: 539 + ParameterList #698 + id: 698 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: TryCatchClause #540 - vParameters: Array(1) [ VariableDeclaration #538 ] - children: Array(1) [ VariableDeclaration #538 ] - firstChild: VariableDeclaration #538 - lastChild: VariableDeclaration #538 + parent: TryCatchClause #699 + vParameters: Array(1) [ VariableDeclaration #697 ] + children: Array(1) [ VariableDeclaration #697 ] + firstChild: VariableDeclaration #697 + lastChild: VariableDeclaration #697 previousSibling: undefined - nextSibling: Block #536 - root: SourceUnit #641 + nextSibling: Block #695 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #538 - id: 538 + VariableDeclaration #697 + id: 697 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "reason" - scope: 540 + scope: 699 stateVariable: false storageLocation: "memory" visibility: "internal" @@ -4105,94 +4111,94 @@ SourceUnit #641 typeString: "string" documentation: undefined nameLocation: "2854:6:0" - vType: ElementaryTypeName #537 + vType: ElementaryTypeName #696 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #539 - children: Array(1) [ ElementaryTypeName #537 ] - vScope: TryCatchClause #540 - firstChild: ElementaryTypeName #537 - lastChild: ElementaryTypeName #537 + parent: ParameterList #698 + children: Array(1) [ ElementaryTypeName #696 ] + vScope: TryCatchClause #699 + firstChild: ElementaryTypeName #696 + lastChild: ElementaryTypeName #696 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #537 - id: 537 + ElementaryTypeName #696 + id: 696 src: "0:0:0" type: "ElementaryTypeName" typeString: "string" name: "string" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #538 + parent: VariableDeclaration #697 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #536 - id: 536 + Block #695 + id: 695 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: TryCatchClause #540 + parent: TryCatchClause #699 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #539 + previousSibling: ParameterList #698 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryCatchClause #545 - id: 545 + TryCatchClause #704 + id: 704 src: "0:0:0" type: "TryCatchClause" documentation: undefined errorName: "Panic" - vParameters: ParameterList #544 - vBlock: Block #541 + vParameters: ParameterList #703 + vBlock: Block #700 context: ASTContext #1000 - parent: TryStatement #548 - children: Array(2) [ ParameterList #544, Block #541 ] - firstChild: ParameterList #544 - lastChild: Block #541 - previousSibling: TryCatchClause #540 - nextSibling: TryCatchClause #547 - root: SourceUnit #641 + parent: TryStatement #707 + children: Array(2) [ ParameterList #703, Block #700 ] + firstChild: ParameterList #703 + lastChild: Block #700 + previousSibling: TryCatchClause #699 + nextSibling: TryCatchClause #706 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #544 - id: 544 + ParameterList #703 + id: 703 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: TryCatchClause #545 - vParameters: Array(1) [ VariableDeclaration #543 ] - children: Array(1) [ VariableDeclaration #543 ] - firstChild: VariableDeclaration #543 - lastChild: VariableDeclaration #543 + parent: TryCatchClause #704 + vParameters: Array(1) [ VariableDeclaration #702 ] + children: Array(1) [ VariableDeclaration #702 ] + firstChild: VariableDeclaration #702 + lastChild: VariableDeclaration #702 previousSibling: undefined - nextSibling: Block #541 - root: SourceUnit #641 + nextSibling: Block #700 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #543 - id: 543 + VariableDeclaration #702 + id: 702 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "_code" - scope: 545 + scope: 704 stateVariable: false storageLocation: "default" visibility: "internal" @@ -4200,89 +4206,89 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "2990:5:0" - vType: ElementaryTypeName #542 + vType: ElementaryTypeName #701 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #544 - children: Array(1) [ ElementaryTypeName #542 ] - vScope: TryCatchClause #545 - firstChild: ElementaryTypeName #542 - lastChild: ElementaryTypeName #542 + parent: ParameterList #703 + children: Array(1) [ ElementaryTypeName #701 ] + vScope: TryCatchClause #704 + firstChild: ElementaryTypeName #701 + lastChild: ElementaryTypeName #701 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #542 - id: 542 + ElementaryTypeName #701 + id: 701 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #543 + parent: VariableDeclaration #702 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #541 - id: 541 + Block #700 + id: 700 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: TryCatchClause #545 + parent: TryCatchClause #704 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #544 + previousSibling: ParameterList #703 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - TryCatchClause #547 - id: 547 + TryCatchClause #706 + id: 706 src: "0:0:0" type: "TryCatchClause" documentation: undefined errorName: "" vParameters: undefined - vBlock: Block #546 + vBlock: Block #705 context: ASTContext #1000 - parent: TryStatement #548 - children: Array(1) [ Block #546 ] - firstChild: Block #546 - lastChild: Block #546 - previousSibling: TryCatchClause #545 + parent: TryStatement #707 + children: Array(1) [ Block #705 ] + firstChild: Block #705 + lastChild: Block #705 + previousSibling: TryCatchClause #704 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #546 - id: 546 + Block #705 + id: 705 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: TryCatchClause #547 + parent: TryCatchClause #706 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - InlineAssembly #549 - id: 549 + InlineAssembly #708 + id: 708 src: "0:0:0" type: "InlineAssembly" documentation: "InlineAssembly docstring" @@ -4290,106 +4296,106 @@ SourceUnit #641 operations: undefined yul: Object { nodeType: "YulBlock", src: "3235:2:0", statements: Array(0) } context: ASTContext #1000 - parent: Block #552 + parent: Block #711 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: TryStatement #548 - nextSibling: UncheckedBlock #550 - root: SourceUnit #641 + previousSibling: TryStatement #707 + nextSibling: UncheckedBlock #709 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - UncheckedBlock #550 - id: 550 + UncheckedBlock #709 + id: 709 src: "0:0:0" type: "UncheckedBlock" documentation: "UncheckedBlock docstring" context: ASTContext #1000 - parent: Block #552 + parent: Block #711 vStatements: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: InlineAssembly #549 - nextSibling: Return #551 - root: SourceUnit #641 + previousSibling: InlineAssembly #708 + nextSibling: Return #710 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Return #551 - id: 551 + Return #710 + id: 710 src: "0:0:0" type: "Return" documentation: "Return docstring" functionReturnParameters: 157 vExpression: undefined context: ASTContext #1000 - parent: Block #552 + parent: Block #711 children: Array(0) vFunctionReturnParameters: ParameterList #157 firstChild: undefined lastChild: undefined - previousSibling: UncheckedBlock #550 + previousSibling: UncheckedBlock #709 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ErrorDefinition #559 - id: 559 + ErrorDefinition #718 + id: 718 src: "0:0:0" type: "ErrorDefinition" name: "UnitLevelError084" - documentation: StructuredDocumentation #558 + documentation: StructuredDocumentation #717 nameLocation: "3393:17:0" - vParameters: ParameterList #557 + vParameters: ParameterList #716 context: ASTContext #1000 - parent: SourceUnit #641 - children: Array(2) [ StructuredDocumentation #558, ParameterList #557 ] - vScope: SourceUnit #641 - firstChild: StructuredDocumentation #558 - lastChild: ParameterList #557 - previousSibling: ContractDefinition #554 - nextSibling: ContractDefinition #565 - root: SourceUnit #641 + parent: SourceUnit #959 + children: Array(2) [ StructuredDocumentation #717, ParameterList #716 ] + vScope: SourceUnit #959 + firstChild: StructuredDocumentation #717 + lastChild: ParameterList #716 + previousSibling: ContractDefinition #713 + nextSibling: ContractDefinition #724 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - StructuredDocumentation #558 - id: 558 + StructuredDocumentation #717 + id: 717 src: "0:0:0" type: "StructuredDocumentation" text: "UnitLevelError error docstring" context: ASTContext #1000 - parent: ErrorDefinition #559 + parent: ErrorDefinition #718 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #557 - root: SourceUnit #641 + nextSibling: ParameterList #716 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #557 - id: 557 + ParameterList #716 + id: 716 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: ErrorDefinition #559 - vParameters: Array(1) [ VariableDeclaration #556 ] - children: Array(1) [ VariableDeclaration #556 ] - firstChild: VariableDeclaration #556 - lastChild: VariableDeclaration #556 - previousSibling: StructuredDocumentation #558 + parent: ErrorDefinition #718 + vParameters: Array(1) [ VariableDeclaration #715 ] + children: Array(1) [ VariableDeclaration #715 ] + firstChild: VariableDeclaration #715 + lastChild: VariableDeclaration #715 + previousSibling: StructuredDocumentation #717 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #556 - id: 556 + VariableDeclaration #715 + id: 715 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "code" - scope: 559 + scope: 718 stateVariable: false storageLocation: "default" visibility: "internal" @@ -4397,131 +4403,132 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "3416:4:0" - vType: ElementaryTypeName #555 + vType: ElementaryTypeName #714 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #557 - children: Array(1) [ ElementaryTypeName #555 ] - vScope: ErrorDefinition #559 - firstChild: ElementaryTypeName #555 - lastChild: ElementaryTypeName #555 + parent: ParameterList #716 + children: Array(1) [ ElementaryTypeName #714 ] + vScope: ErrorDefinition #718 + firstChild: ElementaryTypeName #714 + lastChild: ElementaryTypeName #714 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #555 - id: 555 + ElementaryTypeName #714 + id: 714 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #556 + parent: VariableDeclaration #715 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #565 - id: 565 + ContractDefinition #724 + id: 724 src: "0:0:0" type: "ContractDefinition" name: "LibErrors084" - scope: 641 + scope: 959 kind: "library" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(1) [ 565 ] - usedErrors: Array(1) [ 564 ] + linearizedBaseContracts: Array(1) [ 724 ] + usedErrors: Array(1) [ 723 ] docString: undefined nameLocation: "3432:12:0" context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 documentation: undefined - vScope: SourceUnit #641 - vLinearizedBaseContracts: Array(1) [ ContractDefinition #565 ] - vUsedErrors: Array(1) [ ErrorDefinition #564 ] + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #724 ] + vUsedErrors: Array(1) [ ErrorDefinition #723 ] vInheritanceSpecifiers: Array(0) vStateVariables: Array(0) vModifiers: Array(0) vEvents: Array(0) - vErrors: Array(1) [ ErrorDefinition #564 ] + vErrors: Array(1) [ ErrorDefinition #723 ] vFunctions: Array(0) vUsingForDirectives: Array(0) vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(0) vConstructor: undefined - children: Array(1) [ ErrorDefinition #564 ] - firstChild: ErrorDefinition #564 - lastChild: ErrorDefinition #564 - previousSibling: ErrorDefinition #559 - nextSibling: ContractDefinition #623 - root: SourceUnit #641 + children: Array(1) [ ErrorDefinition #723 ] + firstChild: ErrorDefinition #723 + lastChild: ErrorDefinition #723 + previousSibling: ErrorDefinition #718 + nextSibling: ContractDefinition #782 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ErrorDefinition #564 - id: 564 + ErrorDefinition #723 + id: 723 src: "0:0:0" type: "ErrorDefinition" name: "Lib" - documentation: StructuredDocumentation #563 + documentation: StructuredDocumentation #722 nameLocation: "3498:3:0" - vParameters: ParameterList #562 + vParameters: ParameterList #721 context: ASTContext #1000 - parent: ContractDefinition #565 - children: Array(2) [ StructuredDocumentation #563, ParameterList #562 ] - vScope: ContractDefinition #565 - firstChild: StructuredDocumentation #563 - lastChild: ParameterList #562 + parent: ContractDefinition #724 + children: Array(2) [ StructuredDocumentation #722, ParameterList #721 ] + vScope: ContractDefinition #724 + firstChild: StructuredDocumentation #722 + lastChild: ParameterList #721 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - StructuredDocumentation #563 - id: 563 + StructuredDocumentation #722 + id: 722 src: "0:0:0" type: "StructuredDocumentation" text: "LibErrors084.Lib error docstring" context: ASTContext #1000 - parent: ErrorDefinition #564 + parent: ErrorDefinition #723 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #562 - root: SourceUnit #641 + nextSibling: ParameterList #721 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #562 - id: 562 + ParameterList #721 + id: 721 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: ErrorDefinition #564 - vParameters: Array(1) [ VariableDeclaration #561 ] - children: Array(1) [ VariableDeclaration #561 ] - firstChild: VariableDeclaration #561 - lastChild: VariableDeclaration #561 - previousSibling: StructuredDocumentation #563 + parent: ErrorDefinition #723 + vParameters: Array(1) [ VariableDeclaration #720 ] + children: Array(1) [ VariableDeclaration #720 ] + firstChild: VariableDeclaration #720 + lastChild: VariableDeclaration #720 + previousSibling: StructuredDocumentation #722 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #561 - id: 561 + VariableDeclaration #720 + id: 720 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "b" - scope: 564 + scope: 723 stateVariable: false storageLocation: "default" visibility: "internal" @@ -4529,130 +4536,131 @@ SourceUnit #641 typeString: "bytes" documentation: undefined nameLocation: "3508:1:0" - vType: ElementaryTypeName #560 + vType: ElementaryTypeName #719 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #562 - children: Array(1) [ ElementaryTypeName #560 ] - vScope: ErrorDefinition #564 - firstChild: ElementaryTypeName #560 - lastChild: ElementaryTypeName #560 + parent: ParameterList #721 + children: Array(1) [ ElementaryTypeName #719 ] + vScope: ErrorDefinition #723 + firstChild: ElementaryTypeName #719 + lastChild: ElementaryTypeName #719 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #560 - id: 560 + ElementaryTypeName #719 + id: 719 src: "0:0:0" type: "ElementaryTypeName" typeString: "bytes" name: "bytes" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #561 + parent: VariableDeclaration #720 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #623 - id: 623 + ContractDefinition #782 + id: 782 src: "0:0:0" type: "ContractDefinition" name: "Features084" - scope: 641 + scope: 959 kind: "contract" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(1) [ 623 ] - usedErrors: Array(3) [ 559, 564, 568 ] + linearizedBaseContracts: Array(1) [ 782 ] + usedErrors: Array(3) [ 718, 723, 727 ] docString: undefined nameLocation: "3524:11:0" context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 documentation: undefined - vScope: SourceUnit #641 - vLinearizedBaseContracts: Array(1) [ ContractDefinition #623 ] - vUsedErrors: Array(3) [ ErrorDefinition #559, ErrorDefinition #564, ErrorDefinition #568 ] + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #782 ] + vUsedErrors: Array(3) [ ErrorDefinition #718, ErrorDefinition #723, ErrorDefinition #727 ] vInheritanceSpecifiers: Array(0) vStateVariables: Array(0) vModifiers: Array(0) vEvents: Array(0) - vErrors: Array(1) [ ErrorDefinition #568 ] - vFunctions: Array(6) [ FunctionDefinition #573, FunctionDefinition #590, FunctionDefinition #598, FunctionDefinition #607, FunctionDefinition #614, FunctionDefinition #622 ] + vErrors: Array(1) [ ErrorDefinition #727 ] + vFunctions: Array(6) [ FunctionDefinition #732, FunctionDefinition #749, FunctionDefinition #757, FunctionDefinition #766, FunctionDefinition #773, FunctionDefinition #781 ] vUsingForDirectives: Array(0) vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(0) vConstructor: undefined - children: Array(7) [ ErrorDefinition #568, FunctionDefinition #573, FunctionDefinition #590, FunctionDefinition #598, FunctionDefinition #607, FunctionDefinition #614, FunctionDefinition #622 ] - firstChild: ErrorDefinition #568 - lastChild: FunctionDefinition #622 - previousSibling: ContractDefinition #565 - nextSibling: ContractDefinition #640 - root: SourceUnit #641 + children: Array(7) [ ErrorDefinition #727, FunctionDefinition #732, FunctionDefinition #749, FunctionDefinition #757, FunctionDefinition #766, FunctionDefinition #773, FunctionDefinition #781 ] + firstChild: ErrorDefinition #727 + lastChild: FunctionDefinition #781 + previousSibling: ContractDefinition #724 + nextSibling: ContractDefinition #799 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ErrorDefinition #568 - id: 568 + ErrorDefinition #727 + id: 727 src: "0:0:0" type: "ErrorDefinition" name: "Own" - documentation: StructuredDocumentation #567 + documentation: StructuredDocumentation #726 nameLocation: "3588:3:0" - vParameters: ParameterList #566 + vParameters: ParameterList #725 context: ASTContext #1000 - parent: ContractDefinition #623 - children: Array(2) [ StructuredDocumentation #567, ParameterList #566 ] - vScope: ContractDefinition #623 - firstChild: StructuredDocumentation #567 - lastChild: ParameterList #566 + parent: ContractDefinition #782 + children: Array(2) [ StructuredDocumentation #726, ParameterList #725 ] + vScope: ContractDefinition #782 + firstChild: StructuredDocumentation #726 + lastChild: ParameterList #725 previousSibling: undefined - nextSibling: FunctionDefinition #573 - root: SourceUnit #641 + nextSibling: FunctionDefinition #732 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - StructuredDocumentation #567 - id: 567 + StructuredDocumentation #726 + id: 726 src: "0:0:0" type: "StructuredDocumentation" text: "Features084.Own error docstring" context: ASTContext #1000 - parent: ErrorDefinition #568 + parent: ErrorDefinition #727 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #566 - root: SourceUnit #641 + nextSibling: ParameterList #725 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #566 - id: 566 + ParameterList #725 + id: 725 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: ErrorDefinition #568 + parent: ErrorDefinition #727 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: StructuredDocumentation #567 + previousSibling: StructuredDocumentation #726 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #573 - id: 573 + FunctionDefinition #732 + id: 732 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 623 + scope: 782 kind: "function" name: "testAssemblyHexLiterals" visibility: "public" @@ -4660,70 +4668,70 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "3609:23:0" - vParameters: ParameterList #569 - vReturnParameters: ParameterList #570 + vParameters: ParameterList #728 + vReturnParameters: ParameterList #729 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #572 + vBody: Block #731 context: ASTContext #1000 - parent: ContractDefinition #623 - children: Array(3) [ ParameterList #569, ParameterList #570, Block #572 ] - vScope: ContractDefinition #623 - firstChild: ParameterList #569 - lastChild: Block #572 - previousSibling: ErrorDefinition #568 - nextSibling: FunctionDefinition #590 - root: SourceUnit #641 + parent: ContractDefinition #782 + children: Array(3) [ ParameterList #728, ParameterList #729, Block #731 ] + vScope: ContractDefinition #782 + firstChild: ParameterList #728 + lastChild: Block #731 + previousSibling: ErrorDefinition #727 + nextSibling: FunctionDefinition #749 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #569 - id: 569 + ParameterList #728 + id: 728 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #573 + parent: FunctionDefinition #732 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #570 - root: SourceUnit #641 + nextSibling: ParameterList #729 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #570 - id: 570 + ParameterList #729 + id: 729 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #573 + parent: FunctionDefinition #732 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #569 - nextSibling: Block #572 - root: SourceUnit #641 + previousSibling: ParameterList #728 + nextSibling: Block #731 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #572 - id: 572 + Block #731 + id: 731 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #573 - vStatements: Array(1) [ InlineAssembly #571 ] - children: Array(1) [ InlineAssembly #571 ] - firstChild: InlineAssembly #571 - lastChild: InlineAssembly #571 - previousSibling: ParameterList #570 + parent: FunctionDefinition #732 + vStatements: Array(1) [ InlineAssembly #730 ] + children: Array(1) [ InlineAssembly #730 ] + firstChild: InlineAssembly #730 + lastChild: InlineAssembly #730 + previousSibling: ParameterList #729 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - InlineAssembly #571 - id: 571 + InlineAssembly #730 + id: 730 src: "0:0:0" type: "InlineAssembly" documentation: undefined @@ -4731,22 +4739,22 @@ SourceUnit #641 operations: undefined yul: Object { nodeType: "YulBlock", src: "3661:221:0", statements: Array(6) [ Object { nodeType: "YulVariableDeclaration", src: "3675:15:0", value: Object { hexValue: "74657374", kind: "string", nodeType: "YulLiteral", src: "3684:6:0", type: "", value: "test" }, variables: Array(1) [ Object { name: "a", nodeType: "YulTypedName", src: "3679:1:0", type: "" } ] }, Object { nodeType: "YulVariableDeclaration", src: "3703:54:0", value: Object { hexValue: "112233445566778899aabbccddeeff6677889900", kind: "string", nodeType: "YulLiteral", src: "3712:45:0", type: "" }, variables: Array(1) [ Object { name: "x", nodeType: "YulTypedName", src: "3707:1:0", type: "" } ] }, Object { nodeType: "YulVariableDeclaration", src: "3770:23:0", value: Object { hexValue: "1234abcd", kind: "string", nodeType: "YulLiteral", src: "3779:14:0", type: "" }, variables: Array(1) [ Object { name: "y", nodeType: "YulTypedName", src: "3774:1:0", type: "" } ] }, Object { expression: Object { arguments: Array(2) [ Object { kind: "number", nodeType: "YulLiteral", src: "3814:1:0", type: "", value: "0" }, Object { name: "x", nodeType: "YulIdentifier", src: "3817:1:0" } ], functionName: Object { name: "sstore", nodeType: "YulIdentifier", src: "3807:6:0" }, nodeType: "YulFunctionCall", src: "3807:12:0" }, nodeType: "YulExpressionStatement", src: "3807:12:0" }, Object { expression: Object { arguments: Array(2) [ Object { kind: "number", nodeType: "YulLiteral", src: "3839:1:0", type: "", value: "1" }, Object { name: "y", nodeType: "YulIdentifier", src: "3842:1:0" } ], functionName: Object { name: "sstore", nodeType: "YulIdentifier", src: "3832:6:0" }, nodeType: "YulFunctionCall", src: "3832:12:0" }, nodeType: "YulExpressionStatement", src: "3832:12:0" }, Object { expression: Object { arguments: Array(1) [ Object { hexValue: "2233", kind: "string", nodeType: "YulLiteral", src: "3862:9:0", type: "", value: "\"3" } ], functionName: Object { name: "pop", nodeType: "YulIdentifier", src: "3858:3:0" }, nodeType: "YulFunctionCall", src: "3858:14:0" }, nodeType: "YulExpressionStatement", src: "3858:14:0" } ] } context: ASTContext #1000 - parent: Block #572 + parent: Block #731 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #590 - id: 590 + FunctionDefinition #749 + id: 749 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 623 + scope: 782 kind: "function" name: "testBytesConcatBuiltin" visibility: "public" @@ -4754,45 +4762,45 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "3903:22:0" - vParameters: ParameterList #578 - vReturnParameters: ParameterList #581 + vParameters: ParameterList #737 + vReturnParameters: ParameterList #740 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #589 + vBody: Block #748 context: ASTContext #1000 - parent: ContractDefinition #623 - children: Array(3) [ ParameterList #578, ParameterList #581, Block #589 ] - vScope: ContractDefinition #623 - firstChild: ParameterList #578 - lastChild: Block #589 - previousSibling: FunctionDefinition #573 - nextSibling: FunctionDefinition #598 - root: SourceUnit #641 + parent: ContractDefinition #782 + children: Array(3) [ ParameterList #737, ParameterList #740, Block #748 ] + vScope: ContractDefinition #782 + firstChild: ParameterList #737 + lastChild: Block #748 + previousSibling: FunctionDefinition #732 + nextSibling: FunctionDefinition #757 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #578 - id: 578 + ParameterList #737 + id: 737 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #590 - vParameters: Array(2) [ VariableDeclaration #575, VariableDeclaration #577 ] - children: Array(2) [ VariableDeclaration #575, VariableDeclaration #577 ] - firstChild: VariableDeclaration #575 - lastChild: VariableDeclaration #577 + parent: FunctionDefinition #749 + vParameters: Array(2) [ VariableDeclaration #734, VariableDeclaration #736 ] + children: Array(2) [ VariableDeclaration #734, VariableDeclaration #736 ] + firstChild: VariableDeclaration #734 + lastChild: VariableDeclaration #736 previousSibling: undefined - nextSibling: ParameterList #581 - root: SourceUnit #641 + nextSibling: ParameterList #740 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #575 - id: 575 + VariableDeclaration #734 + id: 734 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "a" - scope: 590 + scope: 749 stateVariable: false storageLocation: "memory" visibility: "internal" @@ -4800,45 +4808,45 @@ SourceUnit #641 typeString: "bytes" documentation: undefined nameLocation: "3939:1:0" - vType: ElementaryTypeName #574 + vType: ElementaryTypeName #733 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #578 - children: Array(1) [ ElementaryTypeName #574 ] - vScope: FunctionDefinition #590 - firstChild: ElementaryTypeName #574 - lastChild: ElementaryTypeName #574 + parent: ParameterList #737 + children: Array(1) [ ElementaryTypeName #733 ] + vScope: FunctionDefinition #749 + firstChild: ElementaryTypeName #733 + lastChild: ElementaryTypeName #733 previousSibling: undefined - nextSibling: VariableDeclaration #577 - root: SourceUnit #641 + nextSibling: VariableDeclaration #736 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #574 - id: 574 + ElementaryTypeName #733 + id: 733 src: "0:0:0" type: "ElementaryTypeName" typeString: "bytes" name: "bytes" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #575 + parent: VariableDeclaration #734 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #577 - id: 577 + VariableDeclaration #736 + id: 736 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "b" - scope: 590 + scope: 749 stateVariable: false storageLocation: "memory" visibility: "internal" @@ -4846,60 +4854,60 @@ SourceUnit #641 typeString: "bytes" documentation: undefined nameLocation: "3955:1:0" - vType: ElementaryTypeName #576 + vType: ElementaryTypeName #735 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #578 - children: Array(1) [ ElementaryTypeName #576 ] - vScope: FunctionDefinition #590 - firstChild: ElementaryTypeName #576 - lastChild: ElementaryTypeName #576 - previousSibling: VariableDeclaration #575 + parent: ParameterList #737 + children: Array(1) [ ElementaryTypeName #735 ] + vScope: FunctionDefinition #749 + firstChild: ElementaryTypeName #735 + lastChild: ElementaryTypeName #735 + previousSibling: VariableDeclaration #734 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #576 - id: 576 + ElementaryTypeName #735 + id: 735 src: "0:0:0" type: "ElementaryTypeName" typeString: "bytes" name: "bytes" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #577 + parent: VariableDeclaration #736 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #581 - id: 581 + ParameterList #740 + id: 740 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #590 - vParameters: Array(1) [ VariableDeclaration #580 ] - children: Array(1) [ VariableDeclaration #580 ] - firstChild: VariableDeclaration #580 - lastChild: VariableDeclaration #580 - previousSibling: ParameterList #578 - nextSibling: Block #589 - root: SourceUnit #641 + parent: FunctionDefinition #749 + vParameters: Array(1) [ VariableDeclaration #739 ] + children: Array(1) [ VariableDeclaration #739 ] + firstChild: VariableDeclaration #739 + lastChild: VariableDeclaration #739 + previousSibling: ParameterList #737 + nextSibling: Block #748 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #580 - id: 580 + VariableDeclaration #739 + id: 739 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "c" - scope: 590 + scope: 749 stateVariable: false storageLocation: "memory" visibility: "internal" @@ -4907,193 +4915,193 @@ SourceUnit #641 typeString: "bytes" documentation: undefined nameLocation: "3992:1:0" - vType: ElementaryTypeName #579 + vType: ElementaryTypeName #738 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #581 - children: Array(1) [ ElementaryTypeName #579 ] - vScope: FunctionDefinition #590 - firstChild: ElementaryTypeName #579 - lastChild: ElementaryTypeName #579 + parent: ParameterList #740 + children: Array(1) [ ElementaryTypeName #738 ] + vScope: FunctionDefinition #749 + firstChild: ElementaryTypeName #738 + lastChild: ElementaryTypeName #738 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #579 - id: 579 + ElementaryTypeName #738 + id: 738 src: "0:0:0" type: "ElementaryTypeName" typeString: "bytes" name: "bytes" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #580 + parent: VariableDeclaration #739 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #589 - id: 589 + Block #748 + id: 748 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #590 - vStatements: Array(1) [ Return #588 ] - children: Array(1) [ Return #588 ] - firstChild: Return #588 - lastChild: Return #588 - previousSibling: ParameterList #581 + parent: FunctionDefinition #749 + vStatements: Array(1) [ Return #747 ] + children: Array(1) [ Return #747 ] + firstChild: Return #747 + lastChild: Return #747 + previousSibling: ParameterList #740 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Return #588 - id: 588 + Return #747 + id: 747 src: "0:0:0" type: "Return" documentation: undefined functionReturnParameters: 253 - vExpression: FunctionCall #587 + vExpression: FunctionCall #746 context: ASTContext #1000 - parent: Block #589 - children: Array(1) [ FunctionCall #587 ] + parent: Block #748 + children: Array(1) [ FunctionCall #746 ] vFunctionReturnParameters: ParameterList #253 - firstChild: FunctionCall #587 - lastChild: FunctionCall #587 + firstChild: FunctionCall #746 + lastChild: FunctionCall #746 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #587 - id: 587 + FunctionCall #746 + id: 746 src: "0:0:0" type: "FunctionCall" typeString: "bytes memory" kind: "functionCall" fieldNames: undefined - vExpression: MemberAccess #584 - vArguments: Array(2) [ Identifier #585, Identifier #586 ] + vExpression: MemberAccess #743 + vArguments: Array(2) [ Identifier #744, Identifier #745 ] context: ASTContext #1000 - parent: Return #588 - children: Array(3) [ MemberAccess #584, Identifier #585, Identifier #586 ] + parent: Return #747 + children: Array(3) [ MemberAccess #743, Identifier #744, Identifier #745 ] vIdentifier: undefined vMemberName: "concat" vFunctionCallType: "builtin" vReferencedDeclaration: undefined vFunctionName: "concat" - vCallee: MemberAccess #584 - firstChild: MemberAccess #584 - lastChild: Identifier #586 + vCallee: MemberAccess #743 + firstChild: MemberAccess #743 + lastChild: Identifier #745 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - MemberAccess #584 - id: 584 + MemberAccess #743 + id: 743 src: "0:0:0" type: "MemberAccess" typeString: "function () pure returns (bytes memory)" - vExpression: ElementaryTypeNameExpression #583 + vExpression: ElementaryTypeNameExpression #742 memberName: "concat" referencedDeclaration: undefined context: ASTContext #1000 - parent: FunctionCall #587 - children: Array(1) [ ElementaryTypeNameExpression #583 ] + parent: FunctionCall #746 + children: Array(1) [ ElementaryTypeNameExpression #742 ] vReferencedDeclaration: undefined - firstChild: ElementaryTypeNameExpression #583 - lastChild: ElementaryTypeNameExpression #583 + firstChild: ElementaryTypeNameExpression #742 + lastChild: ElementaryTypeNameExpression #742 previousSibling: undefined - nextSibling: Identifier #585 - root: SourceUnit #641 + nextSibling: Identifier #744 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeNameExpression #583 - id: 583 + ElementaryTypeNameExpression #742 + id: 742 src: "0:0:0" type: "ElementaryTypeNameExpression" typeString: "type(bytes storage pointer)" - typeName: ElementaryTypeName #582 + typeName: ElementaryTypeName #741 context: ASTContext #1000 - parent: MemberAccess #584 - children: Array(1) [ ElementaryTypeName #582 ] - firstChild: ElementaryTypeName #582 - lastChild: ElementaryTypeName #582 + parent: MemberAccess #743 + children: Array(1) [ ElementaryTypeName #741 ] + firstChild: ElementaryTypeName #741 + lastChild: ElementaryTypeName #741 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #582 - id: 582 + ElementaryTypeName #741 + id: 741 src: "0:0:0" type: "ElementaryTypeName" typeString: undefined name: "bytes" stateMutability: "nonpayable" context: ASTContext #1000 - parent: ElementaryTypeNameExpression #583 + parent: ElementaryTypeNameExpression #742 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #585 - id: 585 + Identifier #744 + id: 744 src: "0:0:0" type: "Identifier" typeString: "bytes memory" name: "a" - referencedDeclaration: 575 + referencedDeclaration: 734 context: ASTContext #1000 - parent: FunctionCall #587 - vReferencedDeclaration: VariableDeclaration #575 + parent: FunctionCall #746 + vReferencedDeclaration: VariableDeclaration #734 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: MemberAccess #584 - nextSibling: Identifier #586 - root: SourceUnit #641 + previousSibling: MemberAccess #743 + nextSibling: Identifier #745 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #586 - id: 586 + Identifier #745 + id: 745 src: "0:0:0" type: "Identifier" typeString: "bytes memory" name: "b" - referencedDeclaration: 577 + referencedDeclaration: 736 context: ASTContext #1000 - parent: FunctionCall #587 - vReferencedDeclaration: VariableDeclaration #577 + parent: FunctionCall #746 + vReferencedDeclaration: VariableDeclaration #736 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #585 + previousSibling: Identifier #744 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #598 - id: 598 + FunctionDefinition #757 + id: 757 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 623 + scope: 782 kind: "function" name: "testVariableDeclarationStatementDocString" visibility: "public" @@ -5101,94 +5109,94 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "4052:41:0" - vParameters: ParameterList #591 - vReturnParameters: ParameterList #592 + vParameters: ParameterList #750 + vReturnParameters: ParameterList #751 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #597 + vBody: Block #756 context: ASTContext #1000 - parent: ContractDefinition #623 - children: Array(3) [ ParameterList #591, ParameterList #592, Block #597 ] - vScope: ContractDefinition #623 - firstChild: ParameterList #591 - lastChild: Block #597 - previousSibling: FunctionDefinition #590 - nextSibling: FunctionDefinition #607 - root: SourceUnit #641 + parent: ContractDefinition #782 + children: Array(3) [ ParameterList #750, ParameterList #751, Block #756 ] + vScope: ContractDefinition #782 + firstChild: ParameterList #750 + lastChild: Block #756 + previousSibling: FunctionDefinition #749 + nextSibling: FunctionDefinition #766 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #591 - id: 591 + ParameterList #750 + id: 750 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #598 + parent: FunctionDefinition #757 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #592 - root: SourceUnit #641 + nextSibling: ParameterList #751 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #592 - id: 592 + ParameterList #751 + id: 751 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #598 + parent: FunctionDefinition #757 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #591 - nextSibling: Block #597 - root: SourceUnit #641 + previousSibling: ParameterList #750 + nextSibling: Block #756 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #597 - id: 597 + Block #756 + id: 756 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #598 - vStatements: Array(1) [ VariableDeclarationStatement #596 ] - children: Array(1) [ VariableDeclarationStatement #596 ] - firstChild: VariableDeclarationStatement #596 - lastChild: VariableDeclarationStatement #596 - previousSibling: ParameterList #592 + parent: FunctionDefinition #757 + vStatements: Array(1) [ VariableDeclarationStatement #755 ] + children: Array(1) [ VariableDeclarationStatement #755 ] + firstChild: VariableDeclarationStatement #755 + lastChild: VariableDeclarationStatement #755 + previousSibling: ParameterList #751 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclarationStatement #596 - id: 596 + VariableDeclarationStatement #755 + id: 755 src: "0:0:0" type: "VariableDeclarationStatement" documentation: "VariableDeclarationStatement docstring" - assignments: Array(1) [ 594 ] - vDeclarations: Array(1) [ VariableDeclaration #594 ] - vInitialValue: Literal #595 + assignments: Array(1) [ 753 ] + vDeclarations: Array(1) [ VariableDeclaration #753 ] + vInitialValue: Literal #754 context: ASTContext #1000 - parent: Block #597 - children: Array(2) [ VariableDeclaration #594, Literal #595 ] - firstChild: VariableDeclaration #594 - lastChild: Literal #595 + parent: Block #756 + children: Array(2) [ VariableDeclaration #753, Literal #754 ] + firstChild: VariableDeclaration #753 + lastChild: Literal #754 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #594 - id: 594 + VariableDeclaration #753 + id: 753 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "a" - scope: 597 + scope: 756 stateVariable: false storageLocation: "default" visibility: "internal" @@ -5196,39 +5204,39 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "4169:1:0" - vType: ElementaryTypeName #593 + vType: ElementaryTypeName #752 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #596 - children: Array(1) [ ElementaryTypeName #593 ] - vScope: Block #597 - firstChild: ElementaryTypeName #593 - lastChild: ElementaryTypeName #593 + parent: VariableDeclarationStatement #755 + children: Array(1) [ ElementaryTypeName #752 ] + vScope: Block #756 + firstChild: ElementaryTypeName #752 + lastChild: ElementaryTypeName #752 previousSibling: undefined - nextSibling: Literal #595 - root: SourceUnit #641 + nextSibling: Literal #754 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #593 - id: 593 + ElementaryTypeName #752 + id: 752 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #594 + parent: VariableDeclaration #753 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #595 - id: 595 + Literal #754 + id: 754 src: "0:0:0" type: "Literal" typeString: "int_const 10" @@ -5237,22 +5245,22 @@ SourceUnit #641 value: "10" subdenomination: undefined context: ASTContext #1000 - parent: VariableDeclarationStatement #596 + parent: VariableDeclarationStatement #755 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: VariableDeclaration #594 + previousSibling: VariableDeclaration #753 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #607 - id: 607 + FunctionDefinition #766 + id: 766 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 623 + scope: 782 kind: "function" name: "revertWithLib" visibility: "public" @@ -5260,149 +5268,149 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "4197:13:0" - vParameters: ParameterList #599 - vReturnParameters: ParameterList #600 + vParameters: ParameterList #758 + vReturnParameters: ParameterList #759 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #606 + vBody: Block #765 context: ASTContext #1000 - parent: ContractDefinition #623 - children: Array(3) [ ParameterList #599, ParameterList #600, Block #606 ] - vScope: ContractDefinition #623 - firstChild: ParameterList #599 - lastChild: Block #606 - previousSibling: FunctionDefinition #598 - nextSibling: FunctionDefinition #614 - root: SourceUnit #641 + parent: ContractDefinition #782 + children: Array(3) [ ParameterList #758, ParameterList #759, Block #765 ] + vScope: ContractDefinition #782 + firstChild: ParameterList #758 + lastChild: Block #765 + previousSibling: FunctionDefinition #757 + nextSibling: FunctionDefinition #773 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #599 - id: 599 + ParameterList #758 + id: 758 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #607 + parent: FunctionDefinition #766 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #600 - root: SourceUnit #641 + nextSibling: ParameterList #759 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #600 - id: 600 + ParameterList #759 + id: 759 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #607 + parent: FunctionDefinition #766 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #599 - nextSibling: Block #606 - root: SourceUnit #641 + previousSibling: ParameterList #758 + nextSibling: Block #765 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #606 - id: 606 + Block #765 + id: 765 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #607 - vStatements: Array(1) [ RevertStatement #605 ] - children: Array(1) [ RevertStatement #605 ] - firstChild: RevertStatement #605 - lastChild: RevertStatement #605 - previousSibling: ParameterList #600 + parent: FunctionDefinition #766 + vStatements: Array(1) [ RevertStatement #764 ] + children: Array(1) [ RevertStatement #764 ] + firstChild: RevertStatement #764 + lastChild: RevertStatement #764 + previousSibling: ParameterList #759 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - RevertStatement #605 - id: 605 + RevertStatement #764 + id: 764 src: "0:0:0" type: "RevertStatement" documentation: "RevertStatement docstring" - errorCall: FunctionCall #604 + errorCall: FunctionCall #763 context: ASTContext #1000 - parent: Block #606 - children: Array(1) [ FunctionCall #604 ] - firstChild: FunctionCall #604 - lastChild: FunctionCall #604 + parent: Block #765 + children: Array(1) [ FunctionCall #763 ] + firstChild: FunctionCall #763 + lastChild: FunctionCall #763 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #604 - id: 604 + FunctionCall #763 + id: 763 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: MemberAccess #602 - vArguments: Array(1) [ Literal #603 ] + vExpression: MemberAccess #761 + vArguments: Array(1) [ Literal #762 ] context: ASTContext #1000 - parent: RevertStatement #605 - children: Array(2) [ MemberAccess #602, Literal #603 ] + parent: RevertStatement #764 + children: Array(2) [ MemberAccess #761, Literal #762 ] vIdentifier: "LibErrors084" vMemberName: "Lib" vFunctionCallType: "userDefined" - vReferencedDeclaration: ErrorDefinition #564 + vReferencedDeclaration: ErrorDefinition #723 vFunctionName: "Lib" - vCallee: MemberAccess #602 - firstChild: MemberAccess #602 - lastChild: Literal #603 + vCallee: MemberAccess #761 + firstChild: MemberAccess #761 + lastChild: Literal #762 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - MemberAccess #602 - id: 602 + MemberAccess #761 + id: 761 src: "0:0:0" type: "MemberAccess" typeString: "function (bytes memory) pure" - vExpression: Identifier #601 + vExpression: Identifier #760 memberName: "Lib" - referencedDeclaration: 564 + referencedDeclaration: 723 context: ASTContext #1000 - parent: FunctionCall #604 - children: Array(1) [ Identifier #601 ] - vReferencedDeclaration: ErrorDefinition #564 - firstChild: Identifier #601 - lastChild: Identifier #601 + parent: FunctionCall #763 + children: Array(1) [ Identifier #760 ] + vReferencedDeclaration: ErrorDefinition #723 + firstChild: Identifier #760 + lastChild: Identifier #760 previousSibling: undefined - nextSibling: Literal #603 - root: SourceUnit #641 + nextSibling: Literal #762 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #601 - id: 601 + Identifier #760 + id: 760 src: "0:0:0" type: "Identifier" typeString: "type(library LibErrors084)" name: "LibErrors084" - referencedDeclaration: 565 + referencedDeclaration: 724 context: ASTContext #1000 - parent: MemberAccess #602 - vReferencedDeclaration: ContractDefinition #565 + parent: MemberAccess #761 + vReferencedDeclaration: ContractDefinition #724 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #603 - id: 603 + Literal #762 + id: 762 src: "0:0:0" type: "Literal" typeString: "literal_string hex\"001122\"" @@ -5411,22 +5419,22 @@ SourceUnit #641 value: "\u0000\u0011\"" subdenomination: undefined context: ASTContext #1000 - parent: FunctionCall #604 + parent: FunctionCall #763 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: MemberAccess #602 + previousSibling: MemberAccess #761 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #614 - id: 614 + FunctionDefinition #773 + id: 773 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 623 + scope: 782 kind: "function" name: "revertWithOwn" visibility: "public" @@ -5434,135 +5442,135 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "4326:13:0" - vParameters: ParameterList #608 - vReturnParameters: ParameterList #609 + vParameters: ParameterList #767 + vReturnParameters: ParameterList #768 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #613 + vBody: Block #772 context: ASTContext #1000 - parent: ContractDefinition #623 - children: Array(3) [ ParameterList #608, ParameterList #609, Block #613 ] - vScope: ContractDefinition #623 - firstChild: ParameterList #608 - lastChild: Block #613 - previousSibling: FunctionDefinition #607 - nextSibling: FunctionDefinition #622 - root: SourceUnit #641 + parent: ContractDefinition #782 + children: Array(3) [ ParameterList #767, ParameterList #768, Block #772 ] + vScope: ContractDefinition #782 + firstChild: ParameterList #767 + lastChild: Block #772 + previousSibling: FunctionDefinition #766 + nextSibling: FunctionDefinition #781 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #608 - id: 608 + ParameterList #767 + id: 767 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #614 + parent: FunctionDefinition #773 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #609 - root: SourceUnit #641 + nextSibling: ParameterList #768 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #609 - id: 609 + ParameterList #768 + id: 768 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #614 + parent: FunctionDefinition #773 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #608 - nextSibling: Block #613 - root: SourceUnit #641 + previousSibling: ParameterList #767 + nextSibling: Block #772 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #613 - id: 613 + Block #772 + id: 772 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #614 - vStatements: Array(1) [ RevertStatement #612 ] - children: Array(1) [ RevertStatement #612 ] - firstChild: RevertStatement #612 - lastChild: RevertStatement #612 - previousSibling: ParameterList #609 + parent: FunctionDefinition #773 + vStatements: Array(1) [ RevertStatement #771 ] + children: Array(1) [ RevertStatement #771 ] + firstChild: RevertStatement #771 + lastChild: RevertStatement #771 + previousSibling: ParameterList #768 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - RevertStatement #612 - id: 612 + RevertStatement #771 + id: 771 src: "0:0:0" type: "RevertStatement" documentation: undefined - errorCall: FunctionCall #611 + errorCall: FunctionCall #770 context: ASTContext #1000 - parent: Block #613 - children: Array(1) [ FunctionCall #611 ] - firstChild: FunctionCall #611 - lastChild: FunctionCall #611 + parent: Block #772 + children: Array(1) [ FunctionCall #770 ] + firstChild: FunctionCall #770 + lastChild: FunctionCall #770 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #611 - id: 611 + FunctionCall #770 + id: 770 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: Identifier #610 + vExpression: Identifier #769 vArguments: Array(0) context: ASTContext #1000 - parent: RevertStatement #612 - children: Array(1) [ Identifier #610 ] + parent: RevertStatement #771 + children: Array(1) [ Identifier #769 ] vIdentifier: "Own" vMemberName: undefined vFunctionCallType: "userDefined" - vReferencedDeclaration: ErrorDefinition #568 + vReferencedDeclaration: ErrorDefinition #727 vFunctionName: "Own" - vCallee: Identifier #610 - firstChild: Identifier #610 - lastChild: Identifier #610 + vCallee: Identifier #769 + firstChild: Identifier #769 + lastChild: Identifier #769 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #610 - id: 610 + Identifier #769 + id: 769 src: "0:0:0" type: "Identifier" typeString: "function () pure" name: "Own" - referencedDeclaration: 568 + referencedDeclaration: 727 context: ASTContext #1000 - parent: FunctionCall #611 - vReferencedDeclaration: ErrorDefinition #568 + parent: FunctionCall #770 + vReferencedDeclaration: ErrorDefinition #727 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #622 - id: 622 + FunctionDefinition #781 + id: 781 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 623 + scope: 782 kind: "function" name: "revertWithUnitLevelError" visibility: "public" @@ -5570,130 +5578,130 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "4393:24:0" - vParameters: ParameterList #615 - vReturnParameters: ParameterList #616 + vParameters: ParameterList #774 + vReturnParameters: ParameterList #775 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #621 + vBody: Block #780 context: ASTContext #1000 - parent: ContractDefinition #623 - children: Array(3) [ ParameterList #615, ParameterList #616, Block #621 ] - vScope: ContractDefinition #623 - firstChild: ParameterList #615 - lastChild: Block #621 - previousSibling: FunctionDefinition #614 + parent: ContractDefinition #782 + children: Array(3) [ ParameterList #774, ParameterList #775, Block #780 ] + vScope: ContractDefinition #782 + firstChild: ParameterList #774 + lastChild: Block #780 + previousSibling: FunctionDefinition #773 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #615 - id: 615 + ParameterList #774 + id: 774 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #622 + parent: FunctionDefinition #781 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #616 - root: SourceUnit #641 + nextSibling: ParameterList #775 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #616 - id: 616 + ParameterList #775 + id: 775 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #622 + parent: FunctionDefinition #781 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ParameterList #615 - nextSibling: Block #621 - root: SourceUnit #641 + previousSibling: ParameterList #774 + nextSibling: Block #780 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #621 - id: 621 + Block #780 + id: 780 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #622 - vStatements: Array(1) [ RevertStatement #620 ] - children: Array(1) [ RevertStatement #620 ] - firstChild: RevertStatement #620 - lastChild: RevertStatement #620 - previousSibling: ParameterList #616 + parent: FunctionDefinition #781 + vStatements: Array(1) [ RevertStatement #779 ] + children: Array(1) [ RevertStatement #779 ] + firstChild: RevertStatement #779 + lastChild: RevertStatement #779 + previousSibling: ParameterList #775 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - RevertStatement #620 - id: 620 + RevertStatement #779 + id: 779 src: "0:0:0" type: "RevertStatement" documentation: undefined - errorCall: FunctionCall #619 + errorCall: FunctionCall #778 context: ASTContext #1000 - parent: Block #621 - children: Array(1) [ FunctionCall #619 ] - firstChild: FunctionCall #619 - lastChild: FunctionCall #619 + parent: Block #780 + children: Array(1) [ FunctionCall #778 ] + firstChild: FunctionCall #778 + lastChild: FunctionCall #778 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionCall #619 - id: 619 + FunctionCall #778 + id: 778 src: "0:0:0" type: "FunctionCall" typeString: "tuple()" kind: "functionCall" fieldNames: undefined - vExpression: Identifier #617 - vArguments: Array(1) [ Literal #618 ] + vExpression: Identifier #776 + vArguments: Array(1) [ Literal #777 ] context: ASTContext #1000 - parent: RevertStatement #620 - children: Array(2) [ Identifier #617, Literal #618 ] + parent: RevertStatement #779 + children: Array(2) [ Identifier #776, Literal #777 ] vIdentifier: "UnitLevelError084" vMemberName: undefined vFunctionCallType: "userDefined" - vReferencedDeclaration: ErrorDefinition #559 + vReferencedDeclaration: ErrorDefinition #718 vFunctionName: "UnitLevelError084" - vCallee: Identifier #617 - firstChild: Identifier #617 - lastChild: Literal #618 + vCallee: Identifier #776 + firstChild: Identifier #776 + lastChild: Literal #777 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #617 - id: 617 + Identifier #776 + id: 776 src: "0:0:0" type: "Identifier" typeString: "function (uint256) pure" name: "UnitLevelError084" - referencedDeclaration: 559 + referencedDeclaration: 718 context: ASTContext #1000 - parent: FunctionCall #619 - vReferencedDeclaration: ErrorDefinition #559 + parent: FunctionCall #778 + vReferencedDeclaration: ErrorDefinition #718 vIdentifierType: "userDefined" children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: Literal #618 - root: SourceUnit #641 + nextSibling: Literal #777 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #618 - id: 618 + Literal #777 + id: 777 src: "0:0:0" type: "Literal" typeString: "int_const 1" @@ -5702,59 +5710,60 @@ SourceUnit #641 value: "1" subdenomination: undefined context: ASTContext #1000 - parent: FunctionCall #619 + parent: FunctionCall #778 children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: Identifier #617 + previousSibling: Identifier #776 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #640 - id: 640 + ContractDefinition #799 + id: 799 src: "0:0:0" type: "ContractDefinition" name: "Features087" - scope: 641 + scope: 959 kind: "contract" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(1) [ 640 ] + linearizedBaseContracts: Array(1) [ 799 ] usedErrors: Array(0) docString: undefined nameLocation: "4484:11:0" context: ASTContext #1000 - parent: SourceUnit #641 + parent: SourceUnit #959 documentation: undefined - vScope: SourceUnit #641 - vLinearizedBaseContracts: Array(1) [ ContractDefinition #640 ] + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #799 ] vUsedErrors: Array(0) vInheritanceSpecifiers: Array(0) vStateVariables: Array(0) vModifiers: Array(0) vEvents: Array(0) vErrors: Array(0) - vFunctions: Array(2) [ FunctionDefinition #632, FunctionDefinition #639 ] + vFunctions: Array(2) [ FunctionDefinition #791, FunctionDefinition #798 ] vUsingForDirectives: Array(0) vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(0) vConstructor: undefined - children: Array(2) [ FunctionDefinition #632, FunctionDefinition #639 ] - firstChild: FunctionDefinition #632 - lastChild: FunctionDefinition #639 - previousSibling: ContractDefinition #623 - nextSibling: undefined - root: SourceUnit #641 + children: Array(2) [ FunctionDefinition #791, FunctionDefinition #798 ] + firstChild: FunctionDefinition #791 + lastChild: FunctionDefinition #798 + previousSibling: ContractDefinition #782 + nextSibling: UserDefinedValueTypeDefinition #801 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #632 - id: 632 + FunctionDefinition #791 + id: 791 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 640 + scope: 799 kind: "function" name: "basefeeGlobal" visibility: "external" @@ -5762,60 +5771,60 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "4511:13:0" - vParameters: ParameterList #624 - vReturnParameters: ParameterList #627 + vParameters: ParameterList #783 + vReturnParameters: ParameterList #786 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #631 + vBody: Block #790 context: ASTContext #1000 - parent: ContractDefinition #640 - children: Array(3) [ ParameterList #624, ParameterList #627, Block #631 ] - vScope: ContractDefinition #640 - firstChild: ParameterList #624 - lastChild: Block #631 + parent: ContractDefinition #799 + children: Array(3) [ ParameterList #783, ParameterList #786, Block #790 ] + vScope: ContractDefinition #799 + firstChild: ParameterList #783 + lastChild: Block #790 previousSibling: undefined - nextSibling: FunctionDefinition #639 - root: SourceUnit #641 + nextSibling: FunctionDefinition #798 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #624 - id: 624 + ParameterList #783 + id: 783 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #632 + parent: FunctionDefinition #791 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #627 - root: SourceUnit #641 + nextSibling: ParameterList #786 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #627 - id: 627 + ParameterList #786 + id: 786 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #632 - vParameters: Array(1) [ VariableDeclaration #626 ] - children: Array(1) [ VariableDeclaration #626 ] - firstChild: VariableDeclaration #626 - lastChild: VariableDeclaration #626 - previousSibling: ParameterList #624 - nextSibling: Block #631 - root: SourceUnit #641 + parent: FunctionDefinition #791 + vParameters: Array(1) [ VariableDeclaration #785 ] + children: Array(1) [ VariableDeclaration #785 ] + firstChild: VariableDeclaration #785 + lastChild: VariableDeclaration #785 + previousSibling: ParameterList #783 + nextSibling: Block #790 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #626 - id: 626 + VariableDeclaration #785 + id: 785 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "" - scope: 632 + scope: 791 stateVariable: false storageLocation: "default" visibility: "internal" @@ -5823,99 +5832,99 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "-1:-1:-1" - vType: ElementaryTypeName #625 + vType: ElementaryTypeName #784 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #627 - children: Array(1) [ ElementaryTypeName #625 ] - vScope: FunctionDefinition #632 - firstChild: ElementaryTypeName #625 - lastChild: ElementaryTypeName #625 + parent: ParameterList #786 + children: Array(1) [ ElementaryTypeName #784 ] + vScope: FunctionDefinition #791 + firstChild: ElementaryTypeName #784 + lastChild: ElementaryTypeName #784 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #625 - id: 625 + ElementaryTypeName #784 + id: 784 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #626 + parent: VariableDeclaration #785 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #631 - id: 631 + Block #790 + id: 790 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #632 - vStatements: Array(1) [ Return #630 ] - children: Array(1) [ Return #630 ] - firstChild: Return #630 - lastChild: Return #630 - previousSibling: ParameterList #627 + parent: FunctionDefinition #791 + vStatements: Array(1) [ Return #789 ] + children: Array(1) [ Return #789 ] + firstChild: Return #789 + lastChild: Return #789 + previousSibling: ParameterList #786 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Return #630 - id: 630 + Return #789 + id: 789 src: "0:0:0" type: "Return" documentation: undefined functionReturnParameters: 301 - vExpression: MemberAccess #629 + vExpression: MemberAccess #788 context: ASTContext #1000 - parent: Block #631 - children: Array(1) [ MemberAccess #629 ] + parent: Block #790 + children: Array(1) [ MemberAccess #788 ] vFunctionReturnParameters: ParameterList #301 - firstChild: MemberAccess #629 - lastChild: MemberAccess #629 + firstChild: MemberAccess #788 + lastChild: MemberAccess #788 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - MemberAccess #629 - id: 629 + MemberAccess #788 + id: 788 src: "0:0:0" type: "MemberAccess" typeString: "uint256" - vExpression: Identifier #628 + vExpression: Identifier #787 memberName: "basefee" referencedDeclaration: undefined context: ASTContext #1000 - parent: Return #630 - children: Array(1) [ Identifier #628 ] + parent: Return #789 + children: Array(1) [ Identifier #787 ] vReferencedDeclaration: undefined - firstChild: Identifier #628 - lastChild: Identifier #628 + firstChild: Identifier #787 + lastChild: Identifier #787 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Identifier #628 - id: 628 + Identifier #787 + id: 787 src: "0:0:0" type: "Identifier" typeString: "block" name: "block" referencedDeclaration: -1 context: ASTContext #1000 - parent: MemberAccess #629 + parent: MemberAccess #788 vReferencedDeclaration: undefined vIdentifierType: "builtin" children: Array(0) @@ -5923,16 +5932,16 @@ SourceUnit #641 lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #639 - id: 639 + FunctionDefinition #798 + id: 798 src: "0:0:0" type: "FunctionDefinition" implemented: true virtual: false - scope: 640 + scope: 799 kind: "function" name: "basefeeInlineAssembly" visibility: "external" @@ -5940,60 +5949,60 @@ SourceUnit #641 isConstructor: false documentation: undefined nameLocation: "4608:21:0" - vParameters: ParameterList #633 - vReturnParameters: ParameterList #636 + vParameters: ParameterList #792 + vReturnParameters: ParameterList #795 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #638 + vBody: Block #797 context: ASTContext #1000 - parent: ContractDefinition #640 - children: Array(3) [ ParameterList #633, ParameterList #636, Block #638 ] - vScope: ContractDefinition #640 - firstChild: ParameterList #633 - lastChild: Block #638 - previousSibling: FunctionDefinition #632 + parent: ContractDefinition #799 + children: Array(3) [ ParameterList #792, ParameterList #795, Block #797 ] + vScope: ContractDefinition #799 + firstChild: ParameterList #792 + lastChild: Block #797 + previousSibling: FunctionDefinition #791 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #633 - id: 633 + ParameterList #792 + id: 792 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #639 + parent: FunctionDefinition #798 vParameters: Array(0) children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined - nextSibling: ParameterList #636 - root: SourceUnit #641 + nextSibling: ParameterList #795 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #636 - id: 636 + ParameterList #795 + id: 795 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #639 - vParameters: Array(1) [ VariableDeclaration #635 ] - children: Array(1) [ VariableDeclaration #635 ] - firstChild: VariableDeclaration #635 - lastChild: VariableDeclaration #635 - previousSibling: ParameterList #633 - nextSibling: Block #638 - root: SourceUnit #641 + parent: FunctionDefinition #798 + vParameters: Array(1) [ VariableDeclaration #794 ] + children: Array(1) [ VariableDeclaration #794 ] + firstChild: VariableDeclaration #794 + lastChild: VariableDeclaration #794 + previousSibling: ParameterList #792 + nextSibling: Block #797 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #635 - id: 635 + VariableDeclaration #794 + id: 794 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "ret" - scope: 639 + scope: 798 stateVariable: false storageLocation: "default" visibility: "internal" @@ -6001,55 +6010,55 @@ SourceUnit #641 typeString: "uint256" documentation: undefined nameLocation: "4660:3:0" - vType: ElementaryTypeName #634 + vType: ElementaryTypeName #793 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #636 - children: Array(1) [ ElementaryTypeName #634 ] - vScope: FunctionDefinition #639 - firstChild: ElementaryTypeName #634 - lastChild: ElementaryTypeName #634 + parent: ParameterList #795 + children: Array(1) [ ElementaryTypeName #793 ] + vScope: FunctionDefinition #798 + firstChild: ElementaryTypeName #793 + lastChild: ElementaryTypeName #793 previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #634 - id: 634 + ElementaryTypeName #793 + id: 793 src: "0:0:0" type: "ElementaryTypeName" typeString: "uint256" name: "uint" stateMutability: "nonpayable" context: ASTContext #1000 - parent: VariableDeclaration #635 + parent: VariableDeclaration #794 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #638 - id: 638 + Block #797 + id: 797 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #639 - vStatements: Array(1) [ InlineAssembly #637 ] - children: Array(1) [ InlineAssembly #637 ] - firstChild: InlineAssembly #637 - lastChild: InlineAssembly #637 - previousSibling: ParameterList #636 + parent: FunctionDefinition #798 + vStatements: Array(1) [ InlineAssembly #796 ] + children: Array(1) [ InlineAssembly #796 ] + firstChild: InlineAssembly #796 + lastChild: InlineAssembly #796 + previousSibling: ParameterList #795 nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - InlineAssembly #637 - id: 637 + InlineAssembly #796 + id: 796 src: "0:0:0" type: "InlineAssembly" documentation: undefined @@ -6057,321 +6066,3599 @@ SourceUnit #641 operations: undefined yul: Object { nodeType: "YulBlock", src: "4684:40:0", statements: Array(1) [ Object { nodeType: "YulAssignment", src: "4698:16:0", value: Object { arguments: Array(0), functionName: Object { name: "basefee", nodeType: "YulIdentifier", src: "4705:7:0" }, nodeType: "YulFunctionCall", src: "4705:9:0" }, variableNames: Array(1) [ Object { name: "ret", nodeType: "YulIdentifier", src: "4698:3:0" } ] } ] } context: ASTContext #1000 - parent: Block #638 + parent: Block #797 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #641 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } -SourceUnit #657 - id: 657 - src: "0:0:0" - type: "SourceUnit" - sourceEntryKey: "./test/samples/solidity/latest_imports_08.sol" - sourceListIndex: 1 - absolutePath: "./test/samples/solidity/latest_imports_08.sol" - exportedSymbols: Map(2) { "SomeContract" -> 655, "SomeLib" -> 656 } - context: ASTContext #1000 - vPragmaDirectives: Array(2) [ PragmaDirective #642, PragmaDirective #643 ] - vImportDirectives: Array(0) - vContracts: Array(2) [ ContractDefinition #655, ContractDefinition #656 ] - vEnums: Array(0) - vErrors: Array(0) - vStructs: Array(0) - vFunctions: Array(0) - vVariables: Array(0) - vExportedSymbols: Map(2) { "SomeContract" -> ContractDefinition #655, "SomeLib" -> ContractDefinition #656 } - children: Array(4) [ PragmaDirective #642, PragmaDirective #643, ContractDefinition #655, ContractDefinition #656 ] - firstChild: PragmaDirective #642 - lastChild: ContractDefinition #656 - previousSibling: undefined - nextSibling: undefined - root: SourceUnit #657 - sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - - PragmaDirective #642 - id: 642 + UserDefinedValueTypeDefinition #801 + id: 801 src: "0:0:0" - type: "PragmaDirective" - literals: Array(4) [ "solidity", "^", "0.8", ".0" ] + type: "UserDefinedValueTypeDefinition" + name: "Price" + canonicalName: "Price" + underlyingType: ElementaryTypeName #800 + nameLocation: "4739:5:0" context: ASTContext #1000 - parent: SourceUnit #657 - vIdentifier: "solidity" - vValue: "^0.8.0" - children: Array(0) - firstChild: undefined - lastChild: undefined - previousSibling: undefined - nextSibling: PragmaDirective #643 - root: SourceUnit #657 + parent: SourceUnit #959 + children: Array(1) [ ElementaryTypeName #800 ] + vScope: SourceUnit #959 + firstChild: ElementaryTypeName #800 + lastChild: ElementaryTypeName #800 + previousSibling: ContractDefinition #799 + nextSibling: UserDefinedValueTypeDefinition #803 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - PragmaDirective #643 - id: 643 + ElementaryTypeName #800 + id: 800 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint128" + name: "uint128" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: UserDefinedValueTypeDefinition #801 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + UserDefinedValueTypeDefinition #803 + id: 803 src: "0:0:0" - type: "PragmaDirective" - literals: Array(2) [ "abicoder", "v2" ] + type: "UserDefinedValueTypeDefinition" + name: "Quantity" + canonicalName: "Quantity" + underlyingType: ElementaryTypeName #802 + nameLocation: "4762:8:0" context: ASTContext #1000 - parent: SourceUnit #657 - vIdentifier: "abicoder" - vValue: "v2" - children: Array(0) - firstChild: undefined - lastChild: undefined - previousSibling: PragmaDirective #642 - nextSibling: ContractDefinition #655 - root: SourceUnit #657 + parent: SourceUnit #959 + children: Array(1) [ ElementaryTypeName #802 ] + vScope: SourceUnit #959 + firstChild: ElementaryTypeName #802 + lastChild: ElementaryTypeName #802 + previousSibling: UserDefinedValueTypeDefinition #801 + nextSibling: ContractDefinition #891 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #655 - id: 655 + ElementaryTypeName #802 + id: 802 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint128" + name: "uint128" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: UserDefinedValueTypeDefinition #803 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ContractDefinition #891 + id: 891 src: "0:0:0" type: "ContractDefinition" - name: "SomeContract" - scope: 657 - kind: "contract" + name: "LibWithUDVT_088" + scope: 959 + kind: "library" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(1) [ 655 ] + linearizedBaseContracts: Array(1) [ 891 ] usedErrors: Array(0) docString: undefined - nameLocation: "54:12:1" + nameLocation: "4792:15:0" context: ASTContext #1000 - parent: SourceUnit #657 + parent: SourceUnit #959 documentation: undefined - vScope: SourceUnit #657 - vLinearizedBaseContracts: Array(1) [ ContractDefinition #655 ] + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #891 ] vUsedErrors: Array(0) vInheritanceSpecifiers: Array(0) - vStateVariables: Array(0) + vStateVariables: Array(1) [ VariableDeclaration #810 ] vModifiers: Array(0) vEvents: Array(0) vErrors: Array(0) - vFunctions: Array(1) [ FunctionDefinition #654 ] + vFunctions: Array(4) [ FunctionDefinition #836, FunctionDefinition #858, FunctionDefinition #874, FunctionDefinition #890 ] vUsingForDirectives: Array(0) - vStructs: Array(1) [ StructDefinition #646 ] + vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(1) [ UserDefinedValueTypeDefinition #805 ] vConstructor: undefined - children: Array(2) [ StructDefinition #646, FunctionDefinition #654 ] - firstChild: StructDefinition #646 - lastChild: FunctionDefinition #654 - previousSibling: PragmaDirective #643 - nextSibling: ContractDefinition #656 - root: SourceUnit #657 + children: Array(6) [ UserDefinedValueTypeDefinition #805, VariableDeclaration #810, FunctionDefinition #836, FunctionDefinition #858, FunctionDefinition #874, FunctionDefinition #890 ] + firstChild: UserDefinedValueTypeDefinition #805 + lastChild: FunctionDefinition #890 + previousSibling: UserDefinedValueTypeDefinition #803 + nextSibling: ContractDefinition #902 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - StructDefinition #646 - id: 646 + UserDefinedValueTypeDefinition #805 + id: 805 src: "0:0:0" - type: "StructDefinition" - name: "SomeStruct" - canonicalName: "SomeContract.SomeStruct" - scope: 655 - visibility: "public" - nameLocation: "80:10:1" + type: "UserDefinedValueTypeDefinition" + name: "UFixed" + canonicalName: "LibWithUDVT_088.UFixed" + underlyingType: ElementaryTypeName #804 + nameLocation: "4819:6:0" context: ASTContext #1000 - parent: ContractDefinition #655 - vMembers: Array(1) [ VariableDeclaration #645 ] - vScope: ContractDefinition #655 - children: Array(1) [ VariableDeclaration #645 ] - firstChild: VariableDeclaration #645 - lastChild: VariableDeclaration #645 + parent: ContractDefinition #891 + children: Array(1) [ ElementaryTypeName #804 ] + vScope: ContractDefinition #891 + firstChild: ElementaryTypeName #804 + lastChild: ElementaryTypeName #804 previousSibling: undefined - nextSibling: FunctionDefinition #654 - root: SourceUnit #657 + nextSibling: VariableDeclaration #810 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #645 - id: 645 + ElementaryTypeName #804 + id: 804 src: "0:0:0" - type: "VariableDeclaration" - constant: false - indexed: false - name: "n" - scope: 646 - stateVariable: false - storageLocation: "default" - visibility: "internal" - mutability: "mutable" + type: "ElementaryTypeName" typeString: "uint256" - documentation: undefined - nameLocation: "106:1:1" - vType: ElementaryTypeName #644 - vOverrideSpecifier: undefined - vValue: undefined + name: "uint256" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: UserDefinedValueTypeDefinition #805 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #810 + id: 810 + src: "0:0:0" + type: "VariableDeclaration" + constant: true + indexed: false + name: "multiplier" + scope: 891 + stateVariable: true + storageLocation: "default" + visibility: "internal" + mutability: "constant" + typeString: "uint256" + documentation: undefined + nameLocation: "4857:10:0" + vType: ElementaryTypeName #806 + vOverrideSpecifier: undefined + vValue: BinaryOperation #809 + context: ASTContext #1000 + parent: ContractDefinition #891 + children: Array(2) [ ElementaryTypeName #806, BinaryOperation #809 ] + vScope: ContractDefinition #891 + firstChild: ElementaryTypeName #806 + lastChild: BinaryOperation #809 + previousSibling: UserDefinedValueTypeDefinition #805 + nextSibling: FunctionDefinition #836 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #806 + id: 806 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint256" + name: "uint" + stateMutability: "nonpayable" context: ASTContext #1000 - parent: StructDefinition #646 - children: Array(1) [ ElementaryTypeName #644 ] - vScope: StructDefinition #646 - firstChild: ElementaryTypeName #644 - lastChild: ElementaryTypeName #644 + parent: VariableDeclaration #810 + children: Array(0) + firstChild: undefined + lastChild: undefined previousSibling: undefined + nextSibling: BinaryOperation #809 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + BinaryOperation #809 + id: 809 + src: "0:0:0" + type: "BinaryOperation" + typeString: "int_const 1000000000000000000" + operator: "**" + vLeftExpression: Literal #807 + vRightExpression: Literal #808 + context: ASTContext #1000 + parent: VariableDeclaration #810 + children: Array(2) [ Literal #807, Literal #808 ] + firstChild: Literal #807 + lastChild: Literal #808 + previousSibling: ElementaryTypeName #806 nextSibling: undefined - root: SourceUnit #657 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #644 - id: 644 + Literal #807 + id: 807 src: "0:0:0" - type: "ElementaryTypeName" - typeString: "uint256" - name: "uint" - stateMutability: "nonpayable" + type: "Literal" + typeString: "int_const 10" + kind: "number" + hexValue: "3130" + value: "10" + subdenomination: undefined context: ASTContext #1000 - parent: VariableDeclaration #645 + parent: BinaryOperation #809 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined + nextSibling: Literal #808 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Literal #808 + id: 808 + src: "0:0:0" + type: "Literal" + typeString: "int_const 18" + kind: "number" + hexValue: "3138" + value: "18" + subdenomination: undefined + context: ASTContext #1000 + parent: BinaryOperation #809 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: Literal #807 nextSibling: undefined - root: SourceUnit #657 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - FunctionDefinition #654 - id: 654 + FunctionDefinition #836 + id: 836 src: "0:0:0" type: "FunctionDefinition" implemented: true - virtual: true - scope: 655 + virtual: false + scope: 891 kind: "function" - name: "some" - visibility: "public" - stateMutability: "nonpayable" + name: "add" + visibility: "internal" + stateMutability: "pure" isConstructor: false documentation: undefined - nameLocation: "129:4:1" - vParameters: ParameterList #647 - vReturnParameters: ParameterList #650 + nameLocation: "4892:3:0" + vParameters: ParameterList #817 + vReturnParameters: ParameterList #821 vModifiers: Array(0) vOverrideSpecifier: undefined - vBody: Block #653 + vBody: Block #835 context: ASTContext #1000 - parent: ContractDefinition #655 - children: Array(3) [ ParameterList #647, ParameterList #650, Block #653 ] - vScope: ContractDefinition #655 - firstChild: ParameterList #647 - lastChild: Block #653 - previousSibling: StructDefinition #646 - nextSibling: undefined - root: SourceUnit #657 + parent: ContractDefinition #891 + children: Array(3) [ ParameterList #817, ParameterList #821, Block #835 ] + vScope: ContractDefinition #891 + firstChild: ParameterList #817 + lastChild: Block #835 + previousSibling: VariableDeclaration #810 + nextSibling: FunctionDefinition #858 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #647 - id: 647 + ParameterList #817 + id: 817 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #654 - vParameters: Array(0) - children: Array(0) - firstChild: undefined - lastChild: undefined + parent: FunctionDefinition #836 + vParameters: Array(2) [ VariableDeclaration #813, VariableDeclaration #816 ] + children: Array(2) [ VariableDeclaration #813, VariableDeclaration #816 ] + firstChild: VariableDeclaration #813 + lastChild: VariableDeclaration #816 previousSibling: undefined - nextSibling: ParameterList #650 - root: SourceUnit #657 + nextSibling: ParameterList #821 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ParameterList #650 - id: 650 + VariableDeclaration #813 + id: 813 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "a" + scope: 836 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "LibWithUDVT_088.UFixed" + documentation: undefined + nameLocation: "4903:1:0" + vType: UserDefinedTypeName #812 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #817 + children: Array(1) [ UserDefinedTypeName #812 ] + vScope: FunctionDefinition #836 + firstChild: UserDefinedTypeName #812 + lastChild: UserDefinedTypeName #812 + previousSibling: undefined + nextSibling: VariableDeclaration #816 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + UserDefinedTypeName #812 + id: 812 + src: "0:0:0" + type: "UserDefinedTypeName" + typeString: "LibWithUDVT_088.UFixed" + name: undefined + referencedDeclaration: 805 + path: IdentifierPath #811 + context: ASTContext #1000 + parent: VariableDeclaration #813 + children: Array(1) [ IdentifierPath #811 ] + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + firstChild: IdentifierPath #811 + lastChild: IdentifierPath #811 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + IdentifierPath #811 + id: 811 + src: "0:0:0" + type: "IdentifierPath" + name: "UFixed" + referencedDeclaration: 320 + context: ASTContext #1000 + parent: UserDefinedTypeName #812 + vReferencedDeclaration: UserDefinedValueTypeDefinition #320 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #816 + id: 816 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "b" + scope: 836 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "LibWithUDVT_088.UFixed" + documentation: undefined + nameLocation: "4913:1:0" + vType: UserDefinedTypeName #815 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #817 + children: Array(1) [ UserDefinedTypeName #815 ] + vScope: FunctionDefinition #836 + firstChild: UserDefinedTypeName #815 + lastChild: UserDefinedTypeName #815 + previousSibling: VariableDeclaration #813 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + UserDefinedTypeName #815 + id: 815 + src: "0:0:0" + type: "UserDefinedTypeName" + typeString: "LibWithUDVT_088.UFixed" + name: undefined + referencedDeclaration: 805 + path: IdentifierPath #814 + context: ASTContext #1000 + parent: VariableDeclaration #816 + children: Array(1) [ IdentifierPath #814 ] + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + firstChild: IdentifierPath #814 + lastChild: IdentifierPath #814 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + IdentifierPath #814 + id: 814 + src: "0:0:0" + type: "IdentifierPath" + name: "UFixed" + referencedDeclaration: 320 + context: ASTContext #1000 + parent: UserDefinedTypeName #815 + vReferencedDeclaration: UserDefinedValueTypeDefinition #320 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #821 + id: 821 src: "0:0:0" type: "ParameterList" context: ASTContext #1000 - parent: FunctionDefinition #654 - vParameters: Array(1) [ VariableDeclaration #649 ] - children: Array(1) [ VariableDeclaration #649 ] - firstChild: VariableDeclaration #649 - lastChild: VariableDeclaration #649 - previousSibling: ParameterList #647 - nextSibling: Block #653 - root: SourceUnit #657 + parent: FunctionDefinition #836 + vParameters: Array(1) [ VariableDeclaration #820 ] + children: Array(1) [ VariableDeclaration #820 ] + firstChild: VariableDeclaration #820 + lastChild: VariableDeclaration #820 + previousSibling: ParameterList #817 + nextSibling: Block #835 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - VariableDeclaration #649 - id: 649 + VariableDeclaration #820 + id: 820 src: "0:0:0" type: "VariableDeclaration" constant: false indexed: false name: "" - scope: 654 + scope: 836 stateVariable: false storageLocation: "default" visibility: "internal" mutability: "mutable" - typeString: "uint256" + typeString: "LibWithUDVT_088.UFixed" documentation: undefined nameLocation: "-1:-1:-1" - vType: ElementaryTypeName #648 + vType: UserDefinedTypeName #819 vOverrideSpecifier: undefined vValue: undefined context: ASTContext #1000 - parent: ParameterList #650 - children: Array(1) [ ElementaryTypeName #648 ] - vScope: FunctionDefinition #654 - firstChild: ElementaryTypeName #648 - lastChild: ElementaryTypeName #648 + parent: ParameterList #821 + children: Array(1) [ UserDefinedTypeName #819 ] + vScope: FunctionDefinition #836 + firstChild: UserDefinedTypeName #819 + lastChild: UserDefinedTypeName #819 previousSibling: undefined nextSibling: undefined - root: SourceUnit #657 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ElementaryTypeName #648 - id: 648 + UserDefinedTypeName #819 + id: 819 src: "0:0:0" - type: "ElementaryTypeName" - typeString: "uint256" - name: "uint" - stateMutability: "nonpayable" + type: "UserDefinedTypeName" + typeString: "LibWithUDVT_088.UFixed" + name: undefined + referencedDeclaration: 805 + path: IdentifierPath #818 context: ASTContext #1000 - parent: VariableDeclaration #649 - children: Array(0) - firstChild: undefined - lastChild: undefined + parent: VariableDeclaration #820 + children: Array(1) [ IdentifierPath #818 ] + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + firstChild: IdentifierPath #818 + lastChild: IdentifierPath #818 previousSibling: undefined nextSibling: undefined - root: SourceUnit #657 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Block #653 - id: 653 + IdentifierPath #818 + id: 818 + src: "0:0:0" + type: "IdentifierPath" + name: "UFixed" + referencedDeclaration: 320 + context: ASTContext #1000 + parent: UserDefinedTypeName #819 + vReferencedDeclaration: UserDefinedValueTypeDefinition #320 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Block #835 + id: 835 src: "0:0:0" type: "Block" documentation: undefined context: ASTContext #1000 - parent: FunctionDefinition #654 - vStatements: Array(1) [ Return #652 ] - children: Array(1) [ Return #652 ] - firstChild: Return #652 - lastChild: Return #652 - previousSibling: ParameterList #650 + parent: FunctionDefinition #836 + vStatements: Array(1) [ Return #834 ] + children: Array(1) [ Return #834 ] + firstChild: Return #834 + lastChild: Return #834 + previousSibling: ParameterList #821 nextSibling: undefined - root: SourceUnit #657 + root: SourceUnit #959 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Return #652 - id: 652 + Return #834 + id: 834 + src: "0:0:0" + type: "Return" + documentation: undefined + functionReturnParameters: 336 + vExpression: FunctionCall #833 + context: ASTContext #1000 + parent: Block #835 + children: Array(1) [ FunctionCall #833 ] + vFunctionReturnParameters: ParameterList #336 + firstChild: FunctionCall #833 + lastChild: FunctionCall #833 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #833 + id: 833 + src: "0:0:0" + type: "FunctionCall" + typeString: "LibWithUDVT_088.UFixed" + kind: "functionCall" + fieldNames: undefined + vExpression: MemberAccess #823 + vArguments: Array(1) [ BinaryOperation #832 ] + context: ASTContext #1000 + parent: Return #834 + children: Array(2) [ MemberAccess #823, BinaryOperation #832 ] + vIdentifier: "UFixed" + vMemberName: "wrap" + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "wrap" + vCallee: MemberAccess #823 + firstChild: MemberAccess #823 + lastChild: BinaryOperation #832 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #823 + id: 823 + src: "0:0:0" + type: "MemberAccess" + typeString: "function (uint256) pure returns (LibWithUDVT_088.UFixed)" + vExpression: Identifier #822 + memberName: "wrap" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: FunctionCall #833 + children: Array(1) [ Identifier #822 ] + vReferencedDeclaration: undefined + firstChild: Identifier #822 + lastChild: Identifier #822 + previousSibling: undefined + nextSibling: BinaryOperation #832 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #822 + id: 822 + src: "0:0:0" + type: "Identifier" + typeString: "type(LibWithUDVT_088.UFixed)" + name: "UFixed" + referencedDeclaration: 805 + context: ASTContext #1000 + parent: MemberAccess #823 + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + BinaryOperation #832 + id: 832 + src: "0:0:0" + type: "BinaryOperation" + typeString: "uint256" + operator: "+" + vLeftExpression: FunctionCall #827 + vRightExpression: FunctionCall #831 + context: ASTContext #1000 + parent: FunctionCall #833 + children: Array(2) [ FunctionCall #827, FunctionCall #831 ] + firstChild: FunctionCall #827 + lastChild: FunctionCall #831 + previousSibling: MemberAccess #823 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #827 + id: 827 + src: "0:0:0" + type: "FunctionCall" + typeString: "uint256" + kind: "functionCall" + fieldNames: undefined + vExpression: MemberAccess #825 + vArguments: Array(1) [ Identifier #826 ] + context: ASTContext #1000 + parent: BinaryOperation #832 + children: Array(2) [ MemberAccess #825, Identifier #826 ] + vIdentifier: "UFixed" + vMemberName: "unwrap" + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "unwrap" + vCallee: MemberAccess #825 + firstChild: MemberAccess #825 + lastChild: Identifier #826 + previousSibling: undefined + nextSibling: FunctionCall #831 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #825 + id: 825 + src: "0:0:0" + type: "MemberAccess" + typeString: "function (LibWithUDVT_088.UFixed) pure returns (uint256)" + vExpression: Identifier #824 + memberName: "unwrap" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: FunctionCall #827 + children: Array(1) [ Identifier #824 ] + vReferencedDeclaration: undefined + firstChild: Identifier #824 + lastChild: Identifier #824 + previousSibling: undefined + nextSibling: Identifier #826 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #824 + id: 824 + src: "0:0:0" + type: "Identifier" + typeString: "type(LibWithUDVT_088.UFixed)" + name: "UFixed" + referencedDeclaration: 805 + context: ASTContext #1000 + parent: MemberAccess #825 + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #826 + id: 826 + src: "0:0:0" + type: "Identifier" + typeString: "LibWithUDVT_088.UFixed" + name: "a" + referencedDeclaration: 813 + context: ASTContext #1000 + parent: FunctionCall #827 + vReferencedDeclaration: VariableDeclaration #813 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: MemberAccess #825 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #831 + id: 831 + src: "0:0:0" + type: "FunctionCall" + typeString: "uint256" + kind: "functionCall" + fieldNames: undefined + vExpression: MemberAccess #829 + vArguments: Array(1) [ Identifier #830 ] + context: ASTContext #1000 + parent: BinaryOperation #832 + children: Array(2) [ MemberAccess #829, Identifier #830 ] + vIdentifier: "UFixed" + vMemberName: "unwrap" + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "unwrap" + vCallee: MemberAccess #829 + firstChild: MemberAccess #829 + lastChild: Identifier #830 + previousSibling: FunctionCall #827 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #829 + id: 829 + src: "0:0:0" + type: "MemberAccess" + typeString: "function (LibWithUDVT_088.UFixed) pure returns (uint256)" + vExpression: Identifier #828 + memberName: "unwrap" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: FunctionCall #831 + children: Array(1) [ Identifier #828 ] + vReferencedDeclaration: undefined + firstChild: Identifier #828 + lastChild: Identifier #828 + previousSibling: undefined + nextSibling: Identifier #830 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #828 + id: 828 + src: "0:0:0" + type: "Identifier" + typeString: "type(LibWithUDVT_088.UFixed)" + name: "UFixed" + referencedDeclaration: 805 + context: ASTContext #1000 + parent: MemberAccess #829 + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #830 + id: 830 + src: "0:0:0" + type: "Identifier" + typeString: "LibWithUDVT_088.UFixed" + name: "b" + referencedDeclaration: 816 + context: ASTContext #1000 + parent: FunctionCall #831 + vReferencedDeclaration: VariableDeclaration #816 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: MemberAccess #829 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionDefinition #858 + id: 858 + src: "0:0:0" + type: "FunctionDefinition" + implemented: true + virtual: false + scope: 891 + kind: "function" + name: "mul" + visibility: "internal" + stateMutability: "pure" + isConstructor: false + documentation: undefined + nameLocation: "5034:3:0" + vParameters: ParameterList #842 + vReturnParameters: ParameterList #846 + vModifiers: Array(0) + vOverrideSpecifier: undefined + vBody: Block #857 + context: ASTContext #1000 + parent: ContractDefinition #891 + children: Array(3) [ ParameterList #842, ParameterList #846, Block #857 ] + vScope: ContractDefinition #891 + firstChild: ParameterList #842 + lastChild: Block #857 + previousSibling: FunctionDefinition #836 + nextSibling: FunctionDefinition #874 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #842 + id: 842 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #858 + vParameters: Array(2) [ VariableDeclaration #839, VariableDeclaration #841 ] + children: Array(2) [ VariableDeclaration #839, VariableDeclaration #841 ] + firstChild: VariableDeclaration #839 + lastChild: VariableDeclaration #841 + previousSibling: undefined + nextSibling: ParameterList #846 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #839 + id: 839 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "a" + scope: 858 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "LibWithUDVT_088.UFixed" + documentation: undefined + nameLocation: "5045:1:0" + vType: UserDefinedTypeName #838 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #842 + children: Array(1) [ UserDefinedTypeName #838 ] + vScope: FunctionDefinition #858 + firstChild: UserDefinedTypeName #838 + lastChild: UserDefinedTypeName #838 + previousSibling: undefined + nextSibling: VariableDeclaration #841 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + UserDefinedTypeName #838 + id: 838 + src: "0:0:0" + type: "UserDefinedTypeName" + typeString: "LibWithUDVT_088.UFixed" + name: undefined + referencedDeclaration: 805 + path: IdentifierPath #837 + context: ASTContext #1000 + parent: VariableDeclaration #839 + children: Array(1) [ IdentifierPath #837 ] + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + firstChild: IdentifierPath #837 + lastChild: IdentifierPath #837 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + IdentifierPath #837 + id: 837 + src: "0:0:0" + type: "IdentifierPath" + name: "UFixed" + referencedDeclaration: 320 + context: ASTContext #1000 + parent: UserDefinedTypeName #838 + vReferencedDeclaration: UserDefinedValueTypeDefinition #320 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #841 + id: 841 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "b" + scope: 858 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "uint256" + documentation: undefined + nameLocation: "5056:1:0" + vType: ElementaryTypeName #840 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #842 + children: Array(1) [ ElementaryTypeName #840 ] + vScope: FunctionDefinition #858 + firstChild: ElementaryTypeName #840 + lastChild: ElementaryTypeName #840 + previousSibling: VariableDeclaration #839 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #840 + id: 840 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint256" + name: "uint256" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #841 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #846 + id: 846 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #858 + vParameters: Array(1) [ VariableDeclaration #845 ] + children: Array(1) [ VariableDeclaration #845 ] + firstChild: VariableDeclaration #845 + lastChild: VariableDeclaration #845 + previousSibling: ParameterList #842 + nextSibling: Block #857 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #845 + id: 845 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "" + scope: 858 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "LibWithUDVT_088.UFixed" + documentation: undefined + nameLocation: "-1:-1:-1" + vType: UserDefinedTypeName #844 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #846 + children: Array(1) [ UserDefinedTypeName #844 ] + vScope: FunctionDefinition #858 + firstChild: UserDefinedTypeName #844 + lastChild: UserDefinedTypeName #844 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + UserDefinedTypeName #844 + id: 844 + src: "0:0:0" + type: "UserDefinedTypeName" + typeString: "LibWithUDVT_088.UFixed" + name: undefined + referencedDeclaration: 805 + path: IdentifierPath #843 + context: ASTContext #1000 + parent: VariableDeclaration #845 + children: Array(1) [ IdentifierPath #843 ] + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + firstChild: IdentifierPath #843 + lastChild: IdentifierPath #843 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + IdentifierPath #843 + id: 843 + src: "0:0:0" + type: "IdentifierPath" + name: "UFixed" + referencedDeclaration: 320 + context: ASTContext #1000 + parent: UserDefinedTypeName #844 + vReferencedDeclaration: UserDefinedValueTypeDefinition #320 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Block #857 + id: 857 + src: "0:0:0" + type: "Block" + documentation: undefined + context: ASTContext #1000 + parent: FunctionDefinition #858 + vStatements: Array(1) [ Return #856 ] + children: Array(1) [ Return #856 ] + firstChild: Return #856 + lastChild: Return #856 + previousSibling: ParameterList #846 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Return #856 + id: 856 + src: "0:0:0" + type: "Return" + documentation: undefined + functionReturnParameters: 361 + vExpression: FunctionCall #855 + context: ASTContext #1000 + parent: Block #857 + children: Array(1) [ FunctionCall #855 ] + vFunctionReturnParameters: ParameterList #361 + firstChild: FunctionCall #855 + lastChild: FunctionCall #855 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #855 + id: 855 + src: "0:0:0" + type: "FunctionCall" + typeString: "LibWithUDVT_088.UFixed" + kind: "functionCall" + fieldNames: undefined + vExpression: MemberAccess #848 + vArguments: Array(1) [ BinaryOperation #854 ] + context: ASTContext #1000 + parent: Return #856 + children: Array(2) [ MemberAccess #848, BinaryOperation #854 ] + vIdentifier: "UFixed" + vMemberName: "wrap" + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "wrap" + vCallee: MemberAccess #848 + firstChild: MemberAccess #848 + lastChild: BinaryOperation #854 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #848 + id: 848 + src: "0:0:0" + type: "MemberAccess" + typeString: "function (uint256) pure returns (LibWithUDVT_088.UFixed)" + vExpression: Identifier #847 + memberName: "wrap" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: FunctionCall #855 + children: Array(1) [ Identifier #847 ] + vReferencedDeclaration: undefined + firstChild: Identifier #847 + lastChild: Identifier #847 + previousSibling: undefined + nextSibling: BinaryOperation #854 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #847 + id: 847 + src: "0:0:0" + type: "Identifier" + typeString: "type(LibWithUDVT_088.UFixed)" + name: "UFixed" + referencedDeclaration: 805 + context: ASTContext #1000 + parent: MemberAccess #848 + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + BinaryOperation #854 + id: 854 + src: "0:0:0" + type: "BinaryOperation" + typeString: "uint256" + operator: "*" + vLeftExpression: FunctionCall #852 + vRightExpression: Identifier #853 + context: ASTContext #1000 + parent: FunctionCall #855 + children: Array(2) [ FunctionCall #852, Identifier #853 ] + firstChild: FunctionCall #852 + lastChild: Identifier #853 + previousSibling: MemberAccess #848 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #852 + id: 852 + src: "0:0:0" + type: "FunctionCall" + typeString: "uint256" + kind: "functionCall" + fieldNames: undefined + vExpression: MemberAccess #850 + vArguments: Array(1) [ Identifier #851 ] + context: ASTContext #1000 + parent: BinaryOperation #854 + children: Array(2) [ MemberAccess #850, Identifier #851 ] + vIdentifier: "UFixed" + vMemberName: "unwrap" + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "unwrap" + vCallee: MemberAccess #850 + firstChild: MemberAccess #850 + lastChild: Identifier #851 + previousSibling: undefined + nextSibling: Identifier #853 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #850 + id: 850 + src: "0:0:0" + type: "MemberAccess" + typeString: "function (LibWithUDVT_088.UFixed) pure returns (uint256)" + vExpression: Identifier #849 + memberName: "unwrap" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: FunctionCall #852 + children: Array(1) [ Identifier #849 ] + vReferencedDeclaration: undefined + firstChild: Identifier #849 + lastChild: Identifier #849 + previousSibling: undefined + nextSibling: Identifier #851 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #849 + id: 849 + src: "0:0:0" + type: "Identifier" + typeString: "type(LibWithUDVT_088.UFixed)" + name: "UFixed" + referencedDeclaration: 805 + context: ASTContext #1000 + parent: MemberAccess #850 + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #851 + id: 851 + src: "0:0:0" + type: "Identifier" + typeString: "LibWithUDVT_088.UFixed" + name: "a" + referencedDeclaration: 839 + context: ASTContext #1000 + parent: FunctionCall #852 + vReferencedDeclaration: VariableDeclaration #839 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: MemberAccess #850 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #853 + id: 853 + src: "0:0:0" + type: "Identifier" + typeString: "uint256" + name: "b" + referencedDeclaration: 841 + context: ASTContext #1000 + parent: BinaryOperation #854 + vReferencedDeclaration: VariableDeclaration #841 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: FunctionCall #852 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionDefinition #874 + id: 874 + src: "0:0:0" + type: "FunctionDefinition" + implemented: true + virtual: false + scope: 891 + kind: "function" + name: "floor" + visibility: "internal" + stateMutability: "pure" + isConstructor: false + documentation: undefined + nameLocation: "5162:5:0" + vParameters: ParameterList #862 + vReturnParameters: ParameterList #865 + vModifiers: Array(0) + vOverrideSpecifier: undefined + vBody: Block #873 + context: ASTContext #1000 + parent: ContractDefinition #891 + children: Array(3) [ ParameterList #862, ParameterList #865, Block #873 ] + vScope: ContractDefinition #891 + firstChild: ParameterList #862 + lastChild: Block #873 + previousSibling: FunctionDefinition #858 + nextSibling: FunctionDefinition #890 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #862 + id: 862 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #874 + vParameters: Array(1) [ VariableDeclaration #861 ] + children: Array(1) [ VariableDeclaration #861 ] + firstChild: VariableDeclaration #861 + lastChild: VariableDeclaration #861 + previousSibling: undefined + nextSibling: ParameterList #865 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #861 + id: 861 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "a" + scope: 874 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "LibWithUDVT_088.UFixed" + documentation: undefined + nameLocation: "5175:1:0" + vType: UserDefinedTypeName #860 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #862 + children: Array(1) [ UserDefinedTypeName #860 ] + vScope: FunctionDefinition #874 + firstChild: UserDefinedTypeName #860 + lastChild: UserDefinedTypeName #860 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + UserDefinedTypeName #860 + id: 860 + src: "0:0:0" + type: "UserDefinedTypeName" + typeString: "LibWithUDVT_088.UFixed" + name: undefined + referencedDeclaration: 805 + path: IdentifierPath #859 + context: ASTContext #1000 + parent: VariableDeclaration #861 + children: Array(1) [ IdentifierPath #859 ] + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + firstChild: IdentifierPath #859 + lastChild: IdentifierPath #859 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + IdentifierPath #859 + id: 859 + src: "0:0:0" + type: "IdentifierPath" + name: "UFixed" + referencedDeclaration: 320 + context: ASTContext #1000 + parent: UserDefinedTypeName #860 + vReferencedDeclaration: UserDefinedValueTypeDefinition #320 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #865 + id: 865 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #874 + vParameters: Array(1) [ VariableDeclaration #864 ] + children: Array(1) [ VariableDeclaration #864 ] + firstChild: VariableDeclaration #864 + lastChild: VariableDeclaration #864 + previousSibling: ParameterList #862 + nextSibling: Block #873 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #864 + id: 864 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "" + scope: 874 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "uint256" + documentation: undefined + nameLocation: "-1:-1:-1" + vType: ElementaryTypeName #863 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #865 + children: Array(1) [ ElementaryTypeName #863 ] + vScope: FunctionDefinition #874 + firstChild: ElementaryTypeName #863 + lastChild: ElementaryTypeName #863 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #863 + id: 863 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint256" + name: "uint256" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #864 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Block #873 + id: 873 + src: "0:0:0" + type: "Block" + documentation: undefined + context: ASTContext #1000 + parent: FunctionDefinition #874 + vStatements: Array(1) [ Return #872 ] + children: Array(1) [ Return #872 ] + firstChild: Return #872 + lastChild: Return #872 + previousSibling: ParameterList #865 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Return #872 + id: 872 + src: "0:0:0" + type: "Return" + documentation: undefined + functionReturnParameters: 380 + vExpression: BinaryOperation #871 + context: ASTContext #1000 + parent: Block #873 + children: Array(1) [ BinaryOperation #871 ] + vFunctionReturnParameters: ParameterList #380 + firstChild: BinaryOperation #871 + lastChild: BinaryOperation #871 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + BinaryOperation #871 + id: 871 + src: "0:0:0" + type: "BinaryOperation" + typeString: "uint256" + operator: "/" + vLeftExpression: FunctionCall #869 + vRightExpression: Identifier #870 + context: ASTContext #1000 + parent: Return #872 + children: Array(2) [ FunctionCall #869, Identifier #870 ] + firstChild: FunctionCall #869 + lastChild: Identifier #870 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #869 + id: 869 + src: "0:0:0" + type: "FunctionCall" + typeString: "uint256" + kind: "functionCall" + fieldNames: undefined + vExpression: MemberAccess #867 + vArguments: Array(1) [ Identifier #868 ] + context: ASTContext #1000 + parent: BinaryOperation #871 + children: Array(2) [ MemberAccess #867, Identifier #868 ] + vIdentifier: "UFixed" + vMemberName: "unwrap" + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "unwrap" + vCallee: MemberAccess #867 + firstChild: MemberAccess #867 + lastChild: Identifier #868 + previousSibling: undefined + nextSibling: Identifier #870 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #867 + id: 867 + src: "0:0:0" + type: "MemberAccess" + typeString: "function (LibWithUDVT_088.UFixed) pure returns (uint256)" + vExpression: Identifier #866 + memberName: "unwrap" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: FunctionCall #869 + children: Array(1) [ Identifier #866 ] + vReferencedDeclaration: undefined + firstChild: Identifier #866 + lastChild: Identifier #866 + previousSibling: undefined + nextSibling: Identifier #868 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #866 + id: 866 + src: "0:0:0" + type: "Identifier" + typeString: "type(LibWithUDVT_088.UFixed)" + name: "UFixed" + referencedDeclaration: 805 + context: ASTContext #1000 + parent: MemberAccess #867 + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #868 + id: 868 + src: "0:0:0" + type: "Identifier" + typeString: "LibWithUDVT_088.UFixed" + name: "a" + referencedDeclaration: 861 + context: ASTContext #1000 + parent: FunctionCall #869 + vReferencedDeclaration: VariableDeclaration #861 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: MemberAccess #867 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #870 + id: 870 + src: "0:0:0" + type: "Identifier" + typeString: "uint256" + name: "multiplier" + referencedDeclaration: 810 + context: ASTContext #1000 + parent: BinaryOperation #871 + vReferencedDeclaration: VariableDeclaration #810 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: FunctionCall #869 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionDefinition #890 + id: 890 + src: "0:0:0" + type: "FunctionDefinition" + implemented: true + virtual: false + scope: 891 + kind: "function" + name: "toUFixed" + visibility: "internal" + stateMutability: "pure" + isConstructor: false + documentation: undefined + nameLocation: "5278:8:0" + vParameters: ParameterList #877 + vReturnParameters: ParameterList #881 + vModifiers: Array(0) + vOverrideSpecifier: undefined + vBody: Block #889 + context: ASTContext #1000 + parent: ContractDefinition #891 + children: Array(3) [ ParameterList #877, ParameterList #881, Block #889 ] + vScope: ContractDefinition #891 + firstChild: ParameterList #877 + lastChild: Block #889 + previousSibling: FunctionDefinition #874 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #877 + id: 877 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #890 + vParameters: Array(1) [ VariableDeclaration #876 ] + children: Array(1) [ VariableDeclaration #876 ] + firstChild: VariableDeclaration #876 + lastChild: VariableDeclaration #876 + previousSibling: undefined + nextSibling: ParameterList #881 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #876 + id: 876 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "a" + scope: 890 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "uint256" + documentation: undefined + nameLocation: "5295:1:0" + vType: ElementaryTypeName #875 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #877 + children: Array(1) [ ElementaryTypeName #875 ] + vScope: FunctionDefinition #890 + firstChild: ElementaryTypeName #875 + lastChild: ElementaryTypeName #875 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #875 + id: 875 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint256" + name: "uint256" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #876 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #881 + id: 881 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #890 + vParameters: Array(1) [ VariableDeclaration #880 ] + children: Array(1) [ VariableDeclaration #880 ] + firstChild: VariableDeclaration #880 + lastChild: VariableDeclaration #880 + previousSibling: ParameterList #877 + nextSibling: Block #889 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #880 + id: 880 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "" + scope: 890 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "LibWithUDVT_088.UFixed" + documentation: undefined + nameLocation: "-1:-1:-1" + vType: UserDefinedTypeName #879 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #881 + children: Array(1) [ UserDefinedTypeName #879 ] + vScope: FunctionDefinition #890 + firstChild: UserDefinedTypeName #879 + lastChild: UserDefinedTypeName #879 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + UserDefinedTypeName #879 + id: 879 + src: "0:0:0" + type: "UserDefinedTypeName" + typeString: "LibWithUDVT_088.UFixed" + name: undefined + referencedDeclaration: 805 + path: IdentifierPath #878 + context: ASTContext #1000 + parent: VariableDeclaration #880 + children: Array(1) [ IdentifierPath #878 ] + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + firstChild: IdentifierPath #878 + lastChild: IdentifierPath #878 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + IdentifierPath #878 + id: 878 + src: "0:0:0" + type: "IdentifierPath" + name: "UFixed" + referencedDeclaration: 320 + context: ASTContext #1000 + parent: UserDefinedTypeName #879 + vReferencedDeclaration: UserDefinedValueTypeDefinition #320 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Block #889 + id: 889 + src: "0:0:0" + type: "Block" + documentation: undefined + context: ASTContext #1000 + parent: FunctionDefinition #890 + vStatements: Array(1) [ Return #888 ] + children: Array(1) [ Return #888 ] + firstChild: Return #888 + lastChild: Return #888 + previousSibling: ParameterList #881 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Return #888 + id: 888 + src: "0:0:0" + type: "Return" + documentation: undefined + functionReturnParameters: 396 + vExpression: FunctionCall #887 + context: ASTContext #1000 + parent: Block #889 + children: Array(1) [ FunctionCall #887 ] + vFunctionReturnParameters: ParameterList #396 + firstChild: FunctionCall #887 + lastChild: FunctionCall #887 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #887 + id: 887 + src: "0:0:0" + type: "FunctionCall" + typeString: "LibWithUDVT_088.UFixed" + kind: "functionCall" + fieldNames: undefined + vExpression: MemberAccess #883 + vArguments: Array(1) [ BinaryOperation #886 ] + context: ASTContext #1000 + parent: Return #888 + children: Array(2) [ MemberAccess #883, BinaryOperation #886 ] + vIdentifier: "UFixed" + vMemberName: "wrap" + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "wrap" + vCallee: MemberAccess #883 + firstChild: MemberAccess #883 + lastChild: BinaryOperation #886 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #883 + id: 883 + src: "0:0:0" + type: "MemberAccess" + typeString: "function (uint256) pure returns (LibWithUDVT_088.UFixed)" + vExpression: Identifier #882 + memberName: "wrap" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: FunctionCall #887 + children: Array(1) [ Identifier #882 ] + vReferencedDeclaration: undefined + firstChild: Identifier #882 + lastChild: Identifier #882 + previousSibling: undefined + nextSibling: BinaryOperation #886 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #882 + id: 882 + src: "0:0:0" + type: "Identifier" + typeString: "type(LibWithUDVT_088.UFixed)" + name: "UFixed" + referencedDeclaration: 805 + context: ASTContext #1000 + parent: MemberAccess #883 + vReferencedDeclaration: UserDefinedValueTypeDefinition #805 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + BinaryOperation #886 + id: 886 + src: "0:0:0" + type: "BinaryOperation" + typeString: "uint256" + operator: "*" + vLeftExpression: Identifier #884 + vRightExpression: Identifier #885 + context: ASTContext #1000 + parent: FunctionCall #887 + children: Array(2) [ Identifier #884, Identifier #885 ] + firstChild: Identifier #884 + lastChild: Identifier #885 + previousSibling: MemberAccess #883 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #884 + id: 884 + src: "0:0:0" + type: "Identifier" + typeString: "uint256" + name: "a" + referencedDeclaration: 876 + context: ASTContext #1000 + parent: BinaryOperation #886 + vReferencedDeclaration: VariableDeclaration #876 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: Identifier #885 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #885 + id: 885 + src: "0:0:0" + type: "Identifier" + typeString: "uint256" + name: "multiplier" + referencedDeclaration: 810 + context: ASTContext #1000 + parent: BinaryOperation #886 + vReferencedDeclaration: VariableDeclaration #810 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: Identifier #884 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ContractDefinition #902 + id: 902 + src: "0:0:0" + type: "ContractDefinition" + name: "InterfaceWithUDTV_088" + scope: 959 + kind: "interface" + abstract: false + fullyImplemented: false + linearizedBaseContracts: Array(1) [ 902 ] + usedErrors: Array(0) + docString: undefined + nameLocation: "5394:21:0" + context: ASTContext #1000 + parent: SourceUnit #959 + documentation: undefined + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #902 ] + vUsedErrors: Array(0) + vInheritanceSpecifiers: Array(0) + vStateVariables: Array(0) + vModifiers: Array(0) + vEvents: Array(0) + vErrors: Array(0) + vFunctions: Array(1) [ FunctionDefinition #901 ] + vUsingForDirectives: Array(0) + vStructs: Array(0) + vEnums: Array(0) + vUserDefinedValueTypes: Array(1) [ UserDefinedValueTypeDefinition #893 ] + vConstructor: undefined + children: Array(2) [ UserDefinedValueTypeDefinition #893, FunctionDefinition #901 ] + firstChild: UserDefinedValueTypeDefinition #893 + lastChild: FunctionDefinition #901 + previousSibling: ContractDefinition #891 + nextSibling: ContractDefinition #927 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + UserDefinedValueTypeDefinition #893 + id: 893 + src: "0:0:0" + type: "UserDefinedValueTypeDefinition" + name: "EntityReference" + canonicalName: "InterfaceWithUDTV_088.EntityReference" + underlyingType: ElementaryTypeName #892 + nameLocation: "5483:15:0" + context: ASTContext #1000 + parent: ContractDefinition #902 + children: Array(1) [ ElementaryTypeName #892 ] + vScope: ContractDefinition #902 + firstChild: ElementaryTypeName #892 + lastChild: ElementaryTypeName #892 + previousSibling: undefined + nextSibling: FunctionDefinition #901 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #892 + id: 892 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "address payable" + name: "address" + stateMutability: "payable" + context: ASTContext #1000 + parent: UserDefinedValueTypeDefinition #893 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionDefinition #901 + id: 901 + src: "0:0:0" + type: "FunctionDefinition" + implemented: false + virtual: false + scope: 902 + kind: "function" + name: "balance" + visibility: "external" + stateMutability: "view" + isConstructor: false + documentation: undefined + nameLocation: "5533:7:0" + vParameters: ParameterList #897 + vReturnParameters: ParameterList #900 + vModifiers: Array(0) + vOverrideSpecifier: undefined + vBody: undefined + context: ASTContext #1000 + parent: ContractDefinition #902 + children: Array(2) [ ParameterList #897, ParameterList #900 ] + vScope: ContractDefinition #902 + firstChild: ParameterList #897 + lastChild: ParameterList #900 + previousSibling: UserDefinedValueTypeDefinition #893 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #897 + id: 897 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #901 + vParameters: Array(1) [ VariableDeclaration #896 ] + children: Array(1) [ VariableDeclaration #896 ] + firstChild: VariableDeclaration #896 + lastChild: VariableDeclaration #896 + previousSibling: undefined + nextSibling: ParameterList #900 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #896 + id: 896 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "er" + scope: 901 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "InterfaceWithUDTV_088.EntityReference" + documentation: undefined + nameLocation: "5557:2:0" + vType: UserDefinedTypeName #895 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #897 + children: Array(1) [ UserDefinedTypeName #895 ] + vScope: FunctionDefinition #901 + firstChild: UserDefinedTypeName #895 + lastChild: UserDefinedTypeName #895 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + UserDefinedTypeName #895 + id: 895 + src: "0:0:0" + type: "UserDefinedTypeName" + typeString: "InterfaceWithUDTV_088.EntityReference" + name: undefined + referencedDeclaration: 893 + path: IdentifierPath #894 + context: ASTContext #1000 + parent: VariableDeclaration #896 + children: Array(1) [ IdentifierPath #894 ] + vReferencedDeclaration: UserDefinedValueTypeDefinition #893 + firstChild: IdentifierPath #894 + lastChild: IdentifierPath #894 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + IdentifierPath #894 + id: 894 + src: "0:0:0" + type: "IdentifierPath" + name: "EntityReference" + referencedDeclaration: 408 + context: ASTContext #1000 + parent: UserDefinedTypeName #895 + vReferencedDeclaration: UserDefinedValueTypeDefinition #408 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #900 + id: 900 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #901 + vParameters: Array(1) [ VariableDeclaration #899 ] + children: Array(1) [ VariableDeclaration #899 ] + firstChild: VariableDeclaration #899 + lastChild: VariableDeclaration #899 + previousSibling: ParameterList #897 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #899 + id: 899 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "" + scope: 901 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "uint256" + documentation: undefined + nameLocation: "-1:-1:-1" + vType: ElementaryTypeName #898 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #900 + children: Array(1) [ ElementaryTypeName #898 ] + vScope: FunctionDefinition #901 + firstChild: ElementaryTypeName #898 + lastChild: ElementaryTypeName #898 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #898 + id: 898 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint256" + name: "uint" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #899 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ContractDefinition #927 + id: 927 + src: "0:0:0" + type: "ContractDefinition" + name: "EnumTypeMinMax_088" + scope: 959 + kind: "contract" + abstract: false + fullyImplemented: true + linearizedBaseContracts: Array(1) [ 927 ] + usedErrors: Array(0) + docString: undefined + nameLocation: "5602:18:0" + context: ASTContext #1000 + parent: SourceUnit #959 + documentation: undefined + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #927 ] + vUsedErrors: Array(0) + vInheritanceSpecifiers: Array(0) + vStateVariables: Array(0) + vModifiers: Array(0) + vEvents: Array(0) + vErrors: Array(0) + vFunctions: Array(1) [ FunctionDefinition #926 ] + vUsingForDirectives: Array(0) + vStructs: Array(0) + vEnums: Array(0) + vUserDefinedValueTypes: Array(0) + vConstructor: undefined + children: Array(1) [ FunctionDefinition #926 ] + firstChild: FunctionDefinition #926 + lastChild: FunctionDefinition #926 + previousSibling: ContractDefinition #902 + nextSibling: ContractDefinition #958 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionDefinition #926 + id: 926 + src: "0:0:0" + type: "FunctionDefinition" + implemented: true + virtual: false + scope: 927 + kind: "function" + name: "testEnumMinMax" + visibility: "public" + stateMutability: "pure" + isConstructor: false + documentation: undefined + nameLocation: "5636:14:0" + vParameters: ParameterList #903 + vReturnParameters: ParameterList #904 + vModifiers: Array(0) + vOverrideSpecifier: undefined + vBody: Block #925 + context: ASTContext #1000 + parent: ContractDefinition #927 + children: Array(3) [ ParameterList #903, ParameterList #904, Block #925 ] + vScope: ContractDefinition #927 + firstChild: ParameterList #903 + lastChild: Block #925 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #903 + id: 903 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #926 + vParameters: Array(0) + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: ParameterList #904 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #904 + id: 904 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #926 + vParameters: Array(0) + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: ParameterList #903 + nextSibling: Block #925 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Block #925 + id: 925 + src: "0:0:0" + type: "Block" + documentation: undefined + context: ASTContext #1000 + parent: FunctionDefinition #926 + vStatements: Array(2) [ ExpressionStatement #914, ExpressionStatement #924 ] + children: Array(2) [ ExpressionStatement #914, ExpressionStatement #924 ] + firstChild: ExpressionStatement #914 + lastChild: ExpressionStatement #924 + previousSibling: ParameterList #904 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ExpressionStatement #914 + id: 914 + src: "0:0:0" + type: "ExpressionStatement" + documentation: undefined + vExpression: FunctionCall #913 + context: ASTContext #1000 + parent: Block #925 + children: Array(1) [ FunctionCall #913 ] + firstChild: FunctionCall #913 + lastChild: FunctionCall #913 + previousSibling: undefined + nextSibling: ExpressionStatement #924 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #913 + id: 913 + src: "0:0:0" + type: "FunctionCall" + typeString: "tuple()" + kind: "functionCall" + fieldNames: undefined + vExpression: Identifier #905 + vArguments: Array(1) [ BinaryOperation #912 ] + context: ASTContext #1000 + parent: ExpressionStatement #914 + children: Array(2) [ Identifier #905, BinaryOperation #912 ] + vIdentifier: "assert" + vMemberName: undefined + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "assert" + vCallee: Identifier #905 + firstChild: Identifier #905 + lastChild: BinaryOperation #912 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #905 + id: 905 + src: "0:0:0" + type: "Identifier" + typeString: "function (bool) pure" + name: "assert" + referencedDeclaration: -1 + context: ASTContext #1000 + parent: FunctionCall #913 + vReferencedDeclaration: undefined + vIdentifierType: "builtin" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: BinaryOperation #912 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + BinaryOperation #912 + id: 912 + src: "0:0:0" + type: "BinaryOperation" + typeString: "bool" + operator: "==" + vLeftExpression: MemberAccess #909 + vRightExpression: MemberAccess #911 + context: ASTContext #1000 + parent: FunctionCall #913 + children: Array(2) [ MemberAccess #909, MemberAccess #911 ] + firstChild: MemberAccess #909 + lastChild: MemberAccess #911 + previousSibling: Identifier #905 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #909 + id: 909 + src: "0:0:0" + type: "MemberAccess" + typeString: "enum EnumABC" + vExpression: FunctionCall #908 + memberName: "min" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: BinaryOperation #912 + children: Array(1) [ FunctionCall #908 ] + vReferencedDeclaration: undefined + firstChild: FunctionCall #908 + lastChild: FunctionCall #908 + previousSibling: undefined + nextSibling: MemberAccess #911 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #908 + id: 908 + src: "0:0:0" + type: "FunctionCall" + typeString: "type(enum EnumABC)" + kind: "functionCall" + fieldNames: undefined + vExpression: Identifier #906 + vArguments: Array(1) [ Identifier #907 ] + context: ASTContext #1000 + parent: MemberAccess #909 + children: Array(2) [ Identifier #906, Identifier #907 ] + vIdentifier: "type" + vMemberName: undefined + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "type" + vCallee: Identifier #906 + firstChild: Identifier #906 + lastChild: Identifier #907 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #906 + id: 906 + src: "0:0:0" + type: "Identifier" + typeString: "function () pure" + name: "type" + referencedDeclaration: -1 + context: ASTContext #1000 + parent: FunctionCall #908 + vReferencedDeclaration: undefined + vIdentifierType: "builtin" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: Identifier #907 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #907 + id: 907 + src: "0:0:0" + type: "Identifier" + typeString: "type(enum EnumABC)" + name: "EnumABC" + referencedDeclaration: 497 + context: ASTContext #1000 + parent: FunctionCall #908 + vReferencedDeclaration: EnumDefinition #497 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: Identifier #906 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #911 + id: 911 + src: "0:0:0" + type: "MemberAccess" + typeString: "enum EnumABC" + vExpression: Identifier #910 + memberName: "A" + referencedDeclaration: 494 + context: ASTContext #1000 + parent: BinaryOperation #912 + children: Array(1) [ Identifier #910 ] + vReferencedDeclaration: EnumValue #494 + firstChild: Identifier #910 + lastChild: Identifier #910 + previousSibling: MemberAccess #909 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #910 + id: 910 + src: "0:0:0" + type: "Identifier" + typeString: "type(enum EnumABC)" + name: "EnumABC" + referencedDeclaration: 497 + context: ASTContext #1000 + parent: MemberAccess #911 + vReferencedDeclaration: EnumDefinition #497 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ExpressionStatement #924 + id: 924 + src: "0:0:0" + type: "ExpressionStatement" + documentation: undefined + vExpression: FunctionCall #923 + context: ASTContext #1000 + parent: Block #925 + children: Array(1) [ FunctionCall #923 ] + firstChild: FunctionCall #923 + lastChild: FunctionCall #923 + previousSibling: ExpressionStatement #914 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #923 + id: 923 + src: "0:0:0" + type: "FunctionCall" + typeString: "tuple()" + kind: "functionCall" + fieldNames: undefined + vExpression: Identifier #915 + vArguments: Array(1) [ BinaryOperation #922 ] + context: ASTContext #1000 + parent: ExpressionStatement #924 + children: Array(2) [ Identifier #915, BinaryOperation #922 ] + vIdentifier: "assert" + vMemberName: undefined + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "assert" + vCallee: Identifier #915 + firstChild: Identifier #915 + lastChild: BinaryOperation #922 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #915 + id: 915 + src: "0:0:0" + type: "Identifier" + typeString: "function (bool) pure" + name: "assert" + referencedDeclaration: -1 + context: ASTContext #1000 + parent: FunctionCall #923 + vReferencedDeclaration: undefined + vIdentifierType: "builtin" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: BinaryOperation #922 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + BinaryOperation #922 + id: 922 + src: "0:0:0" + type: "BinaryOperation" + typeString: "bool" + operator: "==" + vLeftExpression: MemberAccess #919 + vRightExpression: MemberAccess #921 + context: ASTContext #1000 + parent: FunctionCall #923 + children: Array(2) [ MemberAccess #919, MemberAccess #921 ] + firstChild: MemberAccess #919 + lastChild: MemberAccess #921 + previousSibling: Identifier #915 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #919 + id: 919 + src: "0:0:0" + type: "MemberAccess" + typeString: "enum EnumABC" + vExpression: FunctionCall #918 + memberName: "max" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: BinaryOperation #922 + children: Array(1) [ FunctionCall #918 ] + vReferencedDeclaration: undefined + firstChild: FunctionCall #918 + lastChild: FunctionCall #918 + previousSibling: undefined + nextSibling: MemberAccess #921 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionCall #918 + id: 918 + src: "0:0:0" + type: "FunctionCall" + typeString: "type(enum EnumABC)" + kind: "functionCall" + fieldNames: undefined + vExpression: Identifier #916 + vArguments: Array(1) [ Identifier #917 ] + context: ASTContext #1000 + parent: MemberAccess #919 + children: Array(2) [ Identifier #916, Identifier #917 ] + vIdentifier: "type" + vMemberName: undefined + vFunctionCallType: "builtin" + vReferencedDeclaration: undefined + vFunctionName: "type" + vCallee: Identifier #916 + firstChild: Identifier #916 + lastChild: Identifier #917 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #916 + id: 916 + src: "0:0:0" + type: "Identifier" + typeString: "function () pure" + name: "type" + referencedDeclaration: -1 + context: ASTContext #1000 + parent: FunctionCall #918 + vReferencedDeclaration: undefined + vIdentifierType: "builtin" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: Identifier #917 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #917 + id: 917 + src: "0:0:0" + type: "Identifier" + typeString: "type(enum EnumABC)" + name: "EnumABC" + referencedDeclaration: 497 + context: ASTContext #1000 + parent: FunctionCall #918 + vReferencedDeclaration: EnumDefinition #497 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: Identifier #916 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #921 + id: 921 + src: "0:0:0" + type: "MemberAccess" + typeString: "enum EnumABC" + vExpression: Identifier #920 + memberName: "C" + referencedDeclaration: 496 + context: ASTContext #1000 + parent: BinaryOperation #922 + children: Array(1) [ Identifier #920 ] + vReferencedDeclaration: EnumValue #496 + firstChild: Identifier #920 + lastChild: Identifier #920 + previousSibling: MemberAccess #919 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #920 + id: 920 + src: "0:0:0" + type: "Identifier" + typeString: "type(enum EnumABC)" + name: "EnumABC" + referencedDeclaration: 497 + context: ASTContext #1000 + parent: MemberAccess #921 + vReferencedDeclaration: EnumDefinition #497 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ContractDefinition #958 + id: 958 + src: "0:0:0" + type: "ContractDefinition" + name: "ExternalFnSelectorAndAddress_0810" + scope: 959 + kind: "contract" + abstract: false + fullyImplemented: true + linearizedBaseContracts: Array(1) [ 958 ] + usedErrors: Array(0) + docString: undefined + nameLocation: "5781:33:0" + context: ASTContext #1000 + parent: SourceUnit #959 + documentation: undefined + vScope: SourceUnit #959 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #958 ] + vUsedErrors: Array(0) + vInheritanceSpecifiers: Array(0) + vStateVariables: Array(0) + vModifiers: Array(0) + vEvents: Array(0) + vErrors: Array(0) + vFunctions: Array(2) [ FunctionDefinition #931, FunctionDefinition #957 ] + vUsingForDirectives: Array(0) + vStructs: Array(0) + vEnums: Array(0) + vUserDefinedValueTypes: Array(0) + vConstructor: undefined + children: Array(2) [ FunctionDefinition #931, FunctionDefinition #957 ] + firstChild: FunctionDefinition #931 + lastChild: FunctionDefinition #957 + previousSibling: ContractDefinition #927 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionDefinition #931 + id: 931 + src: "0:0:0" + type: "FunctionDefinition" + implemented: true + virtual: false + scope: 958 + kind: "function" + name: "testFunction" + visibility: "external" + stateMutability: "nonpayable" + isConstructor: false + documentation: undefined + nameLocation: "5830:12:0" + vParameters: ParameterList #928 + vReturnParameters: ParameterList #929 + vModifiers: Array(0) + vOverrideSpecifier: undefined + vBody: Block #930 + context: ASTContext #1000 + parent: ContractDefinition #958 + children: Array(3) [ ParameterList #928, ParameterList #929, Block #930 ] + vScope: ContractDefinition #958 + firstChild: ParameterList #928 + lastChild: Block #930 + previousSibling: undefined + nextSibling: FunctionDefinition #957 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #928 + id: 928 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #931 + vParameters: Array(0) + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: ParameterList #929 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #929 + id: 929 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #931 + vParameters: Array(0) + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: ParameterList #928 + nextSibling: Block #930 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Block #930 + id: 930 + src: "0:0:0" + type: "Block" + documentation: undefined + context: ASTContext #1000 + parent: FunctionDefinition #931 + vStatements: Array(0) + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: ParameterList #929 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionDefinition #957 + id: 957 + src: "0:0:0" + type: "FunctionDefinition" + implemented: true + virtual: false + scope: 958 + kind: "function" + name: "test" + visibility: "public" + stateMutability: "view" + isConstructor: false + documentation: undefined + nameLocation: "5871:4:0" + vParameters: ParameterList #936 + vReturnParameters: ParameterList #941 + vModifiers: Array(0) + vOverrideSpecifier: undefined + vBody: Block #956 + context: ASTContext #1000 + parent: ContractDefinition #958 + children: Array(3) [ ParameterList #936, ParameterList #941, Block #956 ] + vScope: ContractDefinition #958 + firstChild: ParameterList #936 + lastChild: Block #956 + previousSibling: FunctionDefinition #931 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #936 + id: 936 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #957 + vParameters: Array(2) [ VariableDeclaration #933, VariableDeclaration #935 ] + children: Array(2) [ VariableDeclaration #933, VariableDeclaration #935 ] + firstChild: VariableDeclaration #933 + lastChild: VariableDeclaration #935 + previousSibling: undefined + nextSibling: ParameterList #941 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #933 + id: 933 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "newAddress" + scope: 957 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "address" + documentation: undefined + nameLocation: "5884:10:0" + vType: ElementaryTypeName #932 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #936 + children: Array(1) [ ElementaryTypeName #932 ] + vScope: FunctionDefinition #957 + firstChild: ElementaryTypeName #932 + lastChild: ElementaryTypeName #932 + previousSibling: undefined + nextSibling: VariableDeclaration #935 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #932 + id: 932 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "address" + name: "address" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #933 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #935 + id: 935 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "newSelector" + scope: 957 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "uint32" + documentation: undefined + nameLocation: "5903:11:0" + vType: ElementaryTypeName #934 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #936 + children: Array(1) [ ElementaryTypeName #934 ] + vScope: FunctionDefinition #957 + firstChild: ElementaryTypeName #934 + lastChild: ElementaryTypeName #934 + previousSibling: VariableDeclaration #933 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #934 + id: 934 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint32" + name: "uint32" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #935 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #941 + id: 941 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #957 + vParameters: Array(2) [ VariableDeclaration #938, VariableDeclaration #940 ] + children: Array(2) [ VariableDeclaration #938, VariableDeclaration #940 ] + firstChild: VariableDeclaration #938 + lastChild: VariableDeclaration #940 + previousSibling: ParameterList #936 + nextSibling: Block #956 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #938 + id: 938 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "adr" + scope: 957 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "address" + documentation: undefined + nameLocation: "5945:3:0" + vType: ElementaryTypeName #937 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #941 + children: Array(1) [ ElementaryTypeName #937 ] + vScope: FunctionDefinition #957 + firstChild: ElementaryTypeName #937 + lastChild: ElementaryTypeName #937 + previousSibling: undefined + nextSibling: VariableDeclaration #940 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #937 + id: 937 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "address" + name: "address" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #938 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #940 + id: 940 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "sel" + scope: 957 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "bytes4" + documentation: undefined + nameLocation: "5957:3:0" + vType: ElementaryTypeName #939 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #941 + children: Array(1) [ ElementaryTypeName #939 ] + vScope: FunctionDefinition #957 + firstChild: ElementaryTypeName #939 + lastChild: ElementaryTypeName #939 + previousSibling: VariableDeclaration #938 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #939 + id: 939 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "bytes4" + name: "bytes4" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #940 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Block #956 + id: 956 + src: "0:0:0" + type: "Block" + documentation: undefined + context: ASTContext #1000 + parent: FunctionDefinition #957 + vStatements: Array(3) [ VariableDeclarationStatement #948, InlineAssembly #949, Return #955 ] + children: Array(3) [ VariableDeclarationStatement #948, InlineAssembly #949, Return #955 ] + firstChild: VariableDeclarationStatement #948 + lastChild: Return #955 + previousSibling: ParameterList #941 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclarationStatement #948 + id: 948 + src: "0:0:0" + type: "VariableDeclarationStatement" + documentation: undefined + assignments: Array(1) [ 945 ] + vDeclarations: Array(1) [ VariableDeclaration #945 ] + vInitialValue: MemberAccess #947 + context: ASTContext #1000 + parent: Block #956 + children: Array(2) [ VariableDeclaration #945, MemberAccess #947 ] + firstChild: VariableDeclaration #945 + lastChild: MemberAccess #947 + previousSibling: undefined + nextSibling: InlineAssembly #949 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #945 + id: 945 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "fp" + scope: 956 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "function () external" + documentation: undefined + nameLocation: "5992:2:0" + vType: FunctionTypeName #944 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: VariableDeclarationStatement #948 + children: Array(1) [ FunctionTypeName #944 ] + vScope: Block #956 + firstChild: FunctionTypeName #944 + lastChild: FunctionTypeName #944 + previousSibling: undefined + nextSibling: MemberAccess #947 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionTypeName #944 + id: 944 + src: "0:0:0" + type: "FunctionTypeName" + typeString: "function () external" + visibility: "external" + stateMutability: "nonpayable" + vParameterTypes: ParameterList #942 + vReturnParameterTypes: ParameterList #943 + context: ASTContext #1000 + parent: VariableDeclaration #945 + children: Array(2) [ ParameterList #942, ParameterList #943 ] + firstChild: ParameterList #942 + lastChild: ParameterList #943 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #942 + id: 942 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionTypeName #944 + vParameters: Array(0) + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: ParameterList #943 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #943 + id: 943 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionTypeName #944 + vParameters: Array(0) + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: ParameterList #942 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #947 + id: 947 + src: "0:0:0" + type: "MemberAccess" + typeString: "function () external" + vExpression: Identifier #946 + memberName: "testFunction" + referencedDeclaration: 931 + context: ASTContext #1000 + parent: VariableDeclarationStatement #948 + children: Array(1) [ Identifier #946 ] + vReferencedDeclaration: FunctionDefinition #931 + firstChild: Identifier #946 + lastChild: Identifier #946 + previousSibling: VariableDeclaration #945 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #946 + id: 946 + src: "0:0:0" + type: "Identifier" + typeString: "contract ExternalFnSelectorAndAddress_0810" + name: "this" + referencedDeclaration: -1 + context: ASTContext #1000 + parent: MemberAccess #947 + vReferencedDeclaration: undefined + vIdentifierType: "builtin" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + InlineAssembly #949 + id: 949 + src: "0:0:0" + type: "InlineAssembly" + documentation: undefined + externalReferences: Array(6) [ Object { declaration: 460, isOffset: false, isSlot: false, src: "6057:10:0", suffix: "address", valueSize: 1 }, Object { declaration: 460, isOffset: false, isSlot: false, src: "6114:10:0", suffix: "address", valueSize: 1 }, Object { declaration: 460, isOffset: false, isSlot: false, src: "6089:11:0", suffix: "selector", valueSize: 1 }, Object { declaration: 460, isOffset: false, isSlot: false, src: "6151:11:0", suffix: "selector", valueSize: 1 }, Object { declaration: 448, isOffset: false, isSlot: false, src: "6128:10:0", valueSize: 1 }, Object { declaration: 450, isOffset: false, isSlot: false, src: "6166:11:0", valueSize: 1 } ] + operations: undefined + yul: Object { nodeType: "YulBlock", src: "6034:153:0", statements: Array(4) [ Object { nodeType: "YulVariableDeclaration", src: "6048:19:0", value: Object { name: "fp.address", nodeType: "YulIdentifier", src: "6057:10:0" }, variables: Array(1) [ Object { name: "o", nodeType: "YulTypedName", src: "6052:1:0", type: "" } ] }, Object { nodeType: "YulVariableDeclaration", src: "6080:20:0", value: Object { name: "fp.selector", nodeType: "YulIdentifier", src: "6089:11:0" }, variables: Array(1) [ Object { name: "s", nodeType: "YulTypedName", src: "6084:1:0", type: "" } ] }, Object { nodeType: "YulAssignment", src: "6114:24:0", value: Object { name: "newAddress", nodeType: "YulIdentifier", src: "6128:10:0" }, variableNames: Array(1) [ Object { name: "fp.address", nodeType: "YulIdentifier", src: "6114:10:0" } ] }, Object { nodeType: "YulAssignment", src: "6151:26:0", value: Object { name: "newSelector", nodeType: "YulIdentifier", src: "6166:11:0" }, variableNames: Array(1) [ Object { name: "fp.selector", nodeType: "YulIdentifier", src: "6151:11:0" } ] } ] } + context: ASTContext #1000 + parent: Block #956 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: VariableDeclarationStatement #948 + nextSibling: Return #955 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Return #955 + id: 955 + src: "0:0:0" + type: "Return" + documentation: undefined + functionReturnParameters: 456 + vExpression: TupleExpression #954 + context: ASTContext #1000 + parent: Block #956 + children: Array(1) [ TupleExpression #954 ] + vFunctionReturnParameters: ParameterList #456 + firstChild: TupleExpression #954 + lastChild: TupleExpression #954 + previousSibling: InlineAssembly #949 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + TupleExpression #954 + id: 954 + src: "0:0:0" + type: "TupleExpression" + typeString: "tuple(address,bytes4)" + isInlineArray: false + vOriginalComponents: Array(2) [ MemberAccess #951, MemberAccess #953 ] + context: ASTContext #1000 + parent: Return #955 + children: Array(2) [ MemberAccess #951, MemberAccess #953 ] + components: Array(2) [ 951, 953 ] + vComponents: Array(2) [ MemberAccess #951, MemberAccess #953 ] + firstChild: MemberAccess #951 + lastChild: MemberAccess #953 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #951 + id: 951 + src: "0:0:0" + type: "MemberAccess" + typeString: "address" + vExpression: Identifier #950 + memberName: "address" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: TupleExpression #954 + children: Array(1) [ Identifier #950 ] + vReferencedDeclaration: undefined + firstChild: Identifier #950 + lastChild: Identifier #950 + previousSibling: undefined + nextSibling: MemberAccess #953 + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #950 + id: 950 + src: "0:0:0" + type: "Identifier" + typeString: "function () external" + name: "fp" + referencedDeclaration: 945 + context: ASTContext #1000 + parent: MemberAccess #951 + vReferencedDeclaration: VariableDeclaration #945 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + MemberAccess #953 + id: 953 + src: "0:0:0" + type: "MemberAccess" + typeString: "bytes4" + vExpression: Identifier #952 + memberName: "selector" + referencedDeclaration: undefined + context: ASTContext #1000 + parent: TupleExpression #954 + children: Array(1) [ Identifier #952 ] + vReferencedDeclaration: undefined + firstChild: Identifier #952 + lastChild: Identifier #952 + previousSibling: MemberAccess #951 + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Identifier #952 + id: 952 + src: "0:0:0" + type: "Identifier" + typeString: "function () external" + name: "fp" + referencedDeclaration: 945 + context: ASTContext #1000 + parent: MemberAccess #953 + vReferencedDeclaration: VariableDeclaration #945 + vIdentifierType: "userDefined" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #959 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + +SourceUnit #975 + id: 975 + src: "0:0:0" + type: "SourceUnit" + sourceEntryKey: "./test/samples/solidity/latest_imports_08.sol" + sourceListIndex: 1 + absolutePath: "./test/samples/solidity/latest_imports_08.sol" + exportedSymbols: Map(2) { "SomeContract" -> 973, "SomeLib" -> 974 } + context: ASTContext #1000 + vPragmaDirectives: Array(2) [ PragmaDirective #960, PragmaDirective #961 ] + vImportDirectives: Array(0) + vContracts: Array(2) [ ContractDefinition #973, ContractDefinition #974 ] + vEnums: Array(0) + vErrors: Array(0) + vStructs: Array(0) + vFunctions: Array(0) + vVariables: Array(0) + vUserDefinedValueTypes: Array(0) + vExportedSymbols: Map(2) { "SomeContract" -> ContractDefinition #973, "SomeLib" -> ContractDefinition #974 } + children: Array(4) [ PragmaDirective #960, PragmaDirective #961, ContractDefinition #973, ContractDefinition #974 ] + firstChild: PragmaDirective #960 + lastChild: ContractDefinition #974 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + PragmaDirective #960 + id: 960 + src: "0:0:0" + type: "PragmaDirective" + literals: Array(4) [ "solidity", "^", "0.8", ".0" ] + context: ASTContext #1000 + parent: SourceUnit #975 + vIdentifier: "solidity" + vValue: "^0.8.0" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: PragmaDirective #961 + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + PragmaDirective #961 + id: 961 + src: "0:0:0" + type: "PragmaDirective" + literals: Array(2) [ "abicoder", "v2" ] + context: ASTContext #1000 + parent: SourceUnit #975 + vIdentifier: "abicoder" + vValue: "v2" + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: PragmaDirective #960 + nextSibling: ContractDefinition #973 + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ContractDefinition #973 + id: 973 + src: "0:0:0" + type: "ContractDefinition" + name: "SomeContract" + scope: 975 + kind: "contract" + abstract: false + fullyImplemented: true + linearizedBaseContracts: Array(1) [ 973 ] + usedErrors: Array(0) + docString: undefined + nameLocation: "54:12:1" + context: ASTContext #1000 + parent: SourceUnit #975 + documentation: undefined + vScope: SourceUnit #975 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #973 ] + vUsedErrors: Array(0) + vInheritanceSpecifiers: Array(0) + vStateVariables: Array(0) + vModifiers: Array(0) + vEvents: Array(0) + vErrors: Array(0) + vFunctions: Array(1) [ FunctionDefinition #972 ] + vUsingForDirectives: Array(0) + vStructs: Array(1) [ StructDefinition #964 ] + vEnums: Array(0) + vUserDefinedValueTypes: Array(0) + vConstructor: undefined + children: Array(2) [ StructDefinition #964, FunctionDefinition #972 ] + firstChild: StructDefinition #964 + lastChild: FunctionDefinition #972 + previousSibling: PragmaDirective #961 + nextSibling: ContractDefinition #974 + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + StructDefinition #964 + id: 964 + src: "0:0:0" + type: "StructDefinition" + name: "SomeStruct" + canonicalName: "SomeContract.SomeStruct" + scope: 973 + visibility: "public" + nameLocation: "80:10:1" + context: ASTContext #1000 + parent: ContractDefinition #973 + vMembers: Array(1) [ VariableDeclaration #963 ] + vScope: ContractDefinition #973 + children: Array(1) [ VariableDeclaration #963 ] + firstChild: VariableDeclaration #963 + lastChild: VariableDeclaration #963 + previousSibling: undefined + nextSibling: FunctionDefinition #972 + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #963 + id: 963 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "n" + scope: 964 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "uint256" + documentation: undefined + nameLocation: "106:1:1" + vType: ElementaryTypeName #962 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: StructDefinition #964 + children: Array(1) [ ElementaryTypeName #962 ] + vScope: StructDefinition #964 + firstChild: ElementaryTypeName #962 + lastChild: ElementaryTypeName #962 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #962 + id: 962 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint256" + name: "uint" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #963 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + FunctionDefinition #972 + id: 972 + src: "0:0:0" + type: "FunctionDefinition" + implemented: true + virtual: true + scope: 973 + kind: "function" + name: "some" + visibility: "public" + stateMutability: "nonpayable" + isConstructor: false + documentation: undefined + nameLocation: "129:4:1" + vParameters: ParameterList #965 + vReturnParameters: ParameterList #968 + vModifiers: Array(0) + vOverrideSpecifier: undefined + vBody: Block #971 + context: ASTContext #1000 + parent: ContractDefinition #973 + children: Array(3) [ ParameterList #965, ParameterList #968, Block #971 ] + vScope: ContractDefinition #973 + firstChild: ParameterList #965 + lastChild: Block #971 + previousSibling: StructDefinition #964 + nextSibling: undefined + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #965 + id: 965 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #972 + vParameters: Array(0) + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: ParameterList #968 + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ParameterList #968 + id: 968 + src: "0:0:0" + type: "ParameterList" + context: ASTContext #1000 + parent: FunctionDefinition #972 + vParameters: Array(1) [ VariableDeclaration #967 ] + children: Array(1) [ VariableDeclaration #967 ] + firstChild: VariableDeclaration #967 + lastChild: VariableDeclaration #967 + previousSibling: ParameterList #965 + nextSibling: Block #971 + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + VariableDeclaration #967 + id: 967 + src: "0:0:0" + type: "VariableDeclaration" + constant: false + indexed: false + name: "" + scope: 972 + stateVariable: false + storageLocation: "default" + visibility: "internal" + mutability: "mutable" + typeString: "uint256" + documentation: undefined + nameLocation: "-1:-1:-1" + vType: ElementaryTypeName #966 + vOverrideSpecifier: undefined + vValue: undefined + context: ASTContext #1000 + parent: ParameterList #968 + children: Array(1) [ ElementaryTypeName #966 ] + vScope: FunctionDefinition #972 + firstChild: ElementaryTypeName #966 + lastChild: ElementaryTypeName #966 + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + ElementaryTypeName #966 + id: 966 + src: "0:0:0" + type: "ElementaryTypeName" + typeString: "uint256" + name: "uint" + stateMutability: "nonpayable" + context: ASTContext #1000 + parent: VariableDeclaration #967 + children: Array(0) + firstChild: undefined + lastChild: undefined + previousSibling: undefined + nextSibling: undefined + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Block #971 + id: 971 + src: "0:0:0" + type: "Block" + documentation: undefined + context: ASTContext #1000 + parent: FunctionDefinition #972 + vStatements: Array(1) [ Return #970 ] + children: Array(1) [ Return #970 ] + firstChild: Return #970 + lastChild: Return #970 + previousSibling: ParameterList #968 + nextSibling: undefined + root: SourceUnit #975 + sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } + + Return #970 + id: 970 src: "0:0:0" type: "Return" documentation: undefined - functionReturnParameters: 324 - vExpression: Literal #651 + functionReturnParameters: 483 + vExpression: Literal #969 context: ASTContext #1000 - parent: Block #653 - children: Array(1) [ Literal #651 ] - vFunctionReturnParameters: ParameterList #324 - firstChild: Literal #651 - lastChild: Literal #651 + parent: Block #971 + children: Array(1) [ Literal #969 ] + vFunctionReturnParameters: ParameterList #483 + firstChild: Literal #969 + lastChild: Literal #969 previousSibling: undefined nextSibling: undefined - root: SourceUnit #657 + root: SourceUnit #975 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - Literal #651 - id: 651 + Literal #969 + id: 969 src: "0:0:0" type: "Literal" typeString: "int_const 1" @@ -6380,33 +9667,33 @@ SourceUnit #657 value: "1" subdenomination: undefined context: ASTContext #1000 - parent: Return #652 + parent: Return #970 children: Array(0) firstChild: undefined lastChild: undefined previousSibling: undefined nextSibling: undefined - root: SourceUnit #657 + root: SourceUnit #975 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } - ContractDefinition #656 - id: 656 + ContractDefinition #974 + id: 974 src: "0:0:0" type: "ContractDefinition" name: "SomeLib" - scope: 657 + scope: 975 kind: "library" abstract: false fullyImplemented: true - linearizedBaseContracts: Array(1) [ 656 ] + linearizedBaseContracts: Array(1) [ 974 ] usedErrors: Array(0) docString: undefined nameLocation: "202:7:1" context: ASTContext #1000 - parent: SourceUnit #657 + parent: SourceUnit #975 documentation: undefined - vScope: SourceUnit #657 - vLinearizedBaseContracts: Array(1) [ ContractDefinition #656 ] + vScope: SourceUnit #975 + vLinearizedBaseContracts: Array(1) [ ContractDefinition #974 ] vUsedErrors: Array(0) vInheritanceSpecifiers: Array(0) vStateVariables: Array(0) @@ -6417,11 +9704,12 @@ SourceUnit #657 vUsingForDirectives: Array(0) vStructs: Array(0) vEnums: Array(0) + vUserDefinedValueTypes: Array(0) vConstructor: undefined children: Array(0) firstChild: undefined lastChild: undefined - previousSibling: ContractDefinition #655 + previousSibling: ContractDefinition #973 nextSibling: undefined - root: SourceUnit #657 + root: SourceUnit #975 sourceInfo: Object { offset: 0, length: 0, sourceIndex: 0 } diff --git a/test/samples/solidity/latest_08.sol b/test/samples/solidity/latest_08.sol index ac39cccb..080c8a0d 100644 --- a/test/samples/solidity/latest_08.sol +++ b/test/samples/solidity/latest_08.sol @@ -211,3 +211,60 @@ contract Features087 { } } } + +type Price is uint128; +type Quantity is uint128; + +library LibWithUDVT_088 { + type UFixed is uint256; + + uint constant multiplier = 10**18; + + function add(UFixed a, UFixed b) internal pure returns (UFixed) { + return UFixed.wrap(UFixed.unwrap(a) + UFixed.unwrap(b)); + } + + function mul(UFixed a, uint256 b) internal pure returns (UFixed) { + return UFixed.wrap(UFixed.unwrap(a) * b); + } + + function floor(UFixed a) internal pure returns (uint256) { + return UFixed.unwrap(a) / multiplier; + } + + function toUFixed(uint256 a) internal pure returns (UFixed) { + return UFixed.wrap(a * multiplier); + } +} + +interface InterfaceWithUDTV_088 { + /// InterfaceWithUDTV_088.EntityReference docstring + type EntityReference is address payable; + + function balance(EntityReference er) external view returns(uint); +} + +contract EnumTypeMinMax_088 { + function testEnumMinMax() public pure { + assert(type(EnumABC).min == EnumABC.A); + assert(type(EnumABC).max == EnumABC.C); + } +} + +contract ExternalFnSelectorAndAddress_0810 { + function testFunction() external {} + + function test(address newAddress, uint32 newSelector) view public returns (address adr, bytes4 sel) { + function() external fp = this.testFunction; + + assembly { + let o := fp.address + let s := fp.selector + + fp.address := newAddress + fp.selector := newSelector + } + + return (fp.address, fp.selector); + } +} diff --git a/test/samples/solidity/latest_08.sourced.sol b/test/samples/solidity/latest_08.sourced.sol index d2fbb02f..56d07642 100644 --- a/test/samples/solidity/latest_08.sourced.sol +++ b/test/samples/solidity/latest_08.sourced.sol @@ -8,6 +8,10 @@ import "./latest_imports_08.sol" as LI; enum EnumABC { A, B, C } +type Price is uint128; + +type Quantity is uint128; + /// UnitLevelError error docstring error UnitLevelError084(uint code); @@ -172,6 +176,56 @@ contract Features087 { } } } + +library LibWithUDVT_088 { + type UFixed is uint256; + + uint internal constant multiplier = 10 ** 18; + + function add(UFixed a, UFixed b) internal pure returns (UFixed) { + return UFixed.wrap(UFixed.unwrap(a) + UFixed.unwrap(b)); + } + + function mul(UFixed a, uint256 b) internal pure returns (UFixed) { + return UFixed.wrap(UFixed.unwrap(a) * b); + } + + function floor(UFixed a) internal pure returns (uint256) { + return UFixed.unwrap(a) / multiplier; + } + + function toUFixed(uint256 a) internal pure returns (UFixed) { + return UFixed.wrap(a * multiplier); + } +} + +interface InterfaceWithUDTV_088 { + type EntityReference is address payable; + + function balance(EntityReference er) external view returns (uint); +} + +contract EnumTypeMinMax_088 { + function testEnumMinMax() public pure { + assert(type(EnumABC).min == EnumABC.A); + assert(type(EnumABC).max == EnumABC.C); + } +} + +contract ExternalFnSelectorAndAddress_0810 { + function testFunction() external {} + + function test(address newAddress, uint32 newSelector) public view returns (address adr, bytes4 sel) { + function() external fp = this.testFunction; + assembly { + let o := fp.address + let s := fp.selector + fp.address := newAddress + fp.selector := newSelector + } + return (fp.address, fp.selector); + } +} // ------------------------------------------------------------ // /test/samples/solidity/latest_imports_08.sol // ------------------------------------------------------------ diff --git a/test/unit/types/getters.spec.ts b/test/unit/types/getters.spec.ts index 4a2a73f9..86fbce81 100644 --- a/test/unit/types/getters.spec.ts +++ b/test/unit/types/getters.spec.ts @@ -14,6 +14,7 @@ import { FunctionStateMutability, FunctionType, FunctionVisibility, + getUserDefinedTypeFQName, IntType, PointerType, SourceUnit, @@ -21,6 +22,8 @@ import { StructDefinition, TypeNode, UserDefinedType, + UserDefinedValueTypeDefinition, + UserDefinition, VariableDeclaration } from "../../../src"; @@ -36,7 +39,7 @@ function getStateVar(unit: SourceUnit, name: string): VariableDeclaration { return vars[0]; } -function getDef( +function getDef( unit: SourceUnit, canonicalName: string, constructor: ASTNodeConstructor @@ -128,7 +131,7 @@ const cases: Array<[string, Array<[string, TypeNode | DeferredTypeNode]>]> = [ new IntType(8, true), new PointerType(new StringType(), DataLocation.Memory), new PointerType( - new UserDefinedType(def.canonicalName, def), + new UserDefinedType(getUserDefinedTypeFQName(def), def), DataLocation.Memory ) ], @@ -150,6 +153,122 @@ const cases: Array<[string, Array<[string, TypeNode | DeferredTypeNode]>]> = [ FunctionStateMutability.View ); } + ], + [ + "u", + (unit: SourceUnit) => { + const def = getDef(unit, "AccessorReturns.U", UserDefinedValueTypeDefinition); + + return new FunctionType( + "u", + [], + [new UserDefinedType(getUserDefinedTypeFQName(def), def)], + FunctionVisibility.External, + FunctionStateMutability.View + ); + } + ], + [ + "i", + (unit: SourceUnit) => { + const def = getDef(unit, "AccessorReturns.I", UserDefinedValueTypeDefinition); + + return new FunctionType( + "i", + [], + [new UserDefinedType(getUserDefinedTypeFQName(def), def)], + FunctionVisibility.External, + FunctionStateMutability.View + ); + } + ], + [ + "addr", + (unit: SourceUnit) => { + const def = getDef(unit, "AccessorReturns.A", UserDefinedValueTypeDefinition); + + return new FunctionType( + "addr", + [], + [new UserDefinedType(getUserDefinedTypeFQName(def), def)], + FunctionVisibility.External, + FunctionStateMutability.View + ); + } + ], + [ + "ap", + (unit: SourceUnit) => { + const def = getDef(unit, "AccessorReturns.AP", UserDefinedValueTypeDefinition); + + return new FunctionType( + "ap", + [], + [new UserDefinedType(getUserDefinedTypeFQName(def), def)], + FunctionVisibility.External, + FunctionStateMutability.View + ); + } + ], + [ + "ap", + (unit: SourceUnit) => { + const def = getDef(unit, "AccessorReturns.AP", UserDefinedValueTypeDefinition); + + return new FunctionType( + "ap", + [], + [new UserDefinedType(getUserDefinedTypeFQName(def), def)], + FunctionVisibility.External, + FunctionStateMutability.View + ); + } + ], + [ + "b1", + (unit: SourceUnit) => { + const def = getDef(unit, "AccessorReturns.B1", UserDefinedValueTypeDefinition); + + return new FunctionType( + "b1", + [], + [new UserDefinedType(getUserDefinedTypeFQName(def), def)], + FunctionVisibility.External, + FunctionStateMutability.View + ); + } + ], + [ + "b32", + (unit: SourceUnit) => { + const def = getDef(unit, "AccessorReturns.B32", UserDefinedValueTypeDefinition); + + return new FunctionType( + "b32", + [], + [new UserDefinedType(getUserDefinedTypeFQName(def), def)], + FunctionVisibility.External, + FunctionStateMutability.View + ); + } + ], + [ + "udtvMapping", + (unit: SourceUnit) => { + const defA = getDef(unit, "AccessorReturns.A", UserDefinedValueTypeDefinition); + const defU = getDef(unit, "AccessorReturns.U", UserDefinedValueTypeDefinition); + + return new FunctionType( + "udtvMapping", + [ + new UserDefinedType(getUserDefinedTypeFQName(defA), defA), + new IntType(256, false) + ], + [new UserDefinedType(getUserDefinedTypeFQName(defU), defU)], + FunctionVisibility.External, + FunctionStateMutability.View + ); + } ] ] ], @@ -166,7 +285,7 @@ const cases: Array<[string, Array<[string, TypeNode | DeferredTypeNode]>]> = [ [], [ new PointerType( - new UserDefinedType(def.canonicalName, def), + new UserDefinedType(getUserDefinedTypeFQName(def), def), DataLocation.Memory ), new IntType(256, false) diff --git a/test/unit/types/signatures.spec.ts b/test/unit/types/signatures.spec.ts index beff02dc..ea767838 100644 --- a/test/unit/types/signatures.spec.ts +++ b/test/unit/types/signatures.spec.ts @@ -1,34 +1,43 @@ import expect from "expect"; import { gte, lt } from "semver"; import { + AnyResolvable, + assert, + ASTKind, + ASTReader, + CompilerVersions08, compileSol, + ContractDefinition, detectCompileErrors, - ASTReader, - ASTKind, - resolveAny, - assert, - VariableDeclaration, + ErrorDefinition, + EventDefinition, FunctionDefinition, + FunctionStateMutability, FunctionType, - generalizeType, - variableDeclarationToTypeNode, - EventDefinition, FunctionVisibility, - FunctionStateMutability, - AnyResolvable, + generalizeType, + resolveAny, SourceUnit, - ContractDefinition, - ErrorDefinition + VariableDeclaration, + variableDeclarationToTypeNode } from "../../../src"; import { ABIEncoderVersion } from "../../../src/types/abi"; const samples: Array<[string, string, ABIEncoderVersion]> = [ - ["test/samples/solidity/getters_08.sol", "0.8.7", ABIEncoderVersion.V2], + [ + "test/samples/solidity/getters_08.sol", + CompilerVersions08[CompilerVersions08.length - 1], + ABIEncoderVersion.V2 + ], ["test/samples/solidity/getters_07.sol", "0.7.6", ABIEncoderVersion.V2], ["test/samples/solidity/getters_07_abiv1.sol", "0.7.6", ABIEncoderVersion.V1], ["test/samples/solidity/latest_06.sol", "0.6.12", ABIEncoderVersion.V2], ["test/samples/solidity/latest_07.sol", "0.7.6", ABIEncoderVersion.V2], - ["test/samples/solidity/latest_08.sol", "0.8.7", ABIEncoderVersion.V2], + [ + "test/samples/solidity/latest_08.sol", + CompilerVersions08[CompilerVersions08.length - 1], + ABIEncoderVersion.V2 + ], ["test/samples/solidity/compile_04.sol", "0.4.26", ABIEncoderVersion.V1], ["test/samples/solidity/compile_05.sol", "0.5.17", ABIEncoderVersion.V1], ["test/samples/solidity/compile_06.sol", "0.6.12", ABIEncoderVersion.V1], @@ -42,27 +51,35 @@ function resolveOne( compilerVersion: string ): AnyResolvable | undefined { const contracts = [...resolveAny(contractName, unit, compilerVersion, true)]; + assert(contracts.length === 1, `Contract ${contractName} not found in ${unit.sourceEntryKey}`); - const contract = contracts[0] as ContractDefinition; + const contract = contracts[0] as ContractDefinition; const defs = [...resolveAny(name, contract, compilerVersion, true)]; + if (defs.length === 0) { return undefined; } assert( defs.length === 1, - `Unexpected number of entries (${defs.length}) for ${name} in contract ${contract.name}: ${defs}` + "Unexpected number of entries ({0}) for {1} in contract {2}: {3}", + defs.length, + name, + contract.name, + defs ); + return defs[0]; } describe("Check canonical signatures are generated correctly", () => { for (const [sample, compilerVersion, encoderVer] of samples) { - it(`Sample ${sample}`, () => { + it(sample, () => { const result = compileSol(sample, "auto", []); expect(result.compilerVersion).toEqual(compilerVersion); + const errors = detectCompileErrors(result.data); expect(errors).toHaveLength(0); @@ -83,6 +100,7 @@ describe("Check canonical signatures are generated correctly", () => { } let signature: string; + if (def instanceof VariableDeclaration) { signature = def.getterCanonicalSignature(encoderVer); } else if (def instanceof FunctionDefinition) { @@ -122,21 +140,15 @@ describe("Check canonical signatures are generated correctly", () => { } else if (def instanceof FunctionDefinition) { funT = new FunctionType( def.name, - def.vParameters.vParameters.map((param) => - variableDeclarationToTypeNode(param) - ), - def.vReturnParameters.vParameters.map((param) => - variableDeclarationToTypeNode(param) - ), + def.vParameters.vParameters.map(variableDeclarationToTypeNode), + def.vReturnParameters.vParameters.map(variableDeclarationToTypeNode), def.visibility, def.stateMutability ); } else if (def instanceof EventDefinition) { funT = new FunctionType( def.name, - def.vParameters.vParameters.map((param) => - variableDeclarationToTypeNode(param) - ), + def.vParameters.vParameters.map(variableDeclarationToTypeNode), [], FunctionVisibility.Default, FunctionStateMutability.View @@ -144,9 +156,7 @@ describe("Check canonical signatures are generated correctly", () => { } else if (def instanceof ErrorDefinition) { funT = new FunctionType( def.name, - def.vParameters.vParameters.map((param) => - variableDeclarationToTypeNode(param) - ), + def.vParameters.vParameters.map(variableDeclarationToTypeNode), [], FunctionVisibility.Default, FunctionStateMutability.View @@ -156,6 +166,7 @@ describe("Check canonical signatures are generated correctly", () => { } expect(funT.parameters.length).toEqual(abiEntry.inputs.length); + for (let i = 0; i < funT.parameters.length; i++) { expect(generalizeType(funT.parameters[i])[0].pp()).toEqual( abiEntry.inputs[i].internalType @@ -164,6 +175,7 @@ describe("Check canonical signatures are generated correctly", () => { if (abiEntry.type === "function") { expect(funT.returns.length).toEqual(abiEntry.outputs.length); + for (let i = 0; i < funT.returns.length; i++) { expect(generalizeType(funT.returns[i])[0].pp()).toEqual( abiEntry.outputs[i].internalType diff --git a/test/unit/types/typestrings.spec.ts b/test/unit/types/typestrings.spec.ts index 0b898206..e447f1a9 100644 --- a/test/unit/types/typestrings.spec.ts +++ b/test/unit/types/typestrings.spec.ts @@ -97,10 +97,11 @@ const samples: Array<[string, string, ASTKind]> = [ describe("Round-trip tests for typestring parser/printer", () => { for (const [sample, compilerVersion, kind] of samples) { - it(`Sample ${sample}`, () => { + it(sample, () => { const result = compileSol(sample, "auto", []); expect(result.compilerVersion).toEqual(compilerVersion); + const errors = detectCompileErrors(result.data); expect(errors).toHaveLength(0); @@ -186,6 +187,7 @@ describe("Round-trip tests for typestring parser/printer", () => { generalizedType, loc === undefined ? DataLocation.Default : loc ); + expect(eq(typeNode, reSpecializedType)).toBeTruthy(); } }