diff --git a/.env b/.env
deleted file mode 100644
index c703376..0000000
--- a/.env
+++ /dev/null
@@ -1 +0,0 @@
-REACT_APP_CLIENT_ID=BNxdRWx08cSTPlzMAaShlM62d4f8Tp6racfnCg_gaH0XQ1NfSGo3h5B_IkLtgSnPMhlxsSvhqugWm0x8x-VkUXA
diff --git a/.prettierrc b/.prettierrc
deleted file mode 100644
index e69de29..0000000
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 06dd640..38d9a52 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,5 +1,3 @@
{
- "recommendations": [
- "arcanis.vscode-zipfs"
- ]
+ "recommendations": ["arcanis.vscode-zipfs"]
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 5d4dab6..f99436f 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,21 +1,20 @@
{
- "editor.tabSize": 2,
- "search.exclude": {
- "**/.yarn": true,
- "**/.pnp.*": true
- },
- "typescript.tsdk": ".yarn/sdks/typescript/lib",
- "typescript.enablePromptUseWorkspaceTsdk": true,
- "prettier.prettierPath": ".vscode/pnpify/prettier/index.js",
- "cSpell.words": [
- "Addin",
- "Blockhash",
- "blockworks",
- "Lamport",
- "lamports",
- "localnet",
- "serialisation",
- "solana",
- "SYSVAR"
- ]
-}
\ No newline at end of file
+ "editor.tabSize": 2,
+ "search.exclude": {
+ "**/.yarn": true,
+ "**/.pnp.*": true
+ },
+ "typescript.tsdk": ".yarn/sdks/typescript/lib",
+ "typescript.enablePromptUseWorkspaceTsdk": true,
+ "cSpell.words": [
+ "Addin",
+ "Blockhash",
+ "blockworks",
+ "Lamport",
+ "lamports",
+ "localnet",
+ "serialisation",
+ "solana",
+ "SYSVAR"
+ ]
+}
diff --git a/README.md b/README.md
index ea27563..7dcfd34 100644
--- a/README.md
+++ b/README.md
@@ -1,71 +1,19 @@
-## Setup
+# `spl-governance SDK`
-Be sure to be running Node v12.16.2 and yarn version 1.22.10.
+SPL Governance Client API for spl-governance program
-`yarn bootstrap`
+## Installation
-Then run:
+`(npm|pnpm|yarn) add @solana/spl-governance @solana/web3.js`
-`yarn start lending`
+## Usage
-You may have to rebuild your package more than one time to secure a
-running environment.
+```typescript
+import { getRealms } from '@solana/spl-governance';
+import { Connection, PublicKey } from '@solana/web3.js';
-## Known Issues
+const connection = new Connection("https://api.mainnet-beta.solana.com", 'recent');
+const programId = new PublicKey('GovER5Lthms3bLBqWub97yVrMmEogzX7xNjdXpPPCVZw');
-### Can't find CSS files in common
+const realms = getRealms(connection, programId);
-Common currently uses a less library to compile down less files into css in both the src directory for the TS server
-in vscode to pick up and in the dist folder for importers like lending and proposal projects to pick up. If you do not see these files appear when running the `npm start lending` or other commands, and you see missing CSS errors,
-you likely did not install the packages for common correctly. Try running:
-
-`lerna exec npm install --scope @oyster/common` to specifically install packages for common.
-
-Then, test that css transpiling is working:
-
-`lerna exec npm watch-css-src --scope @oyster/common` and verify css files appear next to their less counterparts in src.
-
-## ⚠️ Warning
-
-Any content produced by Solana, or developer resources that Solana provides, are for educational and inspiration purposes only. Solana does not encourage, induce or sanction the deployment of any such applications in violation of applicable laws or regulations.
-
-# Disclaimer
-
-All claims, content, designs, algorithms, estimates, roadmaps,
-specifications, and performance measurements described in this project
-are done with the Solana Foundation's ("SF") best efforts. It is up to
-the reader to check and validate their accuracy and truthfulness.
-Furthermore nothing in this project constitutes a solicitation for
-investment.
-
-Any content produced by SF or developer resources that SF provides, are
-for educational and inspiration purposes only. SF does not encourage,
-induce or sanction the deployment, integration or use of any such
-applications (including the code comprising the Solana blockchain
-protocol) in violation of applicable laws or regulations and hereby
-prohibits any such deployment, integration or use. This includes use of
-any such applications by the reader (a) in violation of export control
-or sanctions laws of the United States or any other applicable
-jurisdiction, (b) if the reader is located in or ordinarily resident in
-a country or territory subject to comprehensive sanctions administered
-by the U.S. Office of Foreign Assets Control (OFAC), or (c) if the
-reader is or is working on behalf of a Specially Designated National
-(SDN) or a person subject to similar blocking or denied party
-prohibitions.
-
-The reader should be aware that U.S. export control and sanctions laws
-prohibit U.S. persons (and other persons that are subject to such laws)
-from transacting with persons in certain countries and territories or
-that are on the SDN list. As a project based primarily on open-source
-software, it is possible that such sanctioned persons may nevertheless
-bypass prohibitions, obtain the code comprising the Solana blockchain
-protocol (or other project code or applications) and deploy, integrate,
-or otherwise use it. Accordingly, there is a risk to individuals that
-other persons using the Solana blockchain protocol may be sanctioned
-persons and that transactions with such persons would be a violation of
-U.S. export controls and sanctions law. This risk applies to
-individuals, organizations, and other ecosystem participants that
-deploy, integrate, or use the Solana blockchain protocol code directly
-(e.g., as a node operator), and individuals that transact on the Solana
-blockchain through light clients, third party interfaces, and/or wallet
-software.
diff --git a/assets/wallets/ledger.svg b/assets/wallets/ledger.svg
deleted file mode 100644
index feb6840..0000000
--- a/assets/wallets/ledger.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-
diff --git a/assets/wallets/mathwallet.svg b/assets/wallets/mathwallet.svg
deleted file mode 100644
index 588ace9..0000000
--- a/assets/wallets/mathwallet.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
\ No newline at end of file
diff --git a/assets/wallets/metamask.svg b/assets/wallets/metamask.svg
deleted file mode 100644
index a04dcfe..0000000
--- a/assets/wallets/metamask.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
diff --git a/assets/wallets/solflare.svg b/assets/wallets/solflare.svg
deleted file mode 100644
index 73352b8..0000000
--- a/assets/wallets/solflare.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/assets/wallets/sollet.svg b/assets/wallets/sollet.svg
deleted file mode 100644
index 3440890..0000000
--- a/assets/wallets/sollet.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/wallets/solong.png b/assets/wallets/solong.png
deleted file mode 100644
index 4ad3008..0000000
Binary files a/assets/wallets/solong.png and /dev/null differ
diff --git a/assets/wallets/torus.svg b/assets/wallets/torus.svg
deleted file mode 100644
index 1c0178e..0000000
--- a/assets/wallets/torus.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
diff --git a/assets/wallets/wormhole.svg b/assets/wallets/wormhole.svg
deleted file mode 100644
index aecd949..0000000
--- a/assets/wallets/wormhole.svg
+++ /dev/null
@@ -1,3857 +0,0 @@
-
diff --git a/biome.json b/biome.json
new file mode 100644
index 0000000..abe1352
--- /dev/null
+++ b/biome.json
@@ -0,0 +1,44 @@
+{
+ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
+ "vcs": {
+ "enabled": false,
+ "clientKind": "git",
+ "useIgnoreFile": false
+ },
+ "files": {
+ "ignoreUnknown": false,
+ "ignore": ["lib", "node_modules"]
+ },
+ "formatter": {
+ "enabled": true,
+ "indentStyle": "tab",
+ "lineWidth": 120,
+ "indentWidth": 2
+ },
+ "organizeImports": {
+ "enabled": true
+ },
+ "linter": {
+ "enabled": true,
+ "rules": {
+ "recommended": true,
+ "style": {
+ "noNonNullAssertion": "off"
+ },
+ "suspicious": {
+ "noExplicitAny": "off"
+ },
+ "complexity": {
+ "noBannedTypes": "off"
+ }
+ }
+ },
+ "javascript": {
+ "formatter": {
+ "quoteStyle": "double",
+ "lineWidth": 120,
+ "semicolons": "always",
+ "indentWidth": 2
+ }
+ }
+}
diff --git a/bun.lock b/bun.lock
new file mode 100644
index 0000000..720ec77
--- /dev/null
+++ b/bun.lock
@@ -0,0 +1,1114 @@
+{
+ "lockfileVersion": 1,
+ "workspaces": {
+ "": {
+ "name": "@realms-today/spl-governance",
+ "dependencies": {
+ "@solana/web3.js": "=1.98.0",
+ "bignumber.js": "^9.0.1",
+ "bn.js": "^5.1.3",
+ "borsh": "^0.7.0",
+ "bs58": "^5.0.0",
+ "superstruct": "^0.15.2",
+ },
+ "devDependencies": {
+ "@biomejs/biome": "1.9.4",
+ "@solana/spl-token": "*",
+ "@types/bn.js": "^5.1.6",
+ "@types/bs58": "^5.0.0",
+ "@types/jest": "29.2.0",
+ "bun-types": "latest",
+ "esbuild": "^0.14.11",
+ "esbuild-jest": "^0.5.0",
+ "jest": "^29.2.0",
+ "ts-jest": "29.2.0",
+ "typescript": "^5.8.3",
+ },
+ },
+ },
+ "packages": {
+ "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="],
+
+ "@babel/code-frame": ["@babel/code-frame@7.26.2", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ=="],
+
+ "@babel/compat-data": ["@babel/compat-data@7.26.8", "", {}, "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ=="],
+
+ "@babel/core": ["@babel/core@7.26.10", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.10", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", "@babel/helpers": "^7.26.10", "@babel/parser": "^7.26.10", "@babel/template": "^7.26.9", "@babel/traverse": "^7.26.10", "@babel/types": "^7.26.10", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ=="],
+
+ "@babel/generator": ["@babel/generator@7.27.0", "", { "dependencies": { "@babel/parser": "^7.27.0", "@babel/types": "^7.27.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" } }, "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw=="],
+
+ "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.0", "", { "dependencies": { "@babel/compat-data": "^7.26.8", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA=="],
+
+ "@babel/helper-module-imports": ["@babel/helper-module-imports@7.25.9", "", { "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" } }, "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw=="],
+
+ "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.26.0", "", { "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9", "@babel/traverse": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw=="],
+
+ "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.26.5", "", {}, "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg=="],
+
+ "@babel/helper-string-parser": ["@babel/helper-string-parser@7.25.9", "", {}, "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA=="],
+
+ "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.25.9", "", {}, "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ=="],
+
+ "@babel/helper-validator-option": ["@babel/helper-validator-option@7.25.9", "", {}, "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw=="],
+
+ "@babel/helpers": ["@babel/helpers@7.27.0", "", { "dependencies": { "@babel/template": "^7.27.0", "@babel/types": "^7.27.0" } }, "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg=="],
+
+ "@babel/parser": ["@babel/parser@7.27.0", "", { "dependencies": { "@babel/types": "^7.27.0" }, "bin": "./bin/babel-parser.js" }, "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg=="],
+
+ "@babel/plugin-syntax-async-generators": ["@babel/plugin-syntax-async-generators@7.8.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="],
+
+ "@babel/plugin-syntax-bigint": ["@babel/plugin-syntax-bigint@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg=="],
+
+ "@babel/plugin-syntax-class-properties": ["@babel/plugin-syntax-class-properties@7.12.13", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA=="],
+
+ "@babel/plugin-syntax-class-static-block": ["@babel/plugin-syntax-class-static-block@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw=="],
+
+ "@babel/plugin-syntax-import-attributes": ["@babel/plugin-syntax-import-attributes@7.26.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A=="],
+
+ "@babel/plugin-syntax-import-meta": ["@babel/plugin-syntax-import-meta@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g=="],
+
+ "@babel/plugin-syntax-json-strings": ["@babel/plugin-syntax-json-strings@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="],
+
+ "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA=="],
+
+ "@babel/plugin-syntax-logical-assignment-operators": ["@babel/plugin-syntax-logical-assignment-operators@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig=="],
+
+ "@babel/plugin-syntax-nullish-coalescing-operator": ["@babel/plugin-syntax-nullish-coalescing-operator@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ=="],
+
+ "@babel/plugin-syntax-numeric-separator": ["@babel/plugin-syntax-numeric-separator@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug=="],
+
+ "@babel/plugin-syntax-object-rest-spread": ["@babel/plugin-syntax-object-rest-spread@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="],
+
+ "@babel/plugin-syntax-optional-catch-binding": ["@babel/plugin-syntax-optional-catch-binding@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="],
+
+ "@babel/plugin-syntax-optional-chaining": ["@babel/plugin-syntax-optional-chaining@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg=="],
+
+ "@babel/plugin-syntax-private-property-in-object": ["@babel/plugin-syntax-private-property-in-object@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg=="],
+
+ "@babel/plugin-syntax-top-level-await": ["@babel/plugin-syntax-top-level-await@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw=="],
+
+ "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ=="],
+
+ "@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.26.3", "", { "dependencies": { "@babel/helper-module-transforms": "^7.26.0", "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ=="],
+
+ "@babel/runtime": ["@babel/runtime@7.27.0", "", { "dependencies": { "regenerator-runtime": "^0.14.0" } }, "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw=="],
+
+ "@babel/template": ["@babel/template@7.27.0", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/parser": "^7.27.0", "@babel/types": "^7.27.0" } }, "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA=="],
+
+ "@babel/traverse": ["@babel/traverse@7.27.0", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.27.0", "@babel/parser": "^7.27.0", "@babel/template": "^7.27.0", "@babel/types": "^7.27.0", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA=="],
+
+ "@babel/types": ["@babel/types@7.27.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg=="],
+
+ "@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="],
+
+ "@biomejs/biome": ["@biomejs/biome@1.9.4", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "1.9.4", "@biomejs/cli-darwin-x64": "1.9.4", "@biomejs/cli-linux-arm64": "1.9.4", "@biomejs/cli-linux-arm64-musl": "1.9.4", "@biomejs/cli-linux-x64": "1.9.4", "@biomejs/cli-linux-x64-musl": "1.9.4", "@biomejs/cli-win32-arm64": "1.9.4", "@biomejs/cli-win32-x64": "1.9.4" }, "bin": { "biome": "bin/biome" } }, "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog=="],
+
+ "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@1.9.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw=="],
+
+ "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@1.9.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg=="],
+
+ "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@1.9.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g=="],
+
+ "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@1.9.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA=="],
+
+ "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@1.9.4", "", { "os": "linux", "cpu": "x64" }, "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg=="],
+
+ "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@1.9.4", "", { "os": "linux", "cpu": "x64" }, "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg=="],
+
+ "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@1.9.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg=="],
+
+ "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@1.9.4", "", { "os": "win32", "cpu": "x64" }, "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA=="],
+
+ "@cnakazawa/watch": ["@cnakazawa/watch@1.0.4", "", { "dependencies": { "exec-sh": "^0.3.2", "minimist": "^1.2.0" }, "bin": { "watch": "cli.js" } }, "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ=="],
+
+ "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.14.54", "", { "os": "linux", "cpu": "none" }, "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw=="],
+
+ "@istanbuljs/load-nyc-config": ["@istanbuljs/load-nyc-config@1.1.0", "", { "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" } }, "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ=="],
+
+ "@istanbuljs/schema": ["@istanbuljs/schema@0.1.3", "", {}, "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="],
+
+ "@jest/console": ["@jest/console@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "slash": "^3.0.0" } }, "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg=="],
+
+ "@jest/core": ["@jest/core@29.7.0", "", { "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-changed-files": "^29.7.0", "jest-config": "^29.7.0", "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-resolve-dependencies": "^29.7.0", "jest-runner": "^29.7.0", "jest-runtime": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg=="],
+
+ "@jest/environment": ["@jest/environment@29.7.0", "", { "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "jest-mock": "^29.7.0" } }, "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw=="],
+
+ "@jest/expect": ["@jest/expect@29.7.0", "", { "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" } }, "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ=="],
+
+ "@jest/expect-utils": ["@jest/expect-utils@29.7.0", "", { "dependencies": { "jest-get-type": "^29.6.3" } }, "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA=="],
+
+ "@jest/fake-timers": ["@jest/fake-timers@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", "jest-message-util": "^29.7.0", "jest-mock": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ=="],
+
+ "@jest/globals": ["@jest/globals@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", "@jest/types": "^29.6.3", "jest-mock": "^29.7.0" } }, "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ=="],
+
+ "@jest/reporters": ["@jest/reporters@29.7.0", "", { "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", "v8-to-istanbul": "^9.0.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg=="],
+
+ "@jest/schemas": ["@jest/schemas@29.6.3", "", { "dependencies": { "@sinclair/typebox": "^0.27.8" } }, "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA=="],
+
+ "@jest/source-map": ["@jest/source-map@29.6.3", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" } }, "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw=="],
+
+ "@jest/test-result": ["@jest/test-result@29.7.0", "", { "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA=="],
+
+ "@jest/test-sequencer": ["@jest/test-sequencer@29.7.0", "", { "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "slash": "^3.0.0" } }, "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw=="],
+
+ "@jest/transform": ["@jest/transform@26.6.2", "", { "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^26.6.2", "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", "jest-haste-map": "^26.6.2", "jest-regex-util": "^26.0.0", "jest-util": "^26.6.2", "micromatch": "^4.0.2", "pirates": "^4.0.1", "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" } }, "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA=="],
+
+ "@jest/types": ["@jest/types@29.6.3", "", { "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^17.0.8", "chalk": "^4.0.0" } }, "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw=="],
+
+ "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="],
+
+ "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
+
+ "@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="],
+
+ "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="],
+
+ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="],
+
+ "@noble/curves": ["@noble/curves@1.9.0", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg=="],
+
+ "@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="],
+
+ "@sinclair/typebox": ["@sinclair/typebox@0.27.8", "", {}, "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA=="],
+
+ "@sinonjs/commons": ["@sinonjs/commons@3.0.1", "", { "dependencies": { "type-detect": "4.0.8" } }, "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ=="],
+
+ "@sinonjs/fake-timers": ["@sinonjs/fake-timers@10.3.0", "", { "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA=="],
+
+ "@solana/buffer-layout": ["@solana/buffer-layout@4.0.1", "", { "dependencies": { "buffer": "~6.0.3" } }, "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA=="],
+
+ "@solana/buffer-layout-utils": ["@solana/buffer-layout-utils@0.2.0", "", { "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/web3.js": "^1.32.0", "bigint-buffer": "^1.1.5", "bignumber.js": "^9.0.1" } }, "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g=="],
+
+ "@solana/codecs": ["@solana/codecs@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-data-structures": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/codecs-strings": "2.0.0-rc.1", "@solana/options": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ=="],
+
+ "@solana/codecs-core": ["@solana/codecs-core@2.0.0-rc.1", "", { "dependencies": { "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ=="],
+
+ "@solana/codecs-data-structures": ["@solana/codecs-data-structures@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog=="],
+
+ "@solana/codecs-numbers": ["@solana/codecs-numbers@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ=="],
+
+ "@solana/codecs-strings": ["@solana/codecs-strings@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "fastestsmallesttextencoderdecoder": "^1.0.22", "typescript": ">=5" } }, "sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g=="],
+
+ "@solana/errors": ["@solana/errors@2.0.0-rc.1", "", { "dependencies": { "chalk": "^5.3.0", "commander": "^12.1.0" }, "peerDependencies": { "typescript": ">=5" }, "bin": { "errors": "bin/cli.mjs" } }, "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ=="],
+
+ "@solana/options": ["@solana/options@2.0.0-rc.1", "", { "dependencies": { "@solana/codecs-core": "2.0.0-rc.1", "@solana/codecs-data-structures": "2.0.0-rc.1", "@solana/codecs-numbers": "2.0.0-rc.1", "@solana/codecs-strings": "2.0.0-rc.1", "@solana/errors": "2.0.0-rc.1" }, "peerDependencies": { "typescript": ">=5" } }, "sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA=="],
+
+ "@solana/spl-token": ["@solana/spl-token@0.4.13", "", { "dependencies": { "@solana/buffer-layout": "^4.0.0", "@solana/buffer-layout-utils": "^0.2.0", "@solana/spl-token-group": "^0.0.7", "@solana/spl-token-metadata": "^0.1.6", "buffer": "^6.0.3" }, "peerDependencies": { "@solana/web3.js": "^1.95.5" } }, "sha512-cite/pYWQZZVvLbg5lsodSovbetK/eA24gaR0eeUeMuBAMNrT8XFCwaygKy0N2WSg3gSyjjNpIeAGBAKZaY/1w=="],
+
+ "@solana/spl-token-group": ["@solana/spl-token-group@0.0.7", "", { "dependencies": { "@solana/codecs": "2.0.0-rc.1" }, "peerDependencies": { "@solana/web3.js": "^1.95.3" } }, "sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug=="],
+
+ "@solana/spl-token-metadata": ["@solana/spl-token-metadata@0.1.6", "", { "dependencies": { "@solana/codecs": "2.0.0-rc.1" }, "peerDependencies": { "@solana/web3.js": "^1.95.3" } }, "sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA=="],
+
+ "@solana/web3.js": ["@solana/web3.js@1.98.0", "", { "dependencies": { "@babel/runtime": "^7.25.0", "@noble/curves": "^1.4.2", "@noble/hashes": "^1.4.0", "@solana/buffer-layout": "^4.0.1", "agentkeepalive": "^4.5.0", "bigint-buffer": "^1.1.5", "bn.js": "^5.2.1", "borsh": "^0.7.0", "bs58": "^4.0.1", "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", "jayson": "^4.1.1", "node-fetch": "^2.7.0", "rpc-websockets": "^9.0.2", "superstruct": "^2.0.2" } }, "sha512-nz3Q5OeyGFpFCR+erX2f6JPt3sKhzhYcSycBCSPkWjzSVDh/Rr1FqTVMRe58FKO16/ivTUcuJjeS5MyBvpkbzA=="],
+
+ "@swc/helpers": ["@swc/helpers@0.5.17", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="],
+
+ "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="],
+
+ "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="],
+
+ "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="],
+
+ "@types/babel__traverse": ["@types/babel__traverse@7.20.7", "", { "dependencies": { "@babel/types": "^7.20.7" } }, "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng=="],
+
+ "@types/bn.js": ["@types/bn.js@5.1.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w=="],
+
+ "@types/bs58": ["@types/bs58@5.0.0", "", { "dependencies": { "bs58": "*" } }, "sha512-cAw/jKBzo98m6Xz1X5ETqymWfIMbXbu6nK15W4LQYjeHJkVqSmM5PO8Bd9KVHQJ/F4rHcSso9LcjtgCW6TGu2w=="],
+
+ "@types/connect": ["@types/connect@3.4.38", "", { "dependencies": { "@types/node": "*" } }, "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug=="],
+
+ "@types/graceful-fs": ["@types/graceful-fs@4.1.9", "", { "dependencies": { "@types/node": "*" } }, "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ=="],
+
+ "@types/istanbul-lib-coverage": ["@types/istanbul-lib-coverage@2.0.6", "", {}, "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="],
+
+ "@types/istanbul-lib-report": ["@types/istanbul-lib-report@3.0.3", "", { "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="],
+
+ "@types/istanbul-reports": ["@types/istanbul-reports@3.0.4", "", { "dependencies": { "@types/istanbul-lib-report": "*" } }, "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ=="],
+
+ "@types/jest": ["@types/jest@29.2.0", "", { "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" } }, "sha512-KO7bPV21d65PKwv3LLsD8Jn3E05pjNjRZvkm+YTacWhVmykAb07wW6IkZUmQAltwQafNcDUEUrMO2h3jeBSisg=="],
+
+ "@types/node": ["@types/node@22.15.2", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A=="],
+
+ "@types/stack-utils": ["@types/stack-utils@2.0.3", "", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="],
+
+ "@types/uuid": ["@types/uuid@8.3.4", "", {}, "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw=="],
+
+ "@types/ws": ["@types/ws@7.4.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww=="],
+
+ "@types/yargs": ["@types/yargs@17.0.33", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA=="],
+
+ "@types/yargs-parser": ["@types/yargs-parser@21.0.3", "", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="],
+
+ "agentkeepalive": ["agentkeepalive@4.6.0", "", { "dependencies": { "humanize-ms": "^1.2.1" } }, "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ=="],
+
+ "ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="],
+
+ "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
+
+ "ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="],
+
+ "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="],
+
+ "argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="],
+
+ "arr-diff": ["arr-diff@4.0.0", "", {}, "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA=="],
+
+ "arr-flatten": ["arr-flatten@1.1.0", "", {}, "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="],
+
+ "arr-union": ["arr-union@3.1.0", "", {}, "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q=="],
+
+ "array-unique": ["array-unique@0.3.2", "", {}, "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ=="],
+
+ "assign-symbols": ["assign-symbols@1.0.0", "", {}, "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw=="],
+
+ "atob": ["atob@2.1.2", "", { "bin": { "atob": "bin/atob.js" } }, "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="],
+
+ "babel-jest": ["babel-jest@26.6.3", "", { "dependencies": { "@jest/transform": "^26.6.2", "@jest/types": "^26.6.2", "@types/babel__core": "^7.1.7", "babel-plugin-istanbul": "^6.0.0", "babel-preset-jest": "^26.6.2", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA=="],
+
+ "babel-plugin-istanbul": ["babel-plugin-istanbul@6.1.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" } }, "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA=="],
+
+ "babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@26.6.2", "", { "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", "@types/babel__core": "^7.0.0", "@types/babel__traverse": "^7.0.6" } }, "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw=="],
+
+ "babel-preset-current-node-syntax": ["babel-preset-current-node-syntax@1.1.0", "", { "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw=="],
+
+ "babel-preset-jest": ["babel-preset-jest@26.6.2", "", { "dependencies": { "babel-plugin-jest-hoist": "^26.6.2", "babel-preset-current-node-syntax": "^1.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ=="],
+
+ "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
+
+ "base": ["base@0.11.2", "", { "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" } }, "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg=="],
+
+ "base-x": ["base-x@4.0.1", "", {}, "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw=="],
+
+ "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="],
+
+ "bigint-buffer": ["bigint-buffer@1.1.5", "", { "dependencies": { "bindings": "^1.3.0" } }, "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA=="],
+
+ "bignumber.js": ["bignumber.js@9.3.0", "", {}, "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA=="],
+
+ "bindings": ["bindings@1.5.0", "", { "dependencies": { "file-uri-to-path": "1.0.0" } }, "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="],
+
+ "bn.js": ["bn.js@5.2.2", "", {}, "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw=="],
+
+ "borsh": ["borsh@0.7.0", "", { "dependencies": { "bn.js": "^5.2.0", "bs58": "^4.0.0", "text-encoding-utf-8": "^1.0.2" } }, "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA=="],
+
+ "brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
+
+ "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
+
+ "browserslist": ["browserslist@4.24.4", "", { "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" } }, "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A=="],
+
+ "bs-logger": ["bs-logger@0.2.6", "", { "dependencies": { "fast-json-stable-stringify": "2.x" } }, "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog=="],
+
+ "bs58": ["bs58@5.0.0", "", { "dependencies": { "base-x": "^4.0.0" } }, "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ=="],
+
+ "bser": ["bser@2.1.1", "", { "dependencies": { "node-int64": "^0.4.0" } }, "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="],
+
+ "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="],
+
+ "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="],
+
+ "bufferutil": ["bufferutil@4.0.9", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw=="],
+
+ "bun-types": ["bun-types@1.2.10", "", { "dependencies": { "@types/node": "*" } }, "sha512-b5ITZMnVdf3m1gMvJHG+gIfeJHiQPJak0f7925Hxu6ZN5VKA8AGy4GZ4lM+Xkn6jtWxg5S3ldWvfmXdvnkp3GQ=="],
+
+ "cache-base": ["cache-base@1.0.1", "", { "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" } }, "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ=="],
+
+ "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="],
+
+ "camelcase": ["camelcase@6.3.0", "", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="],
+
+ "caniuse-lite": ["caniuse-lite@1.0.30001715", "", {}, "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw=="],
+
+ "capture-exit": ["capture-exit@2.0.0", "", { "dependencies": { "rsvp": "^4.8.4" } }, "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g=="],
+
+ "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
+
+ "char-regex": ["char-regex@1.0.2", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="],
+
+ "ci-info": ["ci-info@3.9.0", "", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="],
+
+ "cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="],
+
+ "class-utils": ["class-utils@0.3.6", "", { "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" } }, "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg=="],
+
+ "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="],
+
+ "co": ["co@4.6.0", "", {}, "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="],
+
+ "collect-v8-coverage": ["collect-v8-coverage@1.0.2", "", {}, "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q=="],
+
+ "collection-visit": ["collection-visit@1.0.0", "", { "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw=="],
+
+ "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
+
+ "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
+
+ "commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="],
+
+ "component-emitter": ["component-emitter@1.3.1", "", {}, "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ=="],
+
+ "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
+
+ "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="],
+
+ "copy-descriptor": ["copy-descriptor@0.1.1", "", {}, "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw=="],
+
+ "create-jest": ["create-jest@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-config": "^29.7.0", "jest-util": "^29.7.0", "prompts": "^2.0.1" }, "bin": { "create-jest": "bin/create-jest.js" } }, "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q=="],
+
+ "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
+
+ "debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="],
+
+ "decode-uri-component": ["decode-uri-component@0.2.2", "", {}, "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="],
+
+ "dedent": ["dedent@1.5.3", "", { "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, "optionalPeers": ["babel-plugin-macros"] }, "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ=="],
+
+ "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="],
+
+ "define-property": ["define-property@2.0.2", "", { "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" } }, "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ=="],
+
+ "delay": ["delay@5.0.0", "", {}, "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw=="],
+
+ "detect-newline": ["detect-newline@3.1.0", "", {}, "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="],
+
+ "diff-sequences": ["diff-sequences@29.6.3", "", {}, "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q=="],
+
+ "electron-to-chromium": ["electron-to-chromium@1.5.142", "", {}, "sha512-Ah2HgkTu/9RhTDNThBtzu2Wirdy4DC9b0sMT1pUhbkZQ5U/iwmE+PHZX1MpjD5IkJCc2wSghgGG/B04szAx07w=="],
+
+ "emittery": ["emittery@0.13.1", "", {}, "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ=="],
+
+ "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
+
+ "end-of-stream": ["end-of-stream@1.4.4", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="],
+
+ "error-ex": ["error-ex@1.3.2", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="],
+
+ "es6-promise": ["es6-promise@4.2.8", "", {}, "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="],
+
+ "es6-promisify": ["es6-promisify@5.0.0", "", { "dependencies": { "es6-promise": "^4.0.3" } }, "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ=="],
+
+ "esbuild": ["esbuild@0.14.54", "", { "optionalDependencies": { "@esbuild/linux-loong64": "0.14.54", "esbuild-android-64": "0.14.54", "esbuild-android-arm64": "0.14.54", "esbuild-darwin-64": "0.14.54", "esbuild-darwin-arm64": "0.14.54", "esbuild-freebsd-64": "0.14.54", "esbuild-freebsd-arm64": "0.14.54", "esbuild-linux-32": "0.14.54", "esbuild-linux-64": "0.14.54", "esbuild-linux-arm": "0.14.54", "esbuild-linux-arm64": "0.14.54", "esbuild-linux-mips64le": "0.14.54", "esbuild-linux-ppc64le": "0.14.54", "esbuild-linux-riscv64": "0.14.54", "esbuild-linux-s390x": "0.14.54", "esbuild-netbsd-64": "0.14.54", "esbuild-openbsd-64": "0.14.54", "esbuild-sunos-64": "0.14.54", "esbuild-windows-32": "0.14.54", "esbuild-windows-64": "0.14.54", "esbuild-windows-arm64": "0.14.54" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA=="],
+
+ "esbuild-android-64": ["esbuild-android-64@0.14.54", "", { "os": "android", "cpu": "x64" }, "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ=="],
+
+ "esbuild-android-arm64": ["esbuild-android-arm64@0.14.54", "", { "os": "android", "cpu": "arm64" }, "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg=="],
+
+ "esbuild-darwin-64": ["esbuild-darwin-64@0.14.54", "", { "os": "darwin", "cpu": "x64" }, "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug=="],
+
+ "esbuild-darwin-arm64": ["esbuild-darwin-arm64@0.14.54", "", { "os": "darwin", "cpu": "arm64" }, "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw=="],
+
+ "esbuild-freebsd-64": ["esbuild-freebsd-64@0.14.54", "", { "os": "freebsd", "cpu": "x64" }, "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg=="],
+
+ "esbuild-freebsd-arm64": ["esbuild-freebsd-arm64@0.14.54", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q=="],
+
+ "esbuild-jest": ["esbuild-jest@0.5.0", "", { "dependencies": { "@babel/core": "^7.12.17", "@babel/plugin-transform-modules-commonjs": "^7.12.13", "babel-jest": "^26.6.3" }, "peerDependencies": { "esbuild": ">=0.8.50" } }, "sha512-AMZZCdEpXfNVOIDvURlqYyHwC8qC1/BFjgsrOiSL1eyiIArVtHL8YAC83Shhn16cYYoAWEW17yZn0W/RJKJKHQ=="],
+
+ "esbuild-linux-32": ["esbuild-linux-32@0.14.54", "", { "os": "linux", "cpu": "ia32" }, "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw=="],
+
+ "esbuild-linux-64": ["esbuild-linux-64@0.14.54", "", { "os": "linux", "cpu": "x64" }, "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg=="],
+
+ "esbuild-linux-arm": ["esbuild-linux-arm@0.14.54", "", { "os": "linux", "cpu": "arm" }, "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw=="],
+
+ "esbuild-linux-arm64": ["esbuild-linux-arm64@0.14.54", "", { "os": "linux", "cpu": "arm64" }, "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig=="],
+
+ "esbuild-linux-mips64le": ["esbuild-linux-mips64le@0.14.54", "", { "os": "linux", "cpu": "none" }, "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw=="],
+
+ "esbuild-linux-ppc64le": ["esbuild-linux-ppc64le@0.14.54", "", { "os": "linux", "cpu": "ppc64" }, "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ=="],
+
+ "esbuild-linux-riscv64": ["esbuild-linux-riscv64@0.14.54", "", { "os": "linux", "cpu": "none" }, "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg=="],
+
+ "esbuild-linux-s390x": ["esbuild-linux-s390x@0.14.54", "", { "os": "linux", "cpu": "s390x" }, "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA=="],
+
+ "esbuild-netbsd-64": ["esbuild-netbsd-64@0.14.54", "", { "os": "none", "cpu": "x64" }, "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w=="],
+
+ "esbuild-openbsd-64": ["esbuild-openbsd-64@0.14.54", "", { "os": "openbsd", "cpu": "x64" }, "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw=="],
+
+ "esbuild-sunos-64": ["esbuild-sunos-64@0.14.54", "", { "os": "sunos", "cpu": "x64" }, "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw=="],
+
+ "esbuild-windows-32": ["esbuild-windows-32@0.14.54", "", { "os": "win32", "cpu": "ia32" }, "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w=="],
+
+ "esbuild-windows-64": ["esbuild-windows-64@0.14.54", "", { "os": "win32", "cpu": "x64" }, "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ=="],
+
+ "esbuild-windows-arm64": ["esbuild-windows-arm64@0.14.54", "", { "os": "win32", "cpu": "arm64" }, "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg=="],
+
+ "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
+
+ "escape-string-regexp": ["escape-string-regexp@2.0.0", "", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="],
+
+ "esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="],
+
+ "eventemitter3": ["eventemitter3@5.0.1", "", {}, "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="],
+
+ "exec-sh": ["exec-sh@0.3.6", "", {}, "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w=="],
+
+ "execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="],
+
+ "exit": ["exit@0.1.2", "", {}, "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ=="],
+
+ "expand-brackets": ["expand-brackets@2.1.4", "", { "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA=="],
+
+ "expect": ["expect@29.7.0", "", { "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw=="],
+
+ "extend-shallow": ["extend-shallow@3.0.2", "", { "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" } }, "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q=="],
+
+ "extglob": ["extglob@2.0.4", "", { "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", "fragment-cache": "^0.2.1", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw=="],
+
+ "eyes": ["eyes@0.1.8", "", {}, "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="],
+
+ "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
+
+ "fast-stable-stringify": ["fast-stable-stringify@1.0.0", "", {}, "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag=="],
+
+ "fastestsmallesttextencoderdecoder": ["fastestsmallesttextencoderdecoder@1.0.22", "", {}, "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw=="],
+
+ "fb-watchman": ["fb-watchman@2.0.2", "", { "dependencies": { "bser": "2.1.1" } }, "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA=="],
+
+ "file-uri-to-path": ["file-uri-to-path@1.0.0", "", {}, "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="],
+
+ "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
+
+ "find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="],
+
+ "for-in": ["for-in@1.0.2", "", {}, "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ=="],
+
+ "fragment-cache": ["fragment-cache@0.2.1", "", { "dependencies": { "map-cache": "^0.2.2" } }, "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA=="],
+
+ "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="],
+
+ "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
+
+ "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="],
+
+ "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="],
+
+ "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="],
+
+ "get-package-type": ["get-package-type@0.1.0", "", {}, "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="],
+
+ "get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="],
+
+ "get-value": ["get-value@2.0.6", "", {}, "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA=="],
+
+ "glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="],
+
+ "globals": ["globals@11.12.0", "", {}, "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="],
+
+ "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
+
+ "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
+
+ "has-value": ["has-value@1.0.0", "", { "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" } }, "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw=="],
+
+ "has-values": ["has-values@1.0.0", "", { "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" } }, "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ=="],
+
+ "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
+
+ "html-escaper": ["html-escaper@2.0.2", "", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="],
+
+ "human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="],
+
+ "humanize-ms": ["humanize-ms@1.2.1", "", { "dependencies": { "ms": "^2.0.0" } }, "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ=="],
+
+ "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="],
+
+ "import-local": ["import-local@3.2.0", "", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="],
+
+ "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="],
+
+ "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="],
+
+ "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
+
+ "is-accessor-descriptor": ["is-accessor-descriptor@1.0.1", "", { "dependencies": { "hasown": "^2.0.0" } }, "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA=="],
+
+ "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="],
+
+ "is-buffer": ["is-buffer@1.1.6", "", {}, "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="],
+
+ "is-ci": ["is-ci@2.0.0", "", { "dependencies": { "ci-info": "^2.0.0" }, "bin": { "is-ci": "bin.js" } }, "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w=="],
+
+ "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="],
+
+ "is-data-descriptor": ["is-data-descriptor@1.0.1", "", { "dependencies": { "hasown": "^2.0.0" } }, "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw=="],
+
+ "is-descriptor": ["is-descriptor@1.0.3", "", { "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" } }, "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw=="],
+
+ "is-extendable": ["is-extendable@1.0.1", "", { "dependencies": { "is-plain-object": "^2.0.4" } }, "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA=="],
+
+ "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
+
+ "is-generator-fn": ["is-generator-fn@2.1.0", "", {}, "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="],
+
+ "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
+
+ "is-plain-object": ["is-plain-object@2.0.4", "", { "dependencies": { "isobject": "^3.0.1" } }, "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og=="],
+
+ "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="],
+
+ "is-typedarray": ["is-typedarray@1.0.0", "", {}, "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="],
+
+ "is-windows": ["is-windows@1.0.2", "", {}, "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="],
+
+ "isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="],
+
+ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
+
+ "isobject": ["isobject@3.0.1", "", {}, "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="],
+
+ "isomorphic-ws": ["isomorphic-ws@4.0.1", "", { "peerDependencies": { "ws": "*" } }, "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w=="],
+
+ "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="],
+
+ "istanbul-lib-instrument": ["istanbul-lib-instrument@5.2.1", "", { "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" } }, "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg=="],
+
+ "istanbul-lib-report": ["istanbul-lib-report@3.0.1", "", { "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw=="],
+
+ "istanbul-lib-source-maps": ["istanbul-lib-source-maps@4.0.1", "", { "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" } }, "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw=="],
+
+ "istanbul-reports": ["istanbul-reports@3.1.7", "", { "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g=="],
+
+ "jayson": ["jayson@4.2.0", "", { "dependencies": { "@types/connect": "^3.4.33", "@types/node": "^12.12.54", "@types/ws": "^7.4.4", "commander": "^2.20.3", "delay": "^5.0.0", "es6-promisify": "^5.0.0", "eyes": "^0.1.8", "isomorphic-ws": "^4.0.1", "json-stringify-safe": "^5.0.1", "stream-json": "^1.9.1", "uuid": "^8.3.2", "ws": "^7.5.10" }, "bin": { "jayson": "bin/jayson.js" } }, "sha512-VfJ9t1YLwacIubLhONk0KFeosUBwstRWQ0IRT1KDjEjnVnSOVHC3uwugyV7L0c7R9lpVyrUGT2XWiBA1UTtpyg=="],
+
+ "jest": ["jest@29.7.0", "", { "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", "import-local": "^3.0.2", "jest-cli": "^29.7.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "bin/jest.js" } }, "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw=="],
+
+ "jest-changed-files": ["jest-changed-files@29.7.0", "", { "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", "p-limit": "^3.1.0" } }, "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w=="],
+
+ "jest-circus": ["jest-circus@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", "jest-each": "^29.7.0", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-runtime": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "p-limit": "^3.1.0", "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw=="],
+
+ "jest-cli": ["jest-cli@29.7.0", "", { "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "chalk": "^4.0.0", "create-jest": "^29.7.0", "exit": "^0.1.2", "import-local": "^3.0.2", "jest-config": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "bin/jest.js" } }, "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg=="],
+
+ "jest-config": ["jest-config@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "jest-circus": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-get-type": "^29.6.3", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-runner": "^29.7.0", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "@types/node": "*", "ts-node": ">=9.0.0" }, "optionalPeers": ["@types/node", "ts-node"] }, "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ=="],
+
+ "jest-diff": ["jest-diff@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw=="],
+
+ "jest-docblock": ["jest-docblock@29.7.0", "", { "dependencies": { "detect-newline": "^3.0.0" } }, "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g=="],
+
+ "jest-each": ["jest-each@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "jest-util": "^29.7.0", "pretty-format": "^29.7.0" } }, "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ=="],
+
+ "jest-environment-node": ["jest-environment-node@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "jest-mock": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw=="],
+
+ "jest-get-type": ["jest-get-type@29.6.3", "", {}, "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw=="],
+
+ "jest-haste-map": ["jest-haste-map@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, "optionalDependencies": { "fsevents": "^2.3.2" } }, "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA=="],
+
+ "jest-leak-detector": ["jest-leak-detector@29.7.0", "", { "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw=="],
+
+ "jest-matcher-utils": ["jest-matcher-utils@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" } }, "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g=="],
+
+ "jest-message-util": ["jest-message-util@29.7.0", "", { "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w=="],
+
+ "jest-mock": ["jest-mock@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "jest-util": "^29.7.0" } }, "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw=="],
+
+ "jest-pnp-resolver": ["jest-pnp-resolver@1.2.3", "", { "peerDependencies": { "jest-resolve": "*" }, "optionalPeers": ["jest-resolve"] }, "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w=="],
+
+ "jest-regex-util": ["jest-regex-util@29.6.3", "", {}, "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg=="],
+
+ "jest-resolve": ["jest-resolve@29.7.0", "", { "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", "jest-util": "^29.7.0", "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" } }, "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA=="],
+
+ "jest-resolve-dependencies": ["jest-resolve-dependencies@29.7.0", "", { "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" } }, "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA=="],
+
+ "jest-runner": ["jest-runner@29.7.0", "", { "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.7.0", "jest-environment-node": "^29.7.0", "jest-haste-map": "^29.7.0", "jest-leak-detector": "^29.7.0", "jest-message-util": "^29.7.0", "jest-resolve": "^29.7.0", "jest-runtime": "^29.7.0", "jest-util": "^29.7.0", "jest-watcher": "^29.7.0", "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ=="],
+
+ "jest-runtime": ["jest-runtime@29.7.0", "", { "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", "@jest/globals": "^29.7.0", "@jest/source-map": "^29.6.3", "@jest/test-result": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-message-util": "^29.7.0", "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ=="],
+
+ "jest-serializer": ["jest-serializer@26.6.2", "", { "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.4" } }, "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g=="],
+
+ "jest-snapshot": ["jest-snapshot@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", "@jest/expect-utils": "^29.7.0", "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", "expect": "^29.7.0", "graceful-fs": "^4.2.9", "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0", "natural-compare": "^1.4.0", "pretty-format": "^29.7.0", "semver": "^7.5.3" } }, "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw=="],
+
+ "jest-util": ["jest-util@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" } }, "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA=="],
+
+ "jest-validate": ["jest-validate@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "leven": "^3.1.0", "pretty-format": "^29.7.0" } }, "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw=="],
+
+ "jest-watcher": ["jest-watcher@29.7.0", "", { "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", "jest-util": "^29.7.0", "string-length": "^4.0.1" } }, "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g=="],
+
+ "jest-worker": ["jest-worker@29.7.0", "", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="],
+
+ "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
+
+ "js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="],
+
+ "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="],
+
+ "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="],
+
+ "json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="],
+
+ "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="],
+
+ "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="],
+
+ "kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="],
+
+ "leven": ["leven@3.1.0", "", {}, "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="],
+
+ "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="],
+
+ "locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="],
+
+ "lodash.memoize": ["lodash.memoize@4.1.2", "", {}, "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="],
+
+ "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="],
+
+ "make-dir": ["make-dir@4.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="],
+
+ "make-error": ["make-error@1.3.6", "", {}, "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw=="],
+
+ "makeerror": ["makeerror@1.0.12", "", { "dependencies": { "tmpl": "1.0.5" } }, "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg=="],
+
+ "map-cache": ["map-cache@0.2.2", "", {}, "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg=="],
+
+ "map-visit": ["map-visit@1.0.0", "", { "dependencies": { "object-visit": "^1.0.0" } }, "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w=="],
+
+ "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="],
+
+ "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
+
+ "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="],
+
+ "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
+
+ "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
+
+ "mixin-deep": ["mixin-deep@1.3.2", "", { "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" } }, "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA=="],
+
+ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
+
+ "nanomatch": ["nanomatch@1.2.13", "", { "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA=="],
+
+ "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="],
+
+ "nice-try": ["nice-try@1.0.5", "", {}, "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="],
+
+ "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="],
+
+ "node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="],
+
+ "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="],
+
+ "node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="],
+
+ "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="],
+
+ "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="],
+
+ "object-copy": ["object-copy@0.1.0", "", { "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" } }, "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ=="],
+
+ "object-visit": ["object-visit@1.0.1", "", { "dependencies": { "isobject": "^3.0.0" } }, "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA=="],
+
+ "object.pick": ["object.pick@1.3.0", "", { "dependencies": { "isobject": "^3.0.1" } }, "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ=="],
+
+ "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
+
+ "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="],
+
+ "p-finally": ["p-finally@1.0.0", "", {}, "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow=="],
+
+ "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="],
+
+ "p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="],
+
+ "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="],
+
+ "parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="],
+
+ "pascalcase": ["pascalcase@0.1.1", "", {}, "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw=="],
+
+ "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="],
+
+ "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="],
+
+ "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
+
+ "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="],
+
+ "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
+
+ "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
+
+ "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="],
+
+ "pkg-dir": ["pkg-dir@4.2.0", "", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="],
+
+ "posix-character-classes": ["posix-character-classes@0.1.1", "", {}, "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg=="],
+
+ "pretty-format": ["pretty-format@29.7.0", "", { "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ=="],
+
+ "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="],
+
+ "pump": ["pump@3.0.2", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw=="],
+
+ "pure-rand": ["pure-rand@6.1.0", "", {}, "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA=="],
+
+ "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="],
+
+ "regenerator-runtime": ["regenerator-runtime@0.14.1", "", {}, "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="],
+
+ "regex-not": ["regex-not@1.0.2", "", { "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A=="],
+
+ "remove-trailing-separator": ["remove-trailing-separator@1.1.0", "", {}, "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw=="],
+
+ "repeat-element": ["repeat-element@1.1.4", "", {}, "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ=="],
+
+ "repeat-string": ["repeat-string@1.6.1", "", {}, "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w=="],
+
+ "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="],
+
+ "resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="],
+
+ "resolve-cwd": ["resolve-cwd@3.0.0", "", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="],
+
+ "resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="],
+
+ "resolve-url": ["resolve-url@0.2.1", "", {}, "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg=="],
+
+ "resolve.exports": ["resolve.exports@2.0.3", "", {}, "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A=="],
+
+ "ret": ["ret@0.1.15", "", {}, "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="],
+
+ "rpc-websockets": ["rpc-websockets@9.1.1", "", { "dependencies": { "@swc/helpers": "^0.5.11", "@types/uuid": "^8.3.4", "@types/ws": "^8.2.2", "buffer": "^6.0.3", "eventemitter3": "^5.0.1", "uuid": "^8.3.2", "ws": "^8.5.0" }, "optionalDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" } }, "sha512-1IXGM/TfPT6nfYMIXkJdzn+L4JEsmb0FL1O2OBjaH03V3yuUDdKFulGLMFG6ErV+8pZ5HVC0limve01RyO+saA=="],
+
+ "rsvp": ["rsvp@4.8.5", "", {}, "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA=="],
+
+ "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
+
+ "safe-regex": ["safe-regex@1.1.0", "", { "dependencies": { "ret": "~0.1.10" } }, "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg=="],
+
+ "sane": ["sane@4.1.0", "", { "dependencies": { "@cnakazawa/watch": "^1.0.3", "anymatch": "^2.0.0", "capture-exit": "^2.0.0", "exec-sh": "^0.3.2", "execa": "^1.0.0", "fb-watchman": "^2.0.0", "micromatch": "^3.1.4", "minimist": "^1.1.1", "walker": "~1.0.5" }, "bin": { "sane": "./src/cli.js" } }, "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA=="],
+
+ "semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="],
+
+ "set-value": ["set-value@2.0.1", "", { "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" } }, "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw=="],
+
+ "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
+
+ "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
+
+ "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
+
+ "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="],
+
+ "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="],
+
+ "snapdragon": ["snapdragon@0.8.2", "", { "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "map-cache": "^0.2.2", "source-map": "^0.5.6", "source-map-resolve": "^0.5.0", "use": "^3.1.0" } }, "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg=="],
+
+ "snapdragon-node": ["snapdragon-node@2.1.1", "", { "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" } }, "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw=="],
+
+ "snapdragon-util": ["snapdragon-util@3.0.1", "", { "dependencies": { "kind-of": "^3.2.0" } }, "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ=="],
+
+ "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
+
+ "source-map-resolve": ["source-map-resolve@0.5.3", "", { "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", "urix": "^0.1.0" } }, "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw=="],
+
+ "source-map-support": ["source-map-support@0.5.13", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w=="],
+
+ "source-map-url": ["source-map-url@0.4.1", "", {}, "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw=="],
+
+ "split-string": ["split-string@3.1.0", "", { "dependencies": { "extend-shallow": "^3.0.0" } }, "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw=="],
+
+ "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="],
+
+ "stack-utils": ["stack-utils@2.0.6", "", { "dependencies": { "escape-string-regexp": "^2.0.0" } }, "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="],
+
+ "static-extend": ["static-extend@0.1.2", "", { "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" } }, "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g=="],
+
+ "stream-chain": ["stream-chain@2.2.5", "", {}, "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA=="],
+
+ "stream-json": ["stream-json@1.9.1", "", { "dependencies": { "stream-chain": "^2.2.5" } }, "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw=="],
+
+ "string-length": ["string-length@4.0.2", "", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="],
+
+ "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
+
+ "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
+
+ "strip-bom": ["strip-bom@4.0.0", "", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="],
+
+ "strip-eof": ["strip-eof@1.0.0", "", {}, "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q=="],
+
+ "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="],
+
+ "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="],
+
+ "superstruct": ["superstruct@0.15.5", "", {}, "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ=="],
+
+ "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
+
+ "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
+
+ "test-exclude": ["test-exclude@6.0.0", "", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w=="],
+
+ "text-encoding-utf-8": ["text-encoding-utf-8@1.0.2", "", {}, "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg=="],
+
+ "tmpl": ["tmpl@1.0.5", "", {}, "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="],
+
+ "to-object-path": ["to-object-path@0.3.0", "", { "dependencies": { "kind-of": "^3.0.2" } }, "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg=="],
+
+ "to-regex": ["to-regex@3.0.2", "", { "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" } }, "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw=="],
+
+ "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
+
+ "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="],
+
+ "ts-jest": ["ts-jest@29.2.0", "", { "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", "jest-util": "^29.0.0", "json5": "^2.2.3", "lodash.memoize": "4.x", "make-error": "1.x", "semver": "^7.5.3", "yargs-parser": "^21.0.1" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", "@jest/transform": "^29.0.0", "@jest/types": "^29.0.0", "babel-jest": "^29.0.0", "jest": "^29.0.0", "typescript": ">=4.3 <6" }, "optionalPeers": ["@babel/core", "@jest/transform", "@jest/types", "babel-jest"], "bin": { "ts-jest": "cli.js" } }, "sha512-eFmkE9MG0+oT6nqSOcUwL+2UUmK2IvhhUV8hFDsCHnc++v2WCCbQQZh5vvjsa8sgOY/g9T0325hmkEmi6rninA=="],
+
+ "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
+
+ "type-detect": ["type-detect@4.0.8", "", {}, "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="],
+
+ "type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="],
+
+ "typedarray-to-buffer": ["typedarray-to-buffer@3.1.5", "", { "dependencies": { "is-typedarray": "^1.0.0" } }, "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q=="],
+
+ "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
+
+ "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
+
+ "union-value": ["union-value@1.0.1", "", { "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" } }, "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg=="],
+
+ "unset-value": ["unset-value@1.0.0", "", { "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" } }, "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ=="],
+
+ "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="],
+
+ "urix": ["urix@0.1.0", "", {}, "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg=="],
+
+ "use": ["use@3.1.1", "", {}, "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="],
+
+ "utf-8-validate": ["utf-8-validate@5.0.10", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ=="],
+
+ "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="],
+
+ "v8-to-istanbul": ["v8-to-istanbul@9.3.0", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" } }, "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA=="],
+
+ "walker": ["walker@1.0.8", "", { "dependencies": { "makeerror": "1.0.12" } }, "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ=="],
+
+ "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="],
+
+ "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="],
+
+ "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
+
+ "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="],
+
+ "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
+
+ "write-file-atomic": ["write-file-atomic@3.0.3", "", { "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q=="],
+
+ "ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="],
+
+ "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="],
+
+ "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="],
+
+ "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="],
+
+ "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="],
+
+ "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
+
+ "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
+
+ "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
+
+ "@istanbuljs/load-nyc-config/camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="],
+
+ "@jest/core/@jest/transform": ["@jest/transform@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" } }, "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw=="],
+
+ "@jest/reporters/@jest/transform": ["@jest/transform@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" } }, "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw=="],
+
+ "@jest/reporters/istanbul-lib-instrument": ["istanbul-lib-instrument@6.0.3", "", { "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" } }, "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q=="],
+
+ "@jest/transform/@jest/types": ["@jest/types@26.6.2", "", { "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ=="],
+
+ "@jest/transform/convert-source-map": ["convert-source-map@1.9.0", "", {}, "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="],
+
+ "@jest/transform/jest-haste-map": ["jest-haste-map@26.6.2", "", { "dependencies": { "@jest/types": "^26.6.2", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.4", "jest-regex-util": "^26.0.0", "jest-serializer": "^26.6.2", "jest-util": "^26.6.2", "jest-worker": "^26.6.2", "micromatch": "^4.0.2", "sane": "^4.0.3", "walker": "^1.0.7" }, "optionalDependencies": { "fsevents": "^2.1.2" } }, "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w=="],
+
+ "@jest/transform/jest-regex-util": ["jest-regex-util@26.0.0", "", {}, "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A=="],
+
+ "@jest/transform/jest-util": ["jest-util@26.6.2", "", { "dependencies": { "@jest/types": "^26.6.2", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "is-ci": "^2.0.0", "micromatch": "^4.0.2" } }, "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q=="],
+
+ "@solana/errors/chalk": ["chalk@5.4.1", "", {}, "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w=="],
+
+ "@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="],
+
+ "@solana/web3.js/bs58": ["bs58@4.0.1", "", { "dependencies": { "base-x": "^3.0.2" } }, "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw=="],
+
+ "@solana/web3.js/superstruct": ["superstruct@2.0.2", "", {}, "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A=="],
+
+ "@types/bs58/bs58": ["bs58@4.0.1", "", { "dependencies": { "base-x": "^3.0.2" } }, "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw=="],
+
+ "babel-jest/@jest/types": ["@jest/types@26.6.2", "", { "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ=="],
+
+ "base/define-property": ["define-property@1.0.0", "", { "dependencies": { "is-descriptor": "^1.0.0" } }, "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA=="],
+
+ "borsh/bs58": ["bs58@4.0.1", "", { "dependencies": { "base-x": "^3.0.2" } }, "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw=="],
+
+ "chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
+
+ "class-utils/define-property": ["define-property@0.2.5", "", { "dependencies": { "is-descriptor": "^0.1.0" } }, "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA=="],
+
+ "expand-brackets/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],
+
+ "expand-brackets/define-property": ["define-property@0.2.5", "", { "dependencies": { "is-descriptor": "^0.1.0" } }, "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA=="],
+
+ "expand-brackets/extend-shallow": ["extend-shallow@2.0.1", "", { "dependencies": { "is-extendable": "^0.1.0" } }, "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="],
+
+ "extglob/define-property": ["define-property@1.0.0", "", { "dependencies": { "is-descriptor": "^1.0.0" } }, "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA=="],
+
+ "extglob/extend-shallow": ["extend-shallow@2.0.1", "", { "dependencies": { "is-extendable": "^0.1.0" } }, "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="],
+
+ "has-values/is-number": ["is-number@3.0.0", "", { "dependencies": { "kind-of": "^3.0.2" } }, "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg=="],
+
+ "has-values/kind-of": ["kind-of@4.0.0", "", { "dependencies": { "is-buffer": "^1.1.5" } }, "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw=="],
+
+ "is-ci/ci-info": ["ci-info@2.0.0", "", {}, "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="],
+
+ "istanbul-lib-instrument/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
+
+ "jayson/@types/node": ["@types/node@12.20.55", "", {}, "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="],
+
+ "jest-config/babel-jest": ["babel-jest@29.7.0", "", { "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.8.0" } }, "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg=="],
+
+ "jest-runner/@jest/transform": ["@jest/transform@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" } }, "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw=="],
+
+ "jest-runtime/@jest/transform": ["@jest/transform@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" } }, "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw=="],
+
+ "jest-snapshot/@jest/transform": ["@jest/transform@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" } }, "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw=="],
+
+ "jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="],
+
+ "object-copy/define-property": ["define-property@0.2.5", "", { "dependencies": { "is-descriptor": "^0.1.0" } }, "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA=="],
+
+ "object-copy/kind-of": ["kind-of@3.2.2", "", { "dependencies": { "is-buffer": "^1.1.5" } }, "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ=="],
+
+ "p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="],
+
+ "rpc-websockets/@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="],
+
+ "rpc-websockets/ws": ["ws@8.18.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w=="],
+
+ "sane/anymatch": ["anymatch@2.0.0", "", { "dependencies": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" } }, "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw=="],
+
+ "sane/execa": ["execa@1.0.0", "", { "dependencies": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" } }, "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA=="],
+
+ "sane/micromatch": ["micromatch@3.1.10", "", { "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } }, "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg=="],
+
+ "set-value/extend-shallow": ["extend-shallow@2.0.1", "", { "dependencies": { "is-extendable": "^0.1.0" } }, "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="],
+
+ "set-value/is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="],
+
+ "snapdragon/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],
+
+ "snapdragon/define-property": ["define-property@0.2.5", "", { "dependencies": { "is-descriptor": "^0.1.0" } }, "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA=="],
+
+ "snapdragon/extend-shallow": ["extend-shallow@2.0.1", "", { "dependencies": { "is-extendable": "^0.1.0" } }, "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="],
+
+ "snapdragon/source-map": ["source-map@0.5.7", "", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="],
+
+ "snapdragon-node/define-property": ["define-property@1.0.0", "", { "dependencies": { "is-descriptor": "^1.0.0" } }, "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA=="],
+
+ "snapdragon-util/kind-of": ["kind-of@3.2.2", "", { "dependencies": { "is-buffer": "^1.1.5" } }, "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ=="],
+
+ "static-extend/define-property": ["define-property@0.2.5", "", { "dependencies": { "is-descriptor": "^0.1.0" } }, "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA=="],
+
+ "to-object-path/kind-of": ["kind-of@3.2.2", "", { "dependencies": { "is-buffer": "^1.1.5" } }, "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ=="],
+
+ "union-value/is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="],
+
+ "unset-value/has-value": ["has-value@0.3.1", "", { "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" } }, "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q=="],
+
+ "wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
+
+ "@jest/core/@jest/transform/write-file-atomic": ["write-file-atomic@4.0.2", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" } }, "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="],
+
+ "@jest/reporters/@jest/transform/write-file-atomic": ["write-file-atomic@4.0.2", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" } }, "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="],
+
+ "@jest/transform/@jest/types/@types/yargs": ["@types/yargs@15.0.19", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA=="],
+
+ "@jest/transform/jest-haste-map/jest-worker": ["jest-worker@26.6.2", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" } }, "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ=="],
+
+ "@solana/web3.js/bs58/base-x": ["base-x@3.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA=="],
+
+ "@types/bs58/bs58/base-x": ["base-x@3.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA=="],
+
+ "babel-jest/@jest/types/@types/yargs": ["@types/yargs@15.0.19", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA=="],
+
+ "borsh/bs58/base-x": ["base-x@3.0.11", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA=="],
+
+ "class-utils/define-property/is-descriptor": ["is-descriptor@0.1.7", "", { "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" } }, "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg=="],
+
+ "expand-brackets/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="],
+
+ "expand-brackets/define-property/is-descriptor": ["is-descriptor@0.1.7", "", { "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" } }, "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg=="],
+
+ "expand-brackets/extend-shallow/is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="],
+
+ "extglob/extend-shallow/is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="],
+
+ "has-values/is-number/kind-of": ["kind-of@3.2.2", "", { "dependencies": { "is-buffer": "^1.1.5" } }, "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ=="],
+
+ "jest-config/babel-jest/@jest/transform": ["@jest/transform@29.7.0", "", { "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "write-file-atomic": "^4.0.2" } }, "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw=="],
+
+ "jest-config/babel-jest/babel-preset-jest": ["babel-preset-jest@29.6.3", "", { "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA=="],
+
+ "jest-runner/@jest/transform/write-file-atomic": ["write-file-atomic@4.0.2", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" } }, "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="],
+
+ "jest-runtime/@jest/transform/write-file-atomic": ["write-file-atomic@4.0.2", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" } }, "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="],
+
+ "jest-snapshot/@jest/transform/write-file-atomic": ["write-file-atomic@4.0.2", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" } }, "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="],
+
+ "object-copy/define-property/is-descriptor": ["is-descriptor@0.1.7", "", { "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" } }, "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg=="],
+
+ "sane/anymatch/normalize-path": ["normalize-path@2.1.1", "", { "dependencies": { "remove-trailing-separator": "^1.0.1" } }, "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w=="],
+
+ "sane/execa/cross-spawn": ["cross-spawn@6.0.6", "", { "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw=="],
+
+ "sane/execa/get-stream": ["get-stream@4.1.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w=="],
+
+ "sane/execa/is-stream": ["is-stream@1.1.0", "", {}, "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="],
+
+ "sane/execa/npm-run-path": ["npm-run-path@2.0.2", "", { "dependencies": { "path-key": "^2.0.0" } }, "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw=="],
+
+ "sane/micromatch/braces": ["braces@2.3.2", "", { "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" } }, "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w=="],
+
+ "snapdragon/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="],
+
+ "snapdragon/define-property/is-descriptor": ["is-descriptor@0.1.7", "", { "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" } }, "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg=="],
+
+ "snapdragon/extend-shallow/is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="],
+
+ "static-extend/define-property/is-descriptor": ["is-descriptor@0.1.7", "", { "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" } }, "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg=="],
+
+ "unset-value/has-value/has-values": ["has-values@0.1.4", "", {}, "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ=="],
+
+ "unset-value/has-value/isobject": ["isobject@2.1.0", "", { "dependencies": { "isarray": "1.0.0" } }, "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA=="],
+
+ "jest-config/babel-jest/@jest/transform/write-file-atomic": ["write-file-atomic@4.0.2", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" } }, "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="],
+
+ "jest-config/babel-jest/babel-preset-jest/babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@29.6.3", "", { "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" } }, "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg=="],
+
+ "sane/execa/cross-spawn/path-key": ["path-key@2.0.1", "", {}, "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="],
+
+ "sane/execa/cross-spawn/semver": ["semver@5.7.2", "", { "bin": { "semver": "bin/semver" } }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
+
+ "sane/execa/cross-spawn/shebang-command": ["shebang-command@1.2.0", "", { "dependencies": { "shebang-regex": "^1.0.0" } }, "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg=="],
+
+ "sane/execa/cross-spawn/which": ["which@1.3.1", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "./bin/which" } }, "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="],
+
+ "sane/execa/npm-run-path/path-key": ["path-key@2.0.1", "", {}, "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw=="],
+
+ "sane/micromatch/braces/extend-shallow": ["extend-shallow@2.0.1", "", { "dependencies": { "is-extendable": "^0.1.0" } }, "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug=="],
+
+ "sane/micromatch/braces/fill-range": ["fill-range@4.0.0", "", { "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" } }, "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ=="],
+
+ "sane/execa/cross-spawn/shebang-command/shebang-regex": ["shebang-regex@1.0.0", "", {}, "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ=="],
+
+ "sane/micromatch/braces/extend-shallow/is-extendable": ["is-extendable@0.1.1", "", {}, "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="],
+
+ "sane/micromatch/braces/fill-range/is-number": ["is-number@3.0.0", "", { "dependencies": { "kind-of": "^3.0.2" } }, "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg=="],
+
+ "sane/micromatch/braces/fill-range/to-regex-range": ["to-regex-range@2.1.1", "", { "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } }, "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg=="],
+
+ "sane/micromatch/braces/fill-range/is-number/kind-of": ["kind-of@3.2.2", "", { "dependencies": { "is-buffer": "^1.1.5" } }, "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ=="],
+ }
+}
diff --git a/lerna.json b/lerna.json
deleted file mode 100644
index ee6a86a..0000000
--- a/lerna.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "lerna": "3.4.3",
- "version": "independent",
- "packages": ["packages/*"],
- "npmClient": "yarn",
- "useWorkspaces": true,
- "publishConfig": {
- "access": "public",
- "registry": "https://registry.npmjs.org"
- },
- "ignoreChanges": [
- "**/__tests__/**",
- "**/*.md"
- ],
- "command": {
- "publish": {
- "conventionalCommits": true,
- "allowBranch": ["master", "next"],
- "message": "chore(release): Publish"
- }
- }
-}
diff --git a/package.json b/package.json
index af37516..a2ee9ae 100644
--- a/package.json
+++ b/package.json
@@ -1,80 +1,59 @@
{
- "private": true,
- "workspaces": {
- "packages": [
- "packages/*"
- ]
- },
- "keywords": [],
- "license": "Apache-2.0",
- "engines": {
- "node": ">=6.0.0"
- },
- "scripts": {
- "bootstrap": "lerna link && lerna bootstrap",
- "build": "lerna run build",
- "start": "CI=true lerna run start --scope @oyster/common --stream --parallel --scope ",
- "start-gov": "CI=true lerna run start --scope @solana/spl-governance --scope @oyster/common --stream --parallel --scope governance",
- "build-gov": "yarn && yarn bootstrap && yarn build --scope @oyster/common --scope @solana/spl-governance --scope governance",
- "lint": "eslint 'packages/*/{src,test}/**/*.ts' && prettier -c 'packages/*/{src,test}/**/*.ts'",
- "lint:fix": "eslint --fix 'packages/*/{src,test}/**/*.ts' && prettier --write 'packages/*/{src,test}/**/*.ts'",
- "deploy": "run-s deploy:docs build deploy:apps && gh-pages -d docs",
- "deploy:docs": "lerna run docs",
- "deploy:apps": "lerna run deploy:app",
- "test": "lerna run test --concurrency 1 --stream"
- },
- "lint-staged": {
- "packages/*/{src,test}/**/*.ts": [
- "prettier --write"
- ]
- },
- "husky": {
- "hooks": {
- "pre-commit": "lint-staged"
- }
- },
- "prettier": {
- "arrowParens": "avoid",
- "semi": true,
- "singleQuote": true,
- "trailingComma": "all"
- },
- "commitlint": {
- "extends": [
- "@commitlint/config-conventional"
- ]
- },
- "dependencies": {
- "react": "16.13.1",
- "react-dom": "16.13.1"
- },
- "devDependencies": {
- "@commitlint/cli": "^8.2.0",
- "@commitlint/config-conventional": "^8.2.0",
- "@types/animejs": "^3.1.3",
- "@types/jest": "^24.0.0",
- "@types/react": "^16.9.50",
- "@types/react-dom": "^16.9.8",
- "@typescript-eslint/eslint-plugin": "^4.6.0",
- "@typescript-eslint/parser": "^4.6.0",
- "eslint": "^6.6.0",
- "eslint-config-prettier": "^6.15.0",
- "gh-pages": "^3.1.0",
- "husky": "^4.3.0",
- "jest": "24.9.0",
- "jest-config": "24.9.0",
- "lerna": "3.22.1",
- "lint-staged": "^10.5.0",
- "npm-run-all": "^4.1.5",
- "prettier": "^2.1.2",
- "rimraf": "^3.0.2",
- "ts-jest": "^24.0.0",
- "ts-node": "^9.0.0",
- "typescript": "^4.1.3"
- },
- "resolutions": {
- "react": "16.13.1",
- "react-dom": "16.13.1",
- "node-gyp": "10.3.0"
- }
+ "name": "@realms-today/spl-governance",
+ "version": "0.4.0",
+ "description": "SPL Governance Client API",
+ "author": "Solana Maintainers ",
+ "homepage": "https://github.com/solana-labs/oyster/blob/main/packages/governance-sdk/README.md",
+ "license": "MIT",
+ "main": "lib/index.js",
+ "types": "lib/index.d.ts",
+ "directories": {
+ "lib": "lib"
+ },
+ "files": ["lib"],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/solana-labs/oyster.git"
+ },
+ "sideEffects": false,
+ "scripts": {
+ "build": "tsc",
+ "test": "jest",
+ "test:bun": "bun test tests/governance/api.v3.vtxn.test.ts --timeout 30000",
+ "test:bun-t2022": "bun test tests/governance/api.v3.t2022.test.ts --timeout 30000",
+ "format": "yarn biome format --write .",
+ "lint": "yarn biome lint --write ."
+ },
+ "bugs": {
+ "url": "https://github.com/solana-labs/oyster/issues"
+ },
+ "dependencies": {
+ "@solana/web3.js": "=1.98.0",
+ "bignumber.js": "^9.0.1",
+ "bn.js": "^5.1.3",
+ "borsh": "^0.7.0",
+ "bs58": "^5.0.0",
+ "superstruct": "^0.15.2"
+ },
+ "devDependencies": {
+ "@biomejs/biome": "1.9.4",
+ "@solana/spl-token": "*",
+ "@types/bn.js": "^5.1.6",
+ "@types/bs58": "^5.0.0",
+ "@types/jest": "29.2.0",
+ "bun-types": "latest",
+ "esbuild": "^0.14.11",
+ "esbuild-jest": "^0.5.0",
+ "jest": "^29.2.0",
+ "ts-jest": "29.2.0",
+ "typescript": "^5.8.3"
+ },
+ "jest": {
+ "testTimeout": 20000,
+ "transform": {
+ "^.+\\.tsx?$": "esbuild-jest"
+ },
+ "moduleFileExtensions": ["ts", "tsx", "js", "jsx", "json", "node"]
+ },
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}
diff --git a/packages/arweave-push/.gcloudignore b/packages/arweave-push/.gcloudignore
deleted file mode 100644
index 0f9ec0f..0000000
--- a/packages/arweave-push/.gcloudignore
+++ /dev/null
@@ -1,16 +0,0 @@
-# This file specifies files that are *not* uploaded to Google Cloud Platform
-# using gcloud. It follows the same syntax as .gitignore, with the addition of
-# "#!include" directives (which insert the entries of the given .gitignore-style
-# file at that point).
-#
-# For more information, run:
-# $ gcloud topic gcloudignore
-#
-.gcloudignore
-# If you would like to upload your .git directory, .gitignore file or files
-# from your .gitignore file, remove the corresponding line
-# below:
-.git
-.gitignore
-
-node_modules
\ No newline at end of file
diff --git a/packages/arweave-push/README b/packages/arweave-push/README
deleted file mode 100644
index 493040a..0000000
--- a/packages/arweave-push/README
+++ /dev/null
@@ -1,4 +0,0 @@
-gcloud functions deploy uploadFile --runtime nodejs12 --trigger-http --allow-unauthenticated
-
-To deploy to prod, change function name to uploadFileProd in index.js, and CLUSTER url to mainnet, then
-run above with uploadFileProd
\ No newline at end of file
diff --git a/packages/arweave-push/index.js b/packages/arweave-push/index.js
deleted file mode 100644
index d159d70..0000000
--- a/packages/arweave-push/index.js
+++ /dev/null
@@ -1,348 +0,0 @@
-// [START functions_http_form_data]
-/**
- * Parses a 'multipart/form-data' upload request
- *
- * @param {Object} req Cloud Function request context.
- * @param {Object} res Cloud Function response context.
- */
-const path = require('path');
-const Arweave = require('arweave');
-const { Storage } = require('@google-cloud/storage');
-const os = require('os');
-const fs = require('fs');
-const crypto = require('crypto');
-const { Account, Connection } = require('@solana/web3.js');
-const mimeType = require('mime-types');
-const fetch = require('node-fetch');
-
-const storage = new Storage();
-const BUCKET_NAME = 'us.artifacts.principal-lane-200702.appspot.com';
-const FOLDER_NAME = 'arweave';
-const ARWEAVE_KEYNAME = 'arweave.json';
-const SOLANA_KEYNAME = 'arweave-sol-container.json';
-const CLUSTER = 'https://devnet.solana.com';
-//const CLUSTER = 'https://api.mainnet-beta.solana.com';
-const SYSTEM = '11111111111111111111111111111111';
-const MEMO = 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr';
-const KEYHOLDER = {};
-const FAIL = 'fail';
-const SUCCESS = 'success';
-const LAMPORT_MULTIPLIER = 10 ** 9;
-const WINSTON_MULTIPLIER = 10 ** 12;
-const RESERVED_TXN_MANIFEST = 'manifest.json';
-
-function generateManifest(pathMap, indexPath) {
- const manifest = {
- manifest: 'arweave/paths',
- version: '0.1.0',
- paths: pathMap,
- };
-
- if (indexPath) {
- if (!Object.keys(pathMap).includes(indexPath)) {
- throw new Error(
- `--index path not found in directory paths: ${indexPath}`,
- );
- }
- manifest.index = {
- path: indexPath,
- };
- }
-
- return manifest;
-}
-
-const getKey = async function (name) {
- if (KEYHOLDER[name]) return KEYHOLDER[name];
-
- const options = {
- destination: os.tmpdir() + '/' + name,
- };
-
- // Downloads the file
- await storage
- .bucket(BUCKET_NAME)
- .file(FOLDER_NAME + '/' + name)
- .download(options);
-
- console.log(`Key downloaded to ${os.tmpdir()}/${name}`);
-
- let rawdata = fs.readFileSync(os.tmpdir() + '/' + name);
- let key;
- try {
- key = JSON.parse(rawdata);
- } catch (e) {
- key = rawdata.toString();
- }
-
- KEYHOLDER[name] = key;
- return KEYHOLDER[name];
-};
-
-// Node.js doesn't have a built-in multipart/form-data parsing library.
-// Instead, we can use the 'busboy' library from NPM to parse these requests.
-const Busboy = require('busboy');
-const arweaveConnection = Arweave.init({
- host: 'arweave.net', // Hostname or IP address for a Arweave host
- port: 443, // Port
- protocol: 'https', // Network protocol http or https
- timeout: 20000, // Network request timeouts in milliseconds
- logging: true, // Enable network request logging
-});
-
-// FYI no streaming uploads as yet
-// https://gist.github.com/CDDelta/e2af7e02314b2e0c3b5f9eb616c645a6
-// Need to read entire thing into memory - Limits us to 2GB files. TODO come back and implemnet.
-exports.uploadFile = async (req, res) => {
- res.set('Access-Control-Allow-Origin', '*');
-
- if (req.method === 'OPTIONS') {
- // Send response to OPTIONS requests
- res.set('Access-Control-Allow-Methods', 'POST');
- res.set('Access-Control-Allow-Headers', 'Content-Type');
- res.set('Access-Control-Max-Age', '3600');
- res.status(204).send('');
- return;
- }
-
- if (req.method !== 'POST') {
- // Return a "method not allowed" error
- return res.status(405).end();
- }
- const solanaKey = await getKey(SOLANA_KEYNAME);
- const solanaConnection = new Connection(CLUSTER, 'recent');
- const solanaWallet = new Account(solanaKey);
- const arweaveWallet = await getKey(ARWEAVE_KEYNAME);
- console.log('Connections established.');
- const busboy = new Busboy({ headers: req.headers });
- const tmpdir = os.tmpdir();
-
- const fieldPromises = [];
-
- // This code will process each non-file field in the form.
- busboy.on('field', (fieldname, val) => {
- console.log('I see ' + fieldname);
- fieldPromises.push(
- new Promise(async (res, _) => {
- if (fieldname === 'transaction') {
- try {
- console.log('Calling out for txn', val);
- const transaction = await solanaConnection.getParsedConfirmedTransaction(
- val,
- );
- console.log('I got the transaction');
- // We expect the first command to be a SOL send from them to our holding account.
- // Then after that it's memos of sha256 hashes of file contents.
- const expectedSend =
- transaction.transaction.message.instructions[0];
-
- const isSystem = expectedSend.programId.toBase58() === SYSTEM;
- const isToUs =
- expectedSend.parsed.info.destination ===
- solanaWallet.publicKey.toBase58();
- console.log(
- 'Expected to send is',
- JSON.stringify(expectedSend.parsed),
- );
- if (isSystem && isToUs) {
- const amount = expectedSend.parsed.info.lamports;
- const remainingMemos = transaction.transaction.message.instructions.filter(
- i => i.programId.toBase58() === MEMO,
- );
- const memoMessages = remainingMemos.map(m => m.parsed);
- res({
- name: fieldname,
- amount,
- memoMessages,
- });
- } else
- throw new Error(
- 'No payment found because either the program wasnt the system program or it wasnt to the holding account',
- );
- } catch (e) {
- console.log(fieldname, e);
- console.log('Setting txn anyway');
- res({
- name: fieldname,
- amount: 0,
- memoMessages: [],
- });
- }
- } else if (fieldname === 'tags') {
- try {
- res({
- name: fieldname,
- ...JSON.parse(val),
- });
- } catch (e) {
- console.log(fieldname, e);
- res({
- name: fieldname,
- });
- }
- }
- }),
- );
- });
-
- const fileWrites = [];
-
- // This code will process each file uploaded.
- busboy.on('file', (fieldname, file, filename) => {
- // Note: os.tmpdir() points to an in-memory file system on GCF
- // Thus, any files in it must fit in the instance's memory.
- console.log(`Processed file ${filename}`);
- const filepath = path.join(tmpdir, filename);
-
- const writeStream = fs.createWriteStream(filepath);
- file.pipe(writeStream);
-
- // File was processed by Busboy; wait for it to be written.
- // Note: GCF may not persist saved files across invocations.
- // Persistent files must be kept in other locations
- // (such as Cloud Storage buckets).
- const promise = new Promise((resolve, reject) => {
- file.on('end', () => {
- writeStream.end();
- });
- writeStream.on('finish', resolve({ status: SUCCESS, filepath }));
- writeStream.on(
- 'error',
- reject({ status: FAIL, filepath, error: 'failed to save' }),
- );
- });
-
- fileWrites.push(promise);
- });
-
- // Triggered once all uploaded files are processed by Busboy.
- // We still need to wait for the disk writes (saves) to complete.
- const body = { messages: [] };
-
- busboy.on('finish', async () => {
- console.log('Finish');
- const filepaths = [
- ...(await Promise.all(fileWrites)),
- { filepath: RESERVED_TXN_MANIFEST, status: SUCCESS },
- ];
- const fields = await Promise.all(fieldPromises);
- const anchor = (await arweaveConnection.api.get('tx_anchor')).data;
-
- console.log('The one guy is ' + fields.map(f => f.name).join(','));
- const txn = fields.find(f => f.name === 'transaction');
- const fieldTags = fields.find(f => f.name === 'tags');
-
- if (!txn || !txn.amount) {
- body.error = 'No transaction found with payment';
- res.end(JSON.stringify(body));
- return;
- }
-
- let runningTotal = txn.amount;
-
- const conversionRates = JSON.parse(
- await (
- await fetch(
- 'https://api.coingecko.com/api/v3/simple/price?ids=solana,arweave&vs_currencies=usd',
- )
- ).text(),
- );
-
- // To figure out how much solana is required, multiply ar byte cost by this number
- const arMultiplier =
- conversionRates.arweave.usd / conversionRates.solana.usd;
-
- const paths = {};
- for (let i = 0; i < filepaths.length; i++) {
- const f = filepaths[i];
- if (f.status == FAIL) {
- body.messages.push(f);
- } else {
- const { filepath } = f;
- const parts = filepath.split('/');
- const filename = parts[parts.length - 1];
- try {
- let data, fileSizeInBytes, mime;
- if (filepath == RESERVED_TXN_MANIFEST) {
- const manifest = await generateManifest(paths, 'metadata.json');
- data = Buffer.from(JSON.stringify(manifest), 'utf8');
- fileSizeInBytes = data.byteLength;
- mime = 'application/x.arweave-manifest+json';
- } else {
- data = fs.readFileSync(filepath);
-
- // Have to get separate Buffer since buffers are stateful
- const hashSum = crypto.createHash('sha256');
- hashSum.update(data.toString());
- const hex = hashSum.digest('hex');
-
- if (!txn.memoMessages.find(m => m === hex)) {
- body.messages.push({
- filename,
- status: FAIL,
- error: `Unable to find proof that you paid for this file, your hash is ${hex}, comparing to ${txn.memoMessages.join(
- ',',
- )}`,
- });
- continue;
- }
-
- const stats = fs.statSync(filepath);
- fileSizeInBytes = stats.size;
- mime = mimeType.lookup(filepath);
- }
-
- const costSizeInWinstons = parseInt(
- await (
- await fetch(
- 'https://arweave.net/price/' + fileSizeInBytes.toString(),
- )
- ).text(),
- );
-
- const costToStoreInSolana =
- (costSizeInWinstons * arMultiplier) / WINSTON_MULTIPLIER;
-
- runningTotal -= costToStoreInSolana * LAMPORT_MULTIPLIER;
- if (runningTotal > 0) {
- const transaction = await arweaveConnection.createTransaction(
- { data: data, last_tx: anchor },
- arweaveWallet,
- );
- transaction.addTag('Content-Type', mime);
- if (fieldTags) {
- const tags =
- fieldTags[filepath.split('/')[filepath.split('/').length - 1]];
- if (tags) tags.map(t => transaction.addTag(t.name, t.value));
- }
-
- await arweaveConnection.transactions.sign(
- transaction,
- arweaveWallet,
- );
- await arweaveConnection.transactions.post(transaction);
- body.messages.push({
- filename,
- status: SUCCESS,
- transactionId: transaction.id,
- });
- paths[filename] = { id: transaction.id };
- } else {
- body.messages.push({
- filename,
- status: FAIL,
- error: `Not enough funds provided to push this file, you need at least ${costToStoreInSolana} SOL or ${costSize} AR`,
- });
- }
- } catch (e) {
- console.log(e);
- body.messages.push({ filename, status: FAIL, error: e.toString() });
- }
- }
- }
-
- res.end(JSON.stringify(body));
- });
- busboy.end(req.rawBody);
-};
-// [END functions_http_form_data]
diff --git a/packages/arweave-push/package.json b/packages/arweave-push/package.json
deleted file mode 100644
index 28ac4fb..0000000
--- a/packages/arweave-push/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "arweave-push",
- "version": "0.0.1",
- "private": true,
- "license": "Apache-2.0",
- "author": "Solana Labs",
- "repository": {
- "type": "git",
- "url": "https://github.com/solana-labs/oyster.git"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "scripts": {
- "test": "mocha test/*.test.js --timeout=60000"
- },
- "devDependencies": {
- "jest": "^27.4.7",
- "mocha": "^8.0.0",
- "proxyquire": "^2.1.0",
- "sinon": "^10.0.0"
- },
- "dependencies": {
- "@google-cloud/storage": "^5.0.0",
- "@solana/web3.js": "^1.22.0",
- "arweave": "1.10.13",
- "busboy": "^0.3.0",
- "coingecko-api": "1.0.10",
- "escape-html": "^1.0.3",
- "mime-types": "2.1.30",
- "node-fetch": "2.6.1"
- }
-}
diff --git a/packages/bridge-sdk/contracts/Address.json b/packages/bridge-sdk/contracts/Address.json
deleted file mode 100644
index dad0604..0000000
--- a/packages/bridge-sdk/contracts/Address.json
+++ /dev/null
@@ -1,8234 +0,0 @@
-{
- "contractName": "Address",
- "abi": [],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]}},\"version\":1}",
- "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220aeba45e552a4fad8095b8658473f76fdd0093be5a657405e442c7075508b502364736f6c634300060c0033",
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220aeba45e552a4fad8095b8658473f76fdd0093be5a657405e442c7075508b502364736f6c634300060c0033",
- "immutableReferences": {},
- "sourceMap": "134:7684:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
- "deployedSourceMap": "134:7684:8:-:0;;;;;;;;",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n",
- "sourcePath": "@openzeppelin/contracts/utils/Address.sol",
- "ast": {
- "absolutePath": "@openzeppelin/contracts/utils/Address.sol",
- "exportedSymbols": {
- "Address": [3595]
- },
- "id": 3596,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 3301,
- "literals": ["solidity", ">=", "0.6", ".2", "<", "0.8", ".0"],
- "nodeType": "PragmaDirective",
- "src": "33:31:8"
- },
- {
- "abstract": false,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "library",
- "documentation": {
- "id": 3302,
- "nodeType": "StructuredDocumentation",
- "src": "66:67:8",
- "text": " @dev Collection of functions related to the address type"
- },
- "fullyImplemented": true,
- "id": 3595,
- "linearizedBaseContracts": [3595],
- "name": "Address",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": {
- "id": 3318,
- "nodeType": "Block",
- "src": "792:347:8",
- "statements": [
- {
- "assignments": [3311],
- "declarations": [
- {
- "constant": false,
- "id": 3311,
- "mutability": "mutable",
- "name": "size",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3318,
- "src": "989:12:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3310,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "989:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 3312,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "989:12:8"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "1076:32:8",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "1078:28:8",
- "value": {
- "arguments": [
- {
- "name": "account",
- "nodeType": "YulIdentifier",
- "src": "1098:7:8"
- }
- ],
- "functionName": {
- "name": "extcodesize",
- "nodeType": "YulIdentifier",
- "src": "1086:11:8"
- },
- "nodeType": "YulFunctionCall",
- "src": "1086:20:8"
- },
- "variableNames": [
- {
- "name": "size",
- "nodeType": "YulIdentifier",
- "src": "1078:4:8"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 3305,
- "isOffset": false,
- "isSlot": false,
- "src": "1098:7:8",
- "valueSize": 1
- },
- {
- "declaration": 3311,
- "isOffset": false,
- "isSlot": false,
- "src": "1078:4:8",
- "valueSize": 1
- }
- ],
- "id": 3313,
- "nodeType": "InlineAssembly",
- "src": "1067:41:8"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 3316,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 3314,
- "name": "size",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3311,
- "src": "1124:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 3315,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1131:1:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1124:8:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "functionReturnParameters": 3309,
- "id": 3317,
- "nodeType": "Return",
- "src": "1117:15:8"
- }
- ]
- },
- "documentation": {
- "id": 3303,
- "nodeType": "StructuredDocumentation",
- "src": "156:565:8",
- "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ===="
- },
- "id": 3319,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "isContract",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3306,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3305,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3319,
- "src": "746:15:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3304,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "746:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "745:17:8"
- },
- "returnParameters": {
- "id": 3309,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3308,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3319,
- "src": "786:4:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 3307,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "786:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "785:6:8"
- },
- "scope": 3595,
- "src": "726:413:8",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3352,
- "nodeType": "Block",
- "src": "2127:320:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 3334,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3330,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "2153:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Address_$3595",
- "typeString": "library Address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Address_$3595",
- "typeString": "library Address"
- }
- ],
- "id": 3329,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2145:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 3328,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2145:7:8",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 3331,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2145:13:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 3332,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "balance",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "2145:21:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 3333,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3324,
- "src": "2170:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2145:31:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365",
- "id": 3335,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2178:31:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9",
- "typeString": "literal_string \"Address: insufficient balance\""
- },
- "value": "Address: insufficient balance"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9",
- "typeString": "literal_string \"Address: insufficient balance\""
- }
- ],
- "id": 3327,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "2137:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 3336,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2137:73:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3337,
- "nodeType": "ExpressionStatement",
- "src": "2137:73:8"
- },
- {
- "assignments": [3339, null],
- "declarations": [
- {
- "constant": false,
- "id": 3339,
- "mutability": "mutable",
- "name": "success",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3352,
- "src": "2299:12:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 3338,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "2299:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- null
- ],
- "id": 3346,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "",
- "id": 3344,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2349:2:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
- "typeString": "literal_string \"\""
- },
- "value": ""
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
- "typeString": "literal_string \"\""
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
- "typeString": "literal_string \"\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3340,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3322,
- "src": "2317:9:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "id": 3341,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "call",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "2317:14:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
- }
- },
- "id": 3343,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "names": ["value"],
- "nodeType": "FunctionCallOptions",
- "options": [
- {
- "argumentTypes": null,
- "id": 3342,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3324,
- "src": "2340:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "src": "2317:31:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
- "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
- }
- },
- "id": 3345,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2317:35:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
- "typeString": "tuple(bool,bytes memory)"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2298:54:8"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3348,
- "name": "success",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3339,
- "src": "2370:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564",
- "id": 3349,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2379:60:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae",
- "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\""
- },
- "value": "Address: unable to send value, recipient may have reverted"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae",
- "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\""
- }
- ],
- "id": 3347,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "2362:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 3350,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2362:78:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3351,
- "nodeType": "ExpressionStatement",
- "src": "2362:78:8"
- }
- ]
- },
- "documentation": {
- "id": 3320,
- "nodeType": "StructuredDocumentation",
- "src": "1145:906:8",
- "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."
- },
- "id": 3353,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "sendValue",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3325,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3322,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3353,
- "src": "2075:25:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- "typeName": {
- "id": 3321,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2075:15:8",
- "stateMutability": "payable",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3324,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3353,
- "src": "2102:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3323,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2102:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2074:43:8"
- },
- "returnParameters": {
- "id": 3326,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2127:0:8"
- },
- "scope": 3595,
- "src": "2056:391:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3369,
- "nodeType": "Block",
- "src": "3277:82:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3364,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3356,
- "src": "3305:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3365,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3358,
- "src": "3313:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564",
- "id": 3366,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3319:32:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df",
- "typeString": "literal_string \"Address: low-level call failed\""
- },
- "value": "Address: low-level call failed"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df",
- "typeString": "literal_string \"Address: low-level call failed\""
- }
- ],
- "id": 3363,
- "name": "functionCall",
- "nodeType": "Identifier",
- "overloadedDeclarations": [3370, 3390],
- "referencedDeclaration": 3390,
- "src": "3292:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (address,bytes memory,string memory) returns (bytes memory)"
- }
- },
- "id": 3367,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3292:60:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 3362,
- "id": 3368,
- "nodeType": "Return",
- "src": "3285:67:8"
- }
- ]
- },
- "documentation": {
- "id": 3354,
- "nodeType": "StructuredDocumentation",
- "src": "2453:730:8",
- "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"
- },
- "id": 3370,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "functionCall",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3359,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3356,
- "mutability": "mutable",
- "name": "target",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3370,
- "src": "3210:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3355,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "3210:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3358,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3370,
- "src": "3226:17:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3357,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3226:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3209:35:8"
- },
- "returnParameters": {
- "id": 3362,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3361,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3370,
- "src": "3263:12:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3360,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3263:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3262:14:8"
- },
- "scope": 3595,
- "src": "3188:171:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3389,
- "nodeType": "Block",
- "src": "3698:76:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3383,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3373,
- "src": "3737:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3384,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3375,
- "src": "3745:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 3385,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3751:1:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- {
- "argumentTypes": null,
- "id": 3386,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3377,
- "src": "3754:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 3382,
- "name": "functionCallWithValue",
- "nodeType": "Identifier",
- "overloadedDeclarations": [3410, 3460],
- "referencedDeclaration": 3460,
- "src": "3715:21:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)"
- }
- },
- "id": 3387,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3715:52:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 3381,
- "id": 3388,
- "nodeType": "Return",
- "src": "3708:59:8"
- }
- ]
- },
- "documentation": {
- "id": 3371,
- "nodeType": "StructuredDocumentation",
- "src": "3365:211:8",
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"
- },
- "id": 3390,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "functionCall",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3378,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3373,
- "mutability": "mutable",
- "name": "target",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3390,
- "src": "3603:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3372,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "3603:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3375,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3390,
- "src": "3619:17:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3374,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3619:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3377,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3390,
- "src": "3638:26:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 3376,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "3638:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3602:63:8"
- },
- "returnParameters": {
- "id": 3381,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3380,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3390,
- "src": "3684:12:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3379,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3684:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3683:14:8"
- },
- "scope": 3595,
- "src": "3581:193:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3409,
- "nodeType": "Block",
- "src": "4249:111:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3403,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3393,
- "src": "4288:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3404,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3395,
- "src": "4296:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "id": 3405,
- "name": "value",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3397,
- "src": "4302:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564",
- "id": 3406,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4309:43:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc",
- "typeString": "literal_string \"Address: low-level call with value failed\""
- },
- "value": "Address: low-level call with value failed"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc",
- "typeString": "literal_string \"Address: low-level call with value failed\""
- }
- ],
- "id": 3402,
- "name": "functionCallWithValue",
- "nodeType": "Identifier",
- "overloadedDeclarations": [3410, 3460],
- "referencedDeclaration": 3460,
- "src": "4266:21:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)"
- }
- },
- "id": 3407,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4266:87:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 3401,
- "id": 3408,
- "nodeType": "Return",
- "src": "4259:94:8"
- }
- ]
- },
- "documentation": {
- "id": 3391,
- "nodeType": "StructuredDocumentation",
- "src": "3780:351:8",
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"
- },
- "id": 3410,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "functionCallWithValue",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3398,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3393,
- "mutability": "mutable",
- "name": "target",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3410,
- "src": "4167:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3392,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4167:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3395,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3410,
- "src": "4183:17:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3394,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "4183:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3397,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3410,
- "src": "4202:13:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3396,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4202:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4166:50:8"
- },
- "returnParameters": {
- "id": 3401,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3400,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3410,
- "src": "4235:12:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3399,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "4235:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4234:14:8"
- },
- "scope": 3595,
- "src": "4136:224:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3459,
- "nodeType": "Block",
- "src": "4749:382:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 3431,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3427,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "4775:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Address_$3595",
- "typeString": "library Address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Address_$3595",
- "typeString": "library Address"
- }
- ],
- "id": 3426,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "4767:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 3425,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4767:7:8",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 3428,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4767:13:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 3429,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "balance",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "4767:21:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 3430,
- "name": "value",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3417,
- "src": "4792:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4767:30:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c",
- "id": 3432,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4799:40:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c",
- "typeString": "literal_string \"Address: insufficient balance for call\""
- },
- "value": "Address: insufficient balance for call"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c",
- "typeString": "literal_string \"Address: insufficient balance for call\""
- }
- ],
- "id": 3424,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4759:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 3433,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4759:81:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3434,
- "nodeType": "ExpressionStatement",
- "src": "4759:81:8"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3437,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3413,
- "src": "4869:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 3436,
- "name": "isContract",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3319,
- "src": "4858:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
- "typeString": "function (address) view returns (bool)"
- }
- },
- "id": 3438,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4858:18:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374",
- "id": 3439,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4878:31:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad",
- "typeString": "literal_string \"Address: call to non-contract\""
- },
- "value": "Address: call to non-contract"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad",
- "typeString": "literal_string \"Address: call to non-contract\""
- }
- ],
- "id": 3435,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4850:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 3440,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4850:60:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3441,
- "nodeType": "ExpressionStatement",
- "src": "4850:60:8"
- },
- {
- "assignments": [3443, 3445],
- "declarations": [
- {
- "constant": false,
- "id": 3443,
- "mutability": "mutable",
- "name": "success",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3459,
- "src": "4981:12:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 3442,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "4981:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3445,
- "mutability": "mutable",
- "name": "returndata",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3459,
- "src": "4995:23:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3444,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "4995:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 3452,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3450,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3415,
- "src": "5050:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3446,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3413,
- "src": "5022:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 3447,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "call",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "5022:11:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
- }
- },
- "id": 3449,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "names": ["value"],
- "nodeType": "FunctionCallOptions",
- "options": [
- {
- "argumentTypes": null,
- "id": 3448,
- "name": "value",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3417,
- "src": "5042:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "src": "5022:27:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
- "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
- }
- },
- "id": 3451,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5022:33:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
- "typeString": "tuple(bool,bytes memory)"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4980:75:8"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3454,
- "name": "success",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3443,
- "src": "5090:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "id": 3455,
- "name": "returndata",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3445,
- "src": "5099:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "id": 3456,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3419,
- "src": "5111:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 3453,
- "name": "_verifyCallResult",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3594,
- "src": "5072:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)"
- }
- },
- "id": 3457,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5072:52:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 3423,
- "id": 3458,
- "nodeType": "Return",
- "src": "5065:59:8"
- }
- ]
- },
- "documentation": {
- "id": 3411,
- "nodeType": "StructuredDocumentation",
- "src": "4366:237:8",
- "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"
- },
- "id": 3460,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "functionCallWithValue",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3420,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3413,
- "mutability": "mutable",
- "name": "target",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3460,
- "src": "4639:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3412,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4639:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3415,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3460,
- "src": "4655:17:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3414,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "4655:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3417,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3460,
- "src": "4674:13:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3416,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4674:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3419,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3460,
- "src": "4689:26:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 3418,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "4689:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4638:78:8"
- },
- "returnParameters": {
- "id": 3423,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3422,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3460,
- "src": "4735:12:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3421,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "4735:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4734:14:8"
- },
- "scope": 3595,
- "src": "4608:523:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3476,
- "nodeType": "Block",
- "src": "5408:97:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3471,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3463,
- "src": "5444:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3472,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3465,
- "src": "5452:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564",
- "id": 3473,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5458:39:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0",
- "typeString": "literal_string \"Address: low-level static call failed\""
- },
- "value": "Address: low-level static call failed"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0",
- "typeString": "literal_string \"Address: low-level static call failed\""
- }
- ],
- "id": 3470,
- "name": "functionStaticCall",
- "nodeType": "Identifier",
- "overloadedDeclarations": [3477, 3512],
- "referencedDeclaration": 3512,
- "src": "5425:18:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)"
- }
- },
- "id": 3474,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5425:73:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 3469,
- "id": 3475,
- "nodeType": "Return",
- "src": "5418:80:8"
- }
- ]
- },
- "documentation": {
- "id": 3461,
- "nodeType": "StructuredDocumentation",
- "src": "5137:166:8",
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"
- },
- "id": 3477,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "functionStaticCall",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3466,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3463,
- "mutability": "mutable",
- "name": "target",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3477,
- "src": "5336:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3462,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5336:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3465,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3477,
- "src": "5352:17:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3464,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "5352:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5335:35:8"
- },
- "returnParameters": {
- "id": 3469,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3468,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3477,
- "src": "5394:12:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3467,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "5394:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5393:14:8"
- },
- "scope": 3595,
- "src": "5308:197:8",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3511,
- "nodeType": "Block",
- "src": "5817:288:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3491,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3480,
- "src": "5846:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 3490,
- "name": "isContract",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3319,
- "src": "5835:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
- "typeString": "function (address) view returns (bool)"
- }
- },
- "id": 3492,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5835:18:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374",
- "id": 3493,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5855:38:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9",
- "typeString": "literal_string \"Address: static call to non-contract\""
- },
- "value": "Address: static call to non-contract"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9",
- "typeString": "literal_string \"Address: static call to non-contract\""
- }
- ],
- "id": 3489,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "5827:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 3494,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5827:67:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3495,
- "nodeType": "ExpressionStatement",
- "src": "5827:67:8"
- },
- {
- "assignments": [3497, 3499],
- "declarations": [
- {
- "constant": false,
- "id": 3497,
- "mutability": "mutable",
- "name": "success",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3511,
- "src": "5965:12:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 3496,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "5965:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3499,
- "mutability": "mutable",
- "name": "returndata",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3511,
- "src": "5979:23:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3498,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "5979:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 3504,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3502,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3482,
- "src": "6024:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3500,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3480,
- "src": "6006:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 3501,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "staticcall",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "6006:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory) view returns (bool,bytes memory)"
- }
- },
- "id": 3503,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6006:23:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
- "typeString": "tuple(bool,bytes memory)"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5964:65:8"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3506,
- "name": "success",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3497,
- "src": "6064:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "id": 3507,
- "name": "returndata",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3499,
- "src": "6073:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "id": 3508,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3484,
- "src": "6085:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 3505,
- "name": "_verifyCallResult",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3594,
- "src": "6046:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)"
- }
- },
- "id": 3509,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6046:52:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 3488,
- "id": 3510,
- "nodeType": "Return",
- "src": "6039:59:8"
- }
- ]
- },
- "documentation": {
- "id": 3478,
- "nodeType": "StructuredDocumentation",
- "src": "5511:173:8",
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"
- },
- "id": 3512,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "functionStaticCall",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3485,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3480,
- "mutability": "mutable",
- "name": "target",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3512,
- "src": "5717:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3479,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5717:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3482,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3512,
- "src": "5733:17:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3481,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "5733:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3484,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3512,
- "src": "5752:26:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 3483,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "5752:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5716:63:8"
- },
- "returnParameters": {
- "id": 3488,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3487,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3512,
- "src": "5803:12:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3486,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "5803:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5802:14:8"
- },
- "scope": 3595,
- "src": "5689:416:8",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3528,
- "nodeType": "Block",
- "src": "6381:101:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3523,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3515,
- "src": "6419:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3524,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3517,
- "src": "6427:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
- "id": 3525,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6433:41:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398",
- "typeString": "literal_string \"Address: low-level delegate call failed\""
- },
- "value": "Address: low-level delegate call failed"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398",
- "typeString": "literal_string \"Address: low-level delegate call failed\""
- }
- ],
- "id": 3522,
- "name": "functionDelegateCall",
- "nodeType": "Identifier",
- "overloadedDeclarations": [3529, 3564],
- "referencedDeclaration": 3564,
- "src": "6398:20:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (address,bytes memory,string memory) returns (bytes memory)"
- }
- },
- "id": 3526,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6398:77:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 3521,
- "id": 3527,
- "nodeType": "Return",
- "src": "6391:84:8"
- }
- ]
- },
- "documentation": {
- "id": 3513,
- "nodeType": "StructuredDocumentation",
- "src": "6111:168:8",
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"
- },
- "id": 3529,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "functionDelegateCall",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3518,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3515,
- "mutability": "mutable",
- "name": "target",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3529,
- "src": "6314:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3514,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "6314:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3517,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3529,
- "src": "6330:17:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3516,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "6330:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6313:35:8"
- },
- "returnParameters": {
- "id": 3521,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3520,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3529,
- "src": "6367:12:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3519,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "6367:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6366:14:8"
- },
- "scope": 3595,
- "src": "6284:198:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3563,
- "nodeType": "Block",
- "src": "6793:292:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3543,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3532,
- "src": "6822:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 3542,
- "name": "isContract",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3319,
- "src": "6811:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
- "typeString": "function (address) view returns (bool)"
- }
- },
- "id": 3544,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6811:18:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374",
- "id": 3545,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6831:40:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520",
- "typeString": "literal_string \"Address: delegate call to non-contract\""
- },
- "value": "Address: delegate call to non-contract"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520",
- "typeString": "literal_string \"Address: delegate call to non-contract\""
- }
- ],
- "id": 3541,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "6803:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 3546,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6803:69:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3547,
- "nodeType": "ExpressionStatement",
- "src": "6803:69:8"
- },
- {
- "assignments": [3549, 3551],
- "declarations": [
- {
- "constant": false,
- "id": 3549,
- "mutability": "mutable",
- "name": "success",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3563,
- "src": "6943:12:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 3548,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "6943:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3551,
- "mutability": "mutable",
- "name": "returndata",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3563,
- "src": "6957:23:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3550,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "6957:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 3556,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3554,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3534,
- "src": "7004:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3552,
- "name": "target",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3532,
- "src": "6984:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 3553,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "delegatecall",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "6984:19:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory) returns (bool,bytes memory)"
- }
- },
- "id": 3555,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6984:25:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
- "typeString": "tuple(bool,bytes memory)"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6942:67:8"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3558,
- "name": "success",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3549,
- "src": "7044:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "id": 3559,
- "name": "returndata",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3551,
- "src": "7053:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "id": 3560,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3536,
- "src": "7065:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 3557,
- "name": "_verifyCallResult",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3594,
- "src": "7026:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)"
- }
- },
- "id": 3561,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7026:52:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 3540,
- "id": 3562,
- "nodeType": "Return",
- "src": "7019:59:8"
- }
- ]
- },
- "documentation": {
- "id": 3530,
- "nodeType": "StructuredDocumentation",
- "src": "6488:175:8",
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"
- },
- "id": 3564,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "functionDelegateCall",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3537,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3532,
- "mutability": "mutable",
- "name": "target",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3564,
- "src": "6698:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3531,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "6698:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3534,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3564,
- "src": "6714:17:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3533,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "6714:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3536,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3564,
- "src": "6733:26:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 3535,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "6733:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6697:63:8"
- },
- "returnParameters": {
- "id": 3540,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3539,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3564,
- "src": "6779:12:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3538,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "6779:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6778:14:8"
- },
- "scope": 3595,
- "src": "6668:417:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3593,
- "nodeType": "Block",
- "src": "7220:596:8",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "id": 3575,
- "name": "success",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3566,
- "src": "7234:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "id": 3591,
- "nodeType": "Block",
- "src": "7291:519:8",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 3582,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 3579,
- "name": "returndata",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3568,
- "src": "7375:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 3580,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "7375:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 3581,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7395:1:8",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "7375:21:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "id": 3589,
- "nodeType": "Block",
- "src": "7747:53:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3586,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3570,
- "src": "7772:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 3585,
- "name": "revert",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "src": "7765:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (string memory) pure"
- }
- },
- "id": 3587,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7765:20:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3588,
- "nodeType": "ExpressionStatement",
- "src": "7765:20:8"
- }
- ]
- },
- "id": 3590,
- "nodeType": "IfStatement",
- "src": "7371:429:8",
- "trueBody": {
- "id": 3584,
- "nodeType": "Block",
- "src": "7398:343:8",
- "statements": [
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "7582:145:8",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "7604:40:8",
- "value": {
- "arguments": [
- {
- "name": "returndata",
- "nodeType": "YulIdentifier",
- "src": "7633:10:8"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "7627:5:8"
- },
- "nodeType": "YulFunctionCall",
- "src": "7627:17:8"
- },
- "variables": [
- {
- "name": "returndata_size",
- "nodeType": "YulTypedName",
- "src": "7608:15:8",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7676:2:8",
- "type": "",
- "value": "32"
- },
- {
- "name": "returndata",
- "nodeType": "YulIdentifier",
- "src": "7680:10:8"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "7672:3:8"
- },
- "nodeType": "YulFunctionCall",
- "src": "7672:19:8"
- },
- {
- "name": "returndata_size",
- "nodeType": "YulIdentifier",
- "src": "7693:15:8"
- }
- ],
- "functionName": {
- "name": "revert",
- "nodeType": "YulIdentifier",
- "src": "7665:6:8"
- },
- "nodeType": "YulFunctionCall",
- "src": "7665:44:8"
- },
- "nodeType": "YulExpressionStatement",
- "src": "7665:44:8"
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 3568,
- "isOffset": false,
- "isSlot": false,
- "src": "7633:10:8",
- "valueSize": 1
- },
- {
- "declaration": 3568,
- "isOffset": false,
- "isSlot": false,
- "src": "7680:10:8",
- "valueSize": 1
- }
- ],
- "id": 3583,
- "nodeType": "InlineAssembly",
- "src": "7573:154:8"
- }
- ]
- }
- }
- ]
- },
- "id": 3592,
- "nodeType": "IfStatement",
- "src": "7230:580:8",
- "trueBody": {
- "id": 3578,
- "nodeType": "Block",
- "src": "7243:42:8",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 3576,
- "name": "returndata",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3568,
- "src": "7264:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 3574,
- "id": 3577,
- "nodeType": "Return",
- "src": "7257:17:8"
- }
- ]
- }
- }
- ]
- },
- "documentation": null,
- "id": 3594,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_verifyCallResult",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3571,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3566,
- "mutability": "mutable",
- "name": "success",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3594,
- "src": "7118:12:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 3565,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "7118:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3568,
- "mutability": "mutable",
- "name": "returndata",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3594,
- "src": "7132:23:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3567,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "7132:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3570,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3594,
- "src": "7157:26:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 3569,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "7157:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7117:67:8"
- },
- "returnParameters": {
- "id": 3574,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3573,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3594,
- "src": "7206:12:8",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3572,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "7206:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7205:14:8"
- },
- "scope": 3595,
- "src": "7091:725:8",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "private"
- }
- ],
- "scope": 3596,
- "src": "134:7684:8"
- }
- ],
- "src": "33:7786:8"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "@openzeppelin/contracts/utils/Address.sol",
- "exportedSymbols": {
- "Address": [3595]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", ">=", "0.6", ".2", "<", "0.8", ".0"]
- },
- "id": 3301,
- "name": "PragmaDirective",
- "src": "33:31:8"
- },
- {
- "attributes": {
- "abstract": false,
- "baseContracts": [null],
- "contractDependencies": [null],
- "contractKind": "library",
- "fullyImplemented": true,
- "linearizedBaseContracts": [3595],
- "name": "Address",
- "scope": 3596
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Collection of functions related to the address type"
- },
- "id": 3302,
- "name": "StructuredDocumentation",
- "src": "66:67:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "isContract",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ===="
- },
- "id": 3303,
- "name": "StructuredDocumentation",
- "src": "156:565:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 3319,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3304,
- "name": "ElementaryTypeName",
- "src": "746:7:8"
- }
- ],
- "id": 3305,
- "name": "VariableDeclaration",
- "src": "746:15:8"
- }
- ],
- "id": 3306,
- "name": "ParameterList",
- "src": "745:17:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3319,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 3307,
- "name": "ElementaryTypeName",
- "src": "786:4:8"
- }
- ],
- "id": 3308,
- "name": "VariableDeclaration",
- "src": "786:4:8"
- }
- ],
- "id": 3309,
- "name": "ParameterList",
- "src": "785:6:8"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [3311],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "size",
- "overrides": null,
- "scope": 3318,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3310,
- "name": "ElementaryTypeName",
- "src": "989:7:8"
- }
- ],
- "id": 3311,
- "name": "VariableDeclaration",
- "src": "989:12:8"
- }
- ],
- "id": 3312,
- "name": "VariableDeclarationStatement",
- "src": "989:12:8"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 3305,
- "isOffset": false,
- "isSlot": false,
- "src": "1098:7:8",
- "valueSize": 1
- },
- {
- "declaration": 3311,
- "isOffset": false,
- "isSlot": false,
- "src": "1078:4:8",
- "valueSize": 1
- }
- ],
- "operations": "{ size := extcodesize(account) }"
- },
- "children": [],
- "id": 3313,
- "name": "InlineAssembly",
- "src": "1067:41:8"
- },
- {
- "attributes": {
- "functionReturnParameters": 3309
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3311,
- "type": "uint256",
- "value": "size"
- },
- "id": 3314,
- "name": "Identifier",
- "src": "1124:4:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 3315,
- "name": "Literal",
- "src": "1131:1:8"
- }
- ],
- "id": 3316,
- "name": "BinaryOperation",
- "src": "1124:8:8"
- }
- ],
- "id": 3317,
- "name": "Return",
- "src": "1117:15:8"
- }
- ],
- "id": 3318,
- "name": "Block",
- "src": "792:347:8"
- }
- ],
- "id": 3319,
- "name": "FunctionDefinition",
- "src": "726:413:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "sendValue",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."
- },
- "id": 3320,
- "name": "StructuredDocumentation",
- "src": "1145:906:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 3353,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address payable",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "payable",
- "type": "address payable"
- },
- "id": 3321,
- "name": "ElementaryTypeName",
- "src": "2075:15:8"
- }
- ],
- "id": 3322,
- "name": "VariableDeclaration",
- "src": "2075:25:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 3353,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3323,
- "name": "ElementaryTypeName",
- "src": "2102:7:8"
- }
- ],
- "id": 3324,
- "name": "VariableDeclaration",
- "src": "2102:14:8"
- }
- ],
- "id": 3325,
- "name": "ParameterList",
- "src": "2074:43:8"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3326,
- "name": "ParameterList",
- "src": "2127:0:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9",
- "typeString": "literal_string \"Address: insufficient balance\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 3327,
- "name": "Identifier",
- "src": "2137:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "balance",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Address_$3595",
- "typeString": "library Address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 3328,
- "name": "ElementaryTypeName",
- "src": "2145:7:8"
- }
- ],
- "id": 3329,
- "name": "ElementaryTypeNameExpression",
- "src": "2145:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "library Address",
- "value": "this"
- },
- "id": 3330,
- "name": "Identifier",
- "src": "2153:4:8"
- }
- ],
- "id": 3331,
- "name": "FunctionCall",
- "src": "2145:13:8"
- }
- ],
- "id": 3332,
- "name": "MemberAccess",
- "src": "2145:21:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3324,
- "type": "uint256",
- "value": "amount"
- },
- "id": 3333,
- "name": "Identifier",
- "src": "2170:6:8"
- }
- ],
- "id": 3334,
- "name": "BinaryOperation",
- "src": "2145:31:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: insufficient balance\"",
- "value": "Address: insufficient balance"
- },
- "id": 3335,
- "name": "Literal",
- "src": "2178:31:8"
- }
- ],
- "id": 3336,
- "name": "FunctionCall",
- "src": "2137:73:8"
- }
- ],
- "id": 3337,
- "name": "ExpressionStatement",
- "src": "2137:73:8"
- },
- {
- "attributes": {
- "assignments": [3339, null]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "success",
- "overrides": null,
- "scope": 3352,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 3338,
- "name": "ElementaryTypeName",
- "src": "2299:4:8"
- }
- ],
- "id": 3339,
- "name": "VariableDeclaration",
- "src": "2299:12:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple(bool,bytes memory)",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
- "typeString": "literal_string \"\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "names": ["value"],
- "type": "function (bytes memory) payable returns (bool,bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
- "typeString": "literal_string \"\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "call",
- "referencedDeclaration": null,
- "type": "function (bytes memory) payable returns (bool,bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3322,
- "type": "address payable",
- "value": "recipient"
- },
- "id": 3340,
- "name": "Identifier",
- "src": "2317:9:8"
- }
- ],
- "id": 3341,
- "name": "MemberAccess",
- "src": "2317:14:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3324,
- "type": "uint256",
- "value": "amount"
- },
- "id": 3342,
- "name": "Identifier",
- "src": "2340:6:8"
- }
- ],
- "id": 3343,
- "name": "FunctionCallOptions",
- "src": "2317:31:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"\"",
- "value": ""
- },
- "id": 3344,
- "name": "Literal",
- "src": "2349:2:8"
- }
- ],
- "id": 3345,
- "name": "FunctionCall",
- "src": "2317:35:8"
- }
- ],
- "id": 3346,
- "name": "VariableDeclarationStatement",
- "src": "2298:54:8"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae",
- "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 3347,
- "name": "Identifier",
- "src": "2362:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3339,
- "type": "bool",
- "value": "success"
- },
- "id": 3348,
- "name": "Identifier",
- "src": "2370:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: unable to send value, recipient may have reverted\"",
- "value": "Address: unable to send value, recipient may have reverted"
- },
- "id": 3349,
- "name": "Literal",
- "src": "2379:60:8"
- }
- ],
- "id": 3350,
- "name": "FunctionCall",
- "src": "2362:78:8"
- }
- ],
- "id": 3351,
- "name": "ExpressionStatement",
- "src": "2362:78:8"
- }
- ],
- "id": 3352,
- "name": "Block",
- "src": "2127:320:8"
- }
- ],
- "id": 3353,
- "name": "FunctionDefinition",
- "src": "2056:391:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "functionCall",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"
- },
- "id": 3354,
- "name": "StructuredDocumentation",
- "src": "2453:730:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target",
- "overrides": null,
- "scope": 3370,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3355,
- "name": "ElementaryTypeName",
- "src": "3210:7:8"
- }
- ],
- "id": 3356,
- "name": "VariableDeclaration",
- "src": "3210:14:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 3370,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3357,
- "name": "ElementaryTypeName",
- "src": "3226:5:8"
- }
- ],
- "id": 3358,
- "name": "VariableDeclaration",
- "src": "3226:17:8"
- }
- ],
- "id": 3359,
- "name": "ParameterList",
- "src": "3209:35:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3370,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3360,
- "name": "ElementaryTypeName",
- "src": "3263:5:8"
- }
- ],
- "id": 3361,
- "name": "VariableDeclaration",
- "src": "3263:12:8"
- }
- ],
- "id": 3362,
- "name": "ParameterList",
- "src": "3262:14:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 3362
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df",
- "typeString": "literal_string \"Address: low-level call failed\""
- }
- ],
- "overloadedDeclarations": [3370, 3390],
- "referencedDeclaration": 3390,
- "type": "function (address,bytes memory,string memory) returns (bytes memory)",
- "value": "functionCall"
- },
- "id": 3363,
- "name": "Identifier",
- "src": "3292:12:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3356,
- "type": "address",
- "value": "target"
- },
- "id": 3364,
- "name": "Identifier",
- "src": "3305:6:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3358,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 3365,
- "name": "Identifier",
- "src": "3313:4:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: low-level call failed\"",
- "value": "Address: low-level call failed"
- },
- "id": 3366,
- "name": "Literal",
- "src": "3319:32:8"
- }
- ],
- "id": 3367,
- "name": "FunctionCall",
- "src": "3292:60:8"
- }
- ],
- "id": 3368,
- "name": "Return",
- "src": "3285:67:8"
- }
- ],
- "id": 3369,
- "name": "Block",
- "src": "3277:82:8"
- }
- ],
- "id": 3370,
- "name": "FunctionDefinition",
- "src": "3188:171:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "functionCall",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"
- },
- "id": 3371,
- "name": "StructuredDocumentation",
- "src": "3365:211:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target",
- "overrides": null,
- "scope": 3390,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3372,
- "name": "ElementaryTypeName",
- "src": "3603:7:8"
- }
- ],
- "id": 3373,
- "name": "VariableDeclaration",
- "src": "3603:14:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 3390,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3374,
- "name": "ElementaryTypeName",
- "src": "3619:5:8"
- }
- ],
- "id": 3375,
- "name": "VariableDeclaration",
- "src": "3619:17:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 3390,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 3376,
- "name": "ElementaryTypeName",
- "src": "3638:6:8"
- }
- ],
- "id": 3377,
- "name": "VariableDeclaration",
- "src": "3638:26:8"
- }
- ],
- "id": 3378,
- "name": "ParameterList",
- "src": "3602:63:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3390,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3379,
- "name": "ElementaryTypeName",
- "src": "3684:5:8"
- }
- ],
- "id": 3380,
- "name": "VariableDeclaration",
- "src": "3684:12:8"
- }
- ],
- "id": 3381,
- "name": "ParameterList",
- "src": "3683:14:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 3381
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [3410, 3460],
- "referencedDeclaration": 3460,
- "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)",
- "value": "functionCallWithValue"
- },
- "id": 3382,
- "name": "Identifier",
- "src": "3715:21:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3373,
- "type": "address",
- "value": "target"
- },
- "id": 3383,
- "name": "Identifier",
- "src": "3737:6:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3375,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 3384,
- "name": "Identifier",
- "src": "3745:4:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 3385,
- "name": "Literal",
- "src": "3751:1:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3377,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 3386,
- "name": "Identifier",
- "src": "3754:12:8"
- }
- ],
- "id": 3387,
- "name": "FunctionCall",
- "src": "3715:52:8"
- }
- ],
- "id": 3388,
- "name": "Return",
- "src": "3708:59:8"
- }
- ],
- "id": 3389,
- "name": "Block",
- "src": "3698:76:8"
- }
- ],
- "id": 3390,
- "name": "FunctionDefinition",
- "src": "3581:193:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "functionCallWithValue",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"
- },
- "id": 3391,
- "name": "StructuredDocumentation",
- "src": "3780:351:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target",
- "overrides": null,
- "scope": 3410,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3392,
- "name": "ElementaryTypeName",
- "src": "4167:7:8"
- }
- ],
- "id": 3393,
- "name": "VariableDeclaration",
- "src": "4167:14:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 3410,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3394,
- "name": "ElementaryTypeName",
- "src": "4183:5:8"
- }
- ],
- "id": 3395,
- "name": "VariableDeclaration",
- "src": "4183:17:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 3410,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3396,
- "name": "ElementaryTypeName",
- "src": "4202:7:8"
- }
- ],
- "id": 3397,
- "name": "VariableDeclaration",
- "src": "4202:13:8"
- }
- ],
- "id": 3398,
- "name": "ParameterList",
- "src": "4166:50:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3410,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3399,
- "name": "ElementaryTypeName",
- "src": "4235:5:8"
- }
- ],
- "id": 3400,
- "name": "VariableDeclaration",
- "src": "4235:12:8"
- }
- ],
- "id": 3401,
- "name": "ParameterList",
- "src": "4234:14:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 3401
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc",
- "typeString": "literal_string \"Address: low-level call with value failed\""
- }
- ],
- "overloadedDeclarations": [3410, 3460],
- "referencedDeclaration": 3460,
- "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)",
- "value": "functionCallWithValue"
- },
- "id": 3402,
- "name": "Identifier",
- "src": "4266:21:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3393,
- "type": "address",
- "value": "target"
- },
- "id": 3403,
- "name": "Identifier",
- "src": "4288:6:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3395,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 3404,
- "name": "Identifier",
- "src": "4296:4:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3397,
- "type": "uint256",
- "value": "value"
- },
- "id": 3405,
- "name": "Identifier",
- "src": "4302:5:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: low-level call with value failed\"",
- "value": "Address: low-level call with value failed"
- },
- "id": 3406,
- "name": "Literal",
- "src": "4309:43:8"
- }
- ],
- "id": 3407,
- "name": "FunctionCall",
- "src": "4266:87:8"
- }
- ],
- "id": 3408,
- "name": "Return",
- "src": "4259:94:8"
- }
- ],
- "id": 3409,
- "name": "Block",
- "src": "4249:111:8"
- }
- ],
- "id": 3410,
- "name": "FunctionDefinition",
- "src": "4136:224:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "functionCallWithValue",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"
- },
- "id": 3411,
- "name": "StructuredDocumentation",
- "src": "4366:237:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target",
- "overrides": null,
- "scope": 3460,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3412,
- "name": "ElementaryTypeName",
- "src": "4639:7:8"
- }
- ],
- "id": 3413,
- "name": "VariableDeclaration",
- "src": "4639:14:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 3460,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3414,
- "name": "ElementaryTypeName",
- "src": "4655:5:8"
- }
- ],
- "id": 3415,
- "name": "VariableDeclaration",
- "src": "4655:17:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 3460,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3416,
- "name": "ElementaryTypeName",
- "src": "4674:7:8"
- }
- ],
- "id": 3417,
- "name": "VariableDeclaration",
- "src": "4674:13:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 3460,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 3418,
- "name": "ElementaryTypeName",
- "src": "4689:6:8"
- }
- ],
- "id": 3419,
- "name": "VariableDeclaration",
- "src": "4689:26:8"
- }
- ],
- "id": 3420,
- "name": "ParameterList",
- "src": "4638:78:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3460,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3421,
- "name": "ElementaryTypeName",
- "src": "4735:5:8"
- }
- ],
- "id": 3422,
- "name": "VariableDeclaration",
- "src": "4735:12:8"
- }
- ],
- "id": 3423,
- "name": "ParameterList",
- "src": "4734:14:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c",
- "typeString": "literal_string \"Address: insufficient balance for call\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 3424,
- "name": "Identifier",
- "src": "4759:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "balance",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Address_$3595",
- "typeString": "library Address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 3425,
- "name": "ElementaryTypeName",
- "src": "4767:7:8"
- }
- ],
- "id": 3426,
- "name": "ElementaryTypeNameExpression",
- "src": "4767:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "library Address",
- "value": "this"
- },
- "id": 3427,
- "name": "Identifier",
- "src": "4775:4:8"
- }
- ],
- "id": 3428,
- "name": "FunctionCall",
- "src": "4767:13:8"
- }
- ],
- "id": 3429,
- "name": "MemberAccess",
- "src": "4767:21:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3417,
- "type": "uint256",
- "value": "value"
- },
- "id": 3430,
- "name": "Identifier",
- "src": "4792:5:8"
- }
- ],
- "id": 3431,
- "name": "BinaryOperation",
- "src": "4767:30:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: insufficient balance for call\"",
- "value": "Address: insufficient balance for call"
- },
- "id": 3432,
- "name": "Literal",
- "src": "4799:40:8"
- }
- ],
- "id": 3433,
- "name": "FunctionCall",
- "src": "4759:81:8"
- }
- ],
- "id": 3434,
- "name": "ExpressionStatement",
- "src": "4759:81:8"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad",
- "typeString": "literal_string \"Address: call to non-contract\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 3435,
- "name": "Identifier",
- "src": "4850:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bool",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3319,
- "type": "function (address) view returns (bool)",
- "value": "isContract"
- },
- "id": 3436,
- "name": "Identifier",
- "src": "4858:10:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3413,
- "type": "address",
- "value": "target"
- },
- "id": 3437,
- "name": "Identifier",
- "src": "4869:6:8"
- }
- ],
- "id": 3438,
- "name": "FunctionCall",
- "src": "4858:18:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: call to non-contract\"",
- "value": "Address: call to non-contract"
- },
- "id": 3439,
- "name": "Literal",
- "src": "4878:31:8"
- }
- ],
- "id": 3440,
- "name": "FunctionCall",
- "src": "4850:60:8"
- }
- ],
- "id": 3441,
- "name": "ExpressionStatement",
- "src": "4850:60:8"
- },
- {
- "attributes": {
- "assignments": [3443, 3445]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "success",
- "overrides": null,
- "scope": 3459,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 3442,
- "name": "ElementaryTypeName",
- "src": "4981:4:8"
- }
- ],
- "id": 3443,
- "name": "VariableDeclaration",
- "src": "4981:12:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "returndata",
- "overrides": null,
- "scope": 3459,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3444,
- "name": "ElementaryTypeName",
- "src": "4995:5:8"
- }
- ],
- "id": 3445,
- "name": "VariableDeclaration",
- "src": "4995:23:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple(bool,bytes memory)",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "names": ["value"],
- "type": "function (bytes memory) payable returns (bool,bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "call",
- "referencedDeclaration": null,
- "type": "function (bytes memory) payable returns (bool,bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3413,
- "type": "address",
- "value": "target"
- },
- "id": 3446,
- "name": "Identifier",
- "src": "5022:6:8"
- }
- ],
- "id": 3447,
- "name": "MemberAccess",
- "src": "5022:11:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3417,
- "type": "uint256",
- "value": "value"
- },
- "id": 3448,
- "name": "Identifier",
- "src": "5042:5:8"
- }
- ],
- "id": 3449,
- "name": "FunctionCallOptions",
- "src": "5022:27:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3415,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 3450,
- "name": "Identifier",
- "src": "5050:4:8"
- }
- ],
- "id": 3451,
- "name": "FunctionCall",
- "src": "5022:33:8"
- }
- ],
- "id": 3452,
- "name": "VariableDeclarationStatement",
- "src": "4980:75:8"
- },
- {
- "attributes": {
- "functionReturnParameters": 3423
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3594,
- "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)",
- "value": "_verifyCallResult"
- },
- "id": 3453,
- "name": "Identifier",
- "src": "5072:17:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3443,
- "type": "bool",
- "value": "success"
- },
- "id": 3454,
- "name": "Identifier",
- "src": "5090:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3445,
- "type": "bytes memory",
- "value": "returndata"
- },
- "id": 3455,
- "name": "Identifier",
- "src": "5099:10:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3419,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 3456,
- "name": "Identifier",
- "src": "5111:12:8"
- }
- ],
- "id": 3457,
- "name": "FunctionCall",
- "src": "5072:52:8"
- }
- ],
- "id": 3458,
- "name": "Return",
- "src": "5065:59:8"
- }
- ],
- "id": 3459,
- "name": "Block",
- "src": "4749:382:8"
- }
- ],
- "id": 3460,
- "name": "FunctionDefinition",
- "src": "4608:523:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "functionStaticCall",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"
- },
- "id": 3461,
- "name": "StructuredDocumentation",
- "src": "5137:166:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target",
- "overrides": null,
- "scope": 3477,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3462,
- "name": "ElementaryTypeName",
- "src": "5336:7:8"
- }
- ],
- "id": 3463,
- "name": "VariableDeclaration",
- "src": "5336:14:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 3477,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3464,
- "name": "ElementaryTypeName",
- "src": "5352:5:8"
- }
- ],
- "id": 3465,
- "name": "VariableDeclaration",
- "src": "5352:17:8"
- }
- ],
- "id": 3466,
- "name": "ParameterList",
- "src": "5335:35:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3477,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3467,
- "name": "ElementaryTypeName",
- "src": "5394:5:8"
- }
- ],
- "id": 3468,
- "name": "VariableDeclaration",
- "src": "5394:12:8"
- }
- ],
- "id": 3469,
- "name": "ParameterList",
- "src": "5393:14:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 3469
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0",
- "typeString": "literal_string \"Address: low-level static call failed\""
- }
- ],
- "overloadedDeclarations": [3477, 3512],
- "referencedDeclaration": 3512,
- "type": "function (address,bytes memory,string memory) view returns (bytes memory)",
- "value": "functionStaticCall"
- },
- "id": 3470,
- "name": "Identifier",
- "src": "5425:18:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3463,
- "type": "address",
- "value": "target"
- },
- "id": 3471,
- "name": "Identifier",
- "src": "5444:6:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3465,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 3472,
- "name": "Identifier",
- "src": "5452:4:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: low-level static call failed\"",
- "value": "Address: low-level static call failed"
- },
- "id": 3473,
- "name": "Literal",
- "src": "5458:39:8"
- }
- ],
- "id": 3474,
- "name": "FunctionCall",
- "src": "5425:73:8"
- }
- ],
- "id": 3475,
- "name": "Return",
- "src": "5418:80:8"
- }
- ],
- "id": 3476,
- "name": "Block",
- "src": "5408:97:8"
- }
- ],
- "id": 3477,
- "name": "FunctionDefinition",
- "src": "5308:197:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "functionStaticCall",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"
- },
- "id": 3478,
- "name": "StructuredDocumentation",
- "src": "5511:173:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target",
- "overrides": null,
- "scope": 3512,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3479,
- "name": "ElementaryTypeName",
- "src": "5717:7:8"
- }
- ],
- "id": 3480,
- "name": "VariableDeclaration",
- "src": "5717:14:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 3512,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3481,
- "name": "ElementaryTypeName",
- "src": "5733:5:8"
- }
- ],
- "id": 3482,
- "name": "VariableDeclaration",
- "src": "5733:17:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 3512,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 3483,
- "name": "ElementaryTypeName",
- "src": "5752:6:8"
- }
- ],
- "id": 3484,
- "name": "VariableDeclaration",
- "src": "5752:26:8"
- }
- ],
- "id": 3485,
- "name": "ParameterList",
- "src": "5716:63:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3512,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3486,
- "name": "ElementaryTypeName",
- "src": "5803:5:8"
- }
- ],
- "id": 3487,
- "name": "VariableDeclaration",
- "src": "5803:12:8"
- }
- ],
- "id": 3488,
- "name": "ParameterList",
- "src": "5802:14:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9",
- "typeString": "literal_string \"Address: static call to non-contract\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 3489,
- "name": "Identifier",
- "src": "5827:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bool",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3319,
- "type": "function (address) view returns (bool)",
- "value": "isContract"
- },
- "id": 3490,
- "name": "Identifier",
- "src": "5835:10:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3480,
- "type": "address",
- "value": "target"
- },
- "id": 3491,
- "name": "Identifier",
- "src": "5846:6:8"
- }
- ],
- "id": 3492,
- "name": "FunctionCall",
- "src": "5835:18:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: static call to non-contract\"",
- "value": "Address: static call to non-contract"
- },
- "id": 3493,
- "name": "Literal",
- "src": "5855:38:8"
- }
- ],
- "id": 3494,
- "name": "FunctionCall",
- "src": "5827:67:8"
- }
- ],
- "id": 3495,
- "name": "ExpressionStatement",
- "src": "5827:67:8"
- },
- {
- "attributes": {
- "assignments": [3497, 3499]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "success",
- "overrides": null,
- "scope": 3511,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 3496,
- "name": "ElementaryTypeName",
- "src": "5965:4:8"
- }
- ],
- "id": 3497,
- "name": "VariableDeclaration",
- "src": "5965:12:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "returndata",
- "overrides": null,
- "scope": 3511,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3498,
- "name": "ElementaryTypeName",
- "src": "5979:5:8"
- }
- ],
- "id": 3499,
- "name": "VariableDeclaration",
- "src": "5979:23:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple(bool,bytes memory)",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "staticcall",
- "referencedDeclaration": null,
- "type": "function (bytes memory) view returns (bool,bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3480,
- "type": "address",
- "value": "target"
- },
- "id": 3500,
- "name": "Identifier",
- "src": "6006:6:8"
- }
- ],
- "id": 3501,
- "name": "MemberAccess",
- "src": "6006:17:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3482,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 3502,
- "name": "Identifier",
- "src": "6024:4:8"
- }
- ],
- "id": 3503,
- "name": "FunctionCall",
- "src": "6006:23:8"
- }
- ],
- "id": 3504,
- "name": "VariableDeclarationStatement",
- "src": "5964:65:8"
- },
- {
- "attributes": {
- "functionReturnParameters": 3488
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3594,
- "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)",
- "value": "_verifyCallResult"
- },
- "id": 3505,
- "name": "Identifier",
- "src": "6046:17:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3497,
- "type": "bool",
- "value": "success"
- },
- "id": 3506,
- "name": "Identifier",
- "src": "6064:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3499,
- "type": "bytes memory",
- "value": "returndata"
- },
- "id": 3507,
- "name": "Identifier",
- "src": "6073:10:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3484,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 3508,
- "name": "Identifier",
- "src": "6085:12:8"
- }
- ],
- "id": 3509,
- "name": "FunctionCall",
- "src": "6046:52:8"
- }
- ],
- "id": 3510,
- "name": "Return",
- "src": "6039:59:8"
- }
- ],
- "id": 3511,
- "name": "Block",
- "src": "5817:288:8"
- }
- ],
- "id": 3512,
- "name": "FunctionDefinition",
- "src": "5689:416:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "functionDelegateCall",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"
- },
- "id": 3513,
- "name": "StructuredDocumentation",
- "src": "6111:168:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target",
- "overrides": null,
- "scope": 3529,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3514,
- "name": "ElementaryTypeName",
- "src": "6314:7:8"
- }
- ],
- "id": 3515,
- "name": "VariableDeclaration",
- "src": "6314:14:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 3529,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3516,
- "name": "ElementaryTypeName",
- "src": "6330:5:8"
- }
- ],
- "id": 3517,
- "name": "VariableDeclaration",
- "src": "6330:17:8"
- }
- ],
- "id": 3518,
- "name": "ParameterList",
- "src": "6313:35:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3529,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3519,
- "name": "ElementaryTypeName",
- "src": "6367:5:8"
- }
- ],
- "id": 3520,
- "name": "VariableDeclaration",
- "src": "6367:12:8"
- }
- ],
- "id": 3521,
- "name": "ParameterList",
- "src": "6366:14:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 3521
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398",
- "typeString": "literal_string \"Address: low-level delegate call failed\""
- }
- ],
- "overloadedDeclarations": [3529, 3564],
- "referencedDeclaration": 3564,
- "type": "function (address,bytes memory,string memory) returns (bytes memory)",
- "value": "functionDelegateCall"
- },
- "id": 3522,
- "name": "Identifier",
- "src": "6398:20:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3515,
- "type": "address",
- "value": "target"
- },
- "id": 3523,
- "name": "Identifier",
- "src": "6419:6:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3517,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 3524,
- "name": "Identifier",
- "src": "6427:4:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: low-level delegate call failed\"",
- "value": "Address: low-level delegate call failed"
- },
- "id": 3525,
- "name": "Literal",
- "src": "6433:41:8"
- }
- ],
- "id": 3526,
- "name": "FunctionCall",
- "src": "6398:77:8"
- }
- ],
- "id": 3527,
- "name": "Return",
- "src": "6391:84:8"
- }
- ],
- "id": 3528,
- "name": "Block",
- "src": "6381:101:8"
- }
- ],
- "id": 3529,
- "name": "FunctionDefinition",
- "src": "6284:198:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "functionDelegateCall",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"
- },
- "id": 3530,
- "name": "StructuredDocumentation",
- "src": "6488:175:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target",
- "overrides": null,
- "scope": 3564,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3531,
- "name": "ElementaryTypeName",
- "src": "6698:7:8"
- }
- ],
- "id": 3532,
- "name": "VariableDeclaration",
- "src": "6698:14:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 3564,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3533,
- "name": "ElementaryTypeName",
- "src": "6714:5:8"
- }
- ],
- "id": 3534,
- "name": "VariableDeclaration",
- "src": "6714:17:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 3564,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 3535,
- "name": "ElementaryTypeName",
- "src": "6733:6:8"
- }
- ],
- "id": 3536,
- "name": "VariableDeclaration",
- "src": "6733:26:8"
- }
- ],
- "id": 3537,
- "name": "ParameterList",
- "src": "6697:63:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3564,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3538,
- "name": "ElementaryTypeName",
- "src": "6779:5:8"
- }
- ],
- "id": 3539,
- "name": "VariableDeclaration",
- "src": "6779:12:8"
- }
- ],
- "id": 3540,
- "name": "ParameterList",
- "src": "6778:14:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520",
- "typeString": "literal_string \"Address: delegate call to non-contract\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 3541,
- "name": "Identifier",
- "src": "6803:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bool",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3319,
- "type": "function (address) view returns (bool)",
- "value": "isContract"
- },
- "id": 3542,
- "name": "Identifier",
- "src": "6811:10:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3532,
- "type": "address",
- "value": "target"
- },
- "id": 3543,
- "name": "Identifier",
- "src": "6822:6:8"
- }
- ],
- "id": 3544,
- "name": "FunctionCall",
- "src": "6811:18:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Address: delegate call to non-contract\"",
- "value": "Address: delegate call to non-contract"
- },
- "id": 3545,
- "name": "Literal",
- "src": "6831:40:8"
- }
- ],
- "id": 3546,
- "name": "FunctionCall",
- "src": "6803:69:8"
- }
- ],
- "id": 3547,
- "name": "ExpressionStatement",
- "src": "6803:69:8"
- },
- {
- "attributes": {
- "assignments": [3549, 3551]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "success",
- "overrides": null,
- "scope": 3563,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 3548,
- "name": "ElementaryTypeName",
- "src": "6943:4:8"
- }
- ],
- "id": 3549,
- "name": "VariableDeclaration",
- "src": "6943:12:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "returndata",
- "overrides": null,
- "scope": 3563,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3550,
- "name": "ElementaryTypeName",
- "src": "6957:5:8"
- }
- ],
- "id": 3551,
- "name": "VariableDeclaration",
- "src": "6957:23:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple(bool,bytes memory)",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "delegatecall",
- "referencedDeclaration": null,
- "type": "function (bytes memory) returns (bool,bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3532,
- "type": "address",
- "value": "target"
- },
- "id": 3552,
- "name": "Identifier",
- "src": "6984:6:8"
- }
- ],
- "id": 3553,
- "name": "MemberAccess",
- "src": "6984:19:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3534,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 3554,
- "name": "Identifier",
- "src": "7004:4:8"
- }
- ],
- "id": 3555,
- "name": "FunctionCall",
- "src": "6984:25:8"
- }
- ],
- "id": 3556,
- "name": "VariableDeclarationStatement",
- "src": "6942:67:8"
- },
- {
- "attributes": {
- "functionReturnParameters": 3540
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3594,
- "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)",
- "value": "_verifyCallResult"
- },
- "id": 3557,
- "name": "Identifier",
- "src": "7026:17:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3549,
- "type": "bool",
- "value": "success"
- },
- "id": 3558,
- "name": "Identifier",
- "src": "7044:7:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3551,
- "type": "bytes memory",
- "value": "returndata"
- },
- "id": 3559,
- "name": "Identifier",
- "src": "7053:10:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3536,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 3560,
- "name": "Identifier",
- "src": "7065:12:8"
- }
- ],
- "id": 3561,
- "name": "FunctionCall",
- "src": "7026:52:8"
- }
- ],
- "id": 3562,
- "name": "Return",
- "src": "7019:59:8"
- }
- ],
- "id": 3563,
- "name": "Block",
- "src": "6793:292:8"
- }
- ],
- "id": 3564,
- "name": "FunctionDefinition",
- "src": "6668:417:8"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_verifyCallResult",
- "overrides": null,
- "scope": 3595,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "private"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "success",
- "overrides": null,
- "scope": 3594,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 3565,
- "name": "ElementaryTypeName",
- "src": "7118:4:8"
- }
- ],
- "id": 3566,
- "name": "VariableDeclaration",
- "src": "7118:12:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "returndata",
- "overrides": null,
- "scope": 3594,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3567,
- "name": "ElementaryTypeName",
- "src": "7132:5:8"
- }
- ],
- "id": 3568,
- "name": "VariableDeclaration",
- "src": "7132:23:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 3594,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 3569,
- "name": "ElementaryTypeName",
- "src": "7157:6:8"
- }
- ],
- "id": 3570,
- "name": "VariableDeclaration",
- "src": "7157:26:8"
- }
- ],
- "id": 3571,
- "name": "ParameterList",
- "src": "7117:67:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3594,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3572,
- "name": "ElementaryTypeName",
- "src": "7206:5:8"
- }
- ],
- "id": 3573,
- "name": "VariableDeclaration",
- "src": "7206:12:8"
- }
- ],
- "id": 3574,
- "name": "ParameterList",
- "src": "7205:14:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3566,
- "type": "bool",
- "value": "success"
- },
- "id": 3575,
- "name": "Identifier",
- "src": "7234:7:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 3574
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3568,
- "type": "bytes memory",
- "value": "returndata"
- },
- "id": 3576,
- "name": "Identifier",
- "src": "7264:10:8"
- }
- ],
- "id": 3577,
- "name": "Return",
- "src": "7257:17:8"
- }
- ],
- "id": 3578,
- "name": "Block",
- "src": "7243:42:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3568,
- "type": "bytes memory",
- "value": "returndata"
- },
- "id": 3579,
- "name": "Identifier",
- "src": "7375:10:8"
- }
- ],
- "id": 3580,
- "name": "MemberAccess",
- "src": "7375:17:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 3581,
- "name": "Literal",
- "src": "7395:1:8"
- }
- ],
- "id": 3582,
- "name": "BinaryOperation",
- "src": "7375:21:8"
- },
- {
- "children": [
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 3568,
- "isOffset": false,
- "isSlot": false,
- "src": "7633:10:8",
- "valueSize": 1
- },
- {
- "declaration": 3568,
- "isOffset": false,
- "isSlot": false,
- "src": "7680:10:8",
- "valueSize": 1
- }
- ],
- "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}"
- },
- "children": [],
- "id": 3583,
- "name": "InlineAssembly",
- "src": "7573:154:8"
- }
- ],
- "id": 3584,
- "name": "Block",
- "src": "7398:343:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [
- -19,
- -19
- ],
- "referencedDeclaration": -19,
- "type": "function (string memory) pure",
- "value": "revert"
- },
- "id": 3585,
- "name": "Identifier",
- "src": "7765:6:8"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3570,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 3586,
- "name": "Identifier",
- "src": "7772:12:8"
- }
- ],
- "id": 3587,
- "name": "FunctionCall",
- "src": "7765:20:8"
- }
- ],
- "id": 3588,
- "name": "ExpressionStatement",
- "src": "7765:20:8"
- }
- ],
- "id": 3589,
- "name": "Block",
- "src": "7747:53:8"
- }
- ],
- "id": 3590,
- "name": "IfStatement",
- "src": "7371:429:8"
- }
- ],
- "id": 3591,
- "name": "Block",
- "src": "7291:519:8"
- }
- ],
- "id": 3592,
- "name": "IfStatement",
- "src": "7230:580:8"
- }
- ],
- "id": 3593,
- "name": "Block",
- "src": "7220:596:8"
- }
- ],
- "id": 3594,
- "name": "FunctionDefinition",
- "src": "7091:725:8"
- }
- ],
- "id": 3595,
- "name": "ContractDefinition",
- "src": "134:7684:8"
- }
- ],
- "id": 3596,
- "name": "SourceUnit",
- "src": "33:7786:8"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.926Z",
- "devdoc": {
- "details": "Collection of functions related to the address type",
- "kind": "dev",
- "methods": {},
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/BytesLib.json b/packages/bridge-sdk/contracts/BytesLib.json
deleted file mode 100644
index 86195cf..0000000
--- a/packages/bridge-sdk/contracts/BytesLib.json
+++ /dev/null
@@ -1,15462 +0,0 @@
-{
- "contractName": "BytesLib",
- "abi": [],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol\":{\"keccak256\":\"0x4a28e69afc4c1c1aee48c7b497f9b8452b295ddcf4bbf453d594a1467016d5f2\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://279e22c43f79567e9f7842cfca8ad2329bbbad2eac30413b620796d51f308719\",\"dweb:/ipfs/QmbdRLJYoKJxDbDLeverNMHsNFEcxnohAA713UFLjLm3Jy\"]}},\"version\":1}",
- "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202f26a001b561cb93cba0d1a744674075045e5c0fd05bfb9ab29ebd9824598c6c64736f6c634300060c0033",
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202f26a001b561cb93cba0d1a744674075045e5c0fd05bfb9ab29ebd9824598c6c64736f6c634300060c0033",
- "immutableReferences": {},
- "sourceMap": "370:17872:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
- "deployedSourceMap": "370:17872:0:-:0;;;;;;;;",
- "source": "// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá \n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.5.0 <0.7.0;\n\n\nlibrary BytesLib {\n function concat(\n bytes memory _preBytes,\n bytes memory _postBytes\n )\n internal\n pure\n returns (bytes memory)\n {\n bytes memory tempBytes;\n\n assembly {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // Store the length of the first bytes array at the beginning of\n // the memory for tempBytes.\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n\n // Maintain a memory counter for the current write location in the\n // temp bytes array by adding the 32 bytes for the array length to\n // the starting location.\n let mc := add(tempBytes, 0x20)\n // Stop copying when the memory counter reaches the length of the\n // first bytes array.\n let end := add(mc, length)\n\n for {\n // Initialize a copy counter to the start of the _preBytes data,\n // 32 bytes into its memory.\n let cc := add(_preBytes, 0x20)\n } lt(mc, end) {\n // Increase both counters by 32 bytes each iteration.\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // Write the _preBytes data into the tempBytes memory 32 bytes\n // at a time.\n mstore(mc, mload(cc))\n }\n\n // Add the length of _postBytes to the current length of tempBytes\n // and store it as the new length in the first 32 bytes of the\n // tempBytes memory.\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n\n // Move the memory counter back from a multiple of 0x20 to the\n // actual end of the _preBytes data.\n mc := end\n // Stop copying when the memory counter reaches the new combined\n // length of the arrays.\n end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n // Update the free-memory pointer by padding our last write location\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n // next 32 byte block, then round down to the nearest multiple of\n // 32. If the sum of the length of the two arrays is zero then add\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\n mstore(0x40, and(\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n not(31) // Round down to the nearest 32 bytes.\n ))\n }\n\n return tempBytes;\n }\n\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n assembly {\n // Read the first 32 bytes of _preBytes storage, which is the length\n // of the array. (We don't need to use the offset into the slot\n // because arrays use the entire slot.)\n let fslot := sload(_preBytes_slot)\n // Arrays of 31 bytes or less have an even value in their slot,\n // while longer arrays have an odd value. The actual length is\n // the slot divided by two for odd values, and the lowest order\n // byte divided by two for even values.\n // If the slot is even, bitwise and the slot with 255 and divide by\n // two to get the length. If the slot is odd, bitwise and the slot\n // with -1 and divide by two.\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n // Since the new array still fits in the slot, we just need to\n // update the contents of the slot.\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n sstore(\n _preBytes_slot,\n // all the modifications to the slot are inside this\n // next block\n add(\n // we can just add to the slot contents because the\n // bytes we want to change are the LSBs\n fslot,\n add(\n mul(\n div(\n // load the bytes from memory\n mload(add(_postBytes, 0x20)),\n // zero all bytes to the right\n exp(0x100, sub(32, mlength))\n ),\n // and now shift left the number of bytes to\n // leave space for the length in the slot\n exp(0x100, sub(32, newlength))\n ),\n // increase length by the double of the memory\n // bytes length\n mul(mlength, 2)\n )\n )\n )\n }\n case 1 {\n // The stored value fits in the slot, but the combined value\n // will exceed it.\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes_slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n\n // The contents of the _postBytes array start 32 bytes into\n // the structure. Our first read should obtain the `submod`\n // bytes that can fit into the unused space in the last word\n // of the stored array. To get this, we read 32 bytes starting\n // from `submod`, so the data we read overlaps with the array\n // contents by `submod` bytes. Masking the lowest-order\n // `submod` bytes allows us to add that value directly to the\n // stored value.\n\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(\n sc,\n add(\n and(\n fslot,\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\n ),\n and(mload(mc), mask)\n )\n )\n\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes_slot)\n // Start copying to the last used word of the stored array.\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n\n // Copy over the first `submod` bytes of the new data as in\n // case 1 above.\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n }\n }\n\n function slice(\n bytes memory _bytes,\n uint256 _start,\n uint256 _length\n )\n internal\n pure\n returns (bytes memory)\n {\n require(_bytes.length >= (_start + _length), \"Read out of bounds\");\n\n bytes memory tempBytes;\n\n assembly {\n switch iszero(_length)\n case 0 {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // The first word of the slice result is potentially a partial\n // word read from the original array. To read it, we calculate\n // the length of that partial word and start copying that many\n // bytes into the array. The first word we copy will start with\n // data we don't care about, but the last `lengthmod` bytes will\n // land at the beginning of the contents of the new array. When\n // we're done copying, we overwrite the full first word with\n // the actual length of the slice.\n let lengthmod := and(_length, 31)\n\n // The multiplication in the next line is necessary\n // because when slicing multiples of 32 bytes (lengthmod == 0)\n // the following copy loop was copying the origin's length\n // and then ending prematurely not copying everything it should.\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n\n for {\n // The multiplication in the next line has the same exact purpose\n // as the one above.\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n mstore(tempBytes, _length)\n\n //update free-memory pointer\n //allocating the array padded to 32 bytes like the compiler does now\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n //if we want a zero-length slice let's just return a zero-length array\n default {\n tempBytes := mload(0x40)\n\n mstore(0x40, add(tempBytes, 0x20))\n }\n }\n\n return tempBytes;\n }\n\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\n require(_bytes.length >= (_start + 20), \"Read out of bounds\");\n address tempAddress;\n\n assembly {\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n }\n\n return tempAddress;\n }\n\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\n require(_bytes.length >= (_start + 1), \"Read out of bounds\");\n uint8 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x1), _start))\n }\n\n return tempUint;\n }\n\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\n require(_bytes.length >= (_start + 2), \"Read out of bounds\");\n uint16 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x2), _start))\n }\n\n return tempUint;\n }\n\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\n require(_bytes.length >= (_start + 4), \"Read out of bounds\");\n uint32 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x4), _start))\n }\n\n return tempUint;\n }\n\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\n require(_bytes.length >= (_start + 8), \"Read out of bounds\");\n uint64 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x8), _start))\n }\n\n return tempUint;\n }\n\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\n require(_bytes.length >= (_start + 12), \"Read out of bounds\");\n uint96 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0xc), _start))\n }\n\n return tempUint;\n }\n\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\n require(_bytes.length >= (_start + 16), \"Read out of bounds\");\n uint128 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x10), _start))\n }\n\n return tempUint;\n }\n\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\n require(_bytes.length >= (_start + 32), \"Read out of bounds\");\n uint256 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempUint;\n }\n\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\n require(_bytes.length >= (_start + 32), \"Read out of bounds\");\n bytes32 tempBytes32;\n\n assembly {\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempBytes32;\n }\n\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n bool success = true;\n\n assembly {\n let length := mload(_preBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(length, mload(_postBytes))\n case 1 {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n } eq(add(lt(mc, end), cb), 2) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // if any of these checks fails then arrays are not equal\n if iszero(eq(mload(mc), mload(cc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n\n function equalStorage(\n bytes storage _preBytes,\n bytes memory _postBytes\n )\n internal\n view\n returns (bool)\n {\n bool success = true;\n\n assembly {\n // we know _preBytes_offset is 0\n let fslot := sload(_preBytes_slot)\n // Decode the length of the stored array like in concatStorage().\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(slength, mlength)\n case 1 {\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n if iszero(iszero(slength)) {\n switch lt(slength, 32)\n case 1 {\n // blank the last byte which is the length\n fslot := mul(div(fslot, 0x100), 0x100)\n\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n // unsuccess:\n success := 0\n }\n }\n default {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes_slot)\n let sc := keccak256(0x0, 0x20)\n\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n for {} eq(add(lt(mc, end), cb), 2) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n if iszero(eq(sload(sc), mload(mc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n}\n",
- "sourcePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol",
- "ast": {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol",
- "exportedSymbols": {
- "BytesLib": [333]
- },
- "id": 334,
- "license": "Unlicense",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 1,
- "literals": ["solidity", ">=", "0.5", ".0", "<", "0.7", ".0"],
- "nodeType": "PragmaDirective",
- "src": "336:31:0"
- },
- {
- "abstract": false,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "library",
- "documentation": null,
- "fullyImplemented": true,
- "id": 333,
- "linearizedBaseContracts": [333],
- "name": "BytesLib",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": {
- "id": 16,
- "nodeType": "Block",
- "src": "533:2695:0",
- "statements": [
- {
- "assignments": [11],
- "declarations": [
- {
- "constant": false,
- "id": 11,
- "mutability": "mutable",
- "name": "tempBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 16,
- "src": "543:22:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 10,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "543:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 12,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "543:22:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "585:2610:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "721:24:0",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "740:4:0",
- "type": "",
- "value": "0x40"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "734:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "734:11:0"
- },
- "variableNames": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "721:9:0"
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "869:30:0",
- "value": {
- "arguments": [
- {
- "name": "_preBytes",
- "nodeType": "YulIdentifier",
- "src": "889:9:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "883:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "883:16:0"
- },
- "variables": [
- {
- "name": "length",
- "nodeType": "YulTypedName",
- "src": "873:6:0",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "919:9:0"
- },
- {
- "name": "length",
- "nodeType": "YulIdentifier",
- "src": "930:6:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "912:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "912:25:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "912:25:0"
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "1135:30:0",
- "value": {
- "arguments": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "1149:9:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "1160:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "1145:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "1145:20:0"
- },
- "variables": [
- {
- "name": "mc",
- "nodeType": "YulTypedName",
- "src": "1139:2:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "1282:26:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "1297:2:0"
- },
- {
- "name": "length",
- "nodeType": "YulIdentifier",
- "src": "1301:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "1293:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "1293:15:0"
- },
- "variables": [
- {
- "name": "end",
- "nodeType": "YulTypedName",
- "src": "1286:3:0",
- "type": ""
- }
- ]
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "1673:154:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "1799:2:0"
- },
- {
- "arguments": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "1809:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "1803:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "1803:9:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "1792:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "1792:21:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "1792:21:0"
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "1510:2:0"
- },
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "1514:3:0"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "1507:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "1507:11:0"
- },
- "nodeType": "YulForLoop",
- "post": {
- "nodeType": "YulBlock",
- "src": "1519:153:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "1603:19:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "1613:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "1617:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "1609:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "1609:13:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "1603:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "1639:19:0",
- "value": {
- "arguments": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "1649:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "1653:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "1645:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "1645:13:0"
- },
- "variableNames": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "1639:2:0"
- }
- ]
- }
- ]
- },
- "pre": {
- "nodeType": "YulBlock",
- "src": "1326:180:0",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "1462:30:0",
- "value": {
- "arguments": [
- {
- "name": "_preBytes",
- "nodeType": "YulIdentifier",
- "src": "1476:9:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "1487:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "1472:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "1472:20:0"
- },
- "variables": [
- {
- "name": "cc",
- "nodeType": "YulTypedName",
- "src": "1466:2:0",
- "type": ""
- }
- ]
- }
- ]
- },
- "src": "1322:505:0"
- },
- {
- "nodeType": "YulAssignment",
- "src": "2016:27:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "2032:10:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "2026:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2026:17:0"
- },
- "variableNames": [
- {
- "name": "length",
- "nodeType": "YulIdentifier",
- "src": "2016:6:0"
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "2063:9:0"
- },
- {
- "arguments": [
- {
- "name": "length",
- "nodeType": "YulIdentifier",
- "src": "2078:6:0"
- },
- {
- "arguments": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "2092:9:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "2086:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2086:16:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "2074:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2074:29:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "2056:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2056:48:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "2056:48:0"
- },
- {
- "nodeType": "YulAssignment",
- "src": "2234:9:0",
- "value": {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "2240:3:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "2234:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "2362:22:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "2373:2:0"
- },
- {
- "name": "length",
- "nodeType": "YulIdentifier",
- "src": "2377:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "2369:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2369:15:0"
- },
- "variableNames": [
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "2362:3:0"
- }
- ]
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "2566:53:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "2591:2:0"
- },
- {
- "arguments": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "2601:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "2595:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2595:9:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "2584:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2584:21:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "2584:21:0"
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "2469:2:0"
- },
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "2473:3:0"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "2466:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2466:11:0"
- },
- "nodeType": "YulForLoop",
- "post": {
- "nodeType": "YulBlock",
- "src": "2478:87:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "2496:19:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "2506:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "2510:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "2502:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2502:13:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "2496:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "2532:19:0",
- "value": {
- "arguments": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "2542:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "2546:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "2538:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2538:13:0"
- },
- "variableNames": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "2532:2:0"
- }
- ]
- }
- ]
- },
- "pre": {
- "nodeType": "YulBlock",
- "src": "2402:63:0",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "2420:31:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "2434:10:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "2446:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "2430:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "2430:21:0"
- },
- "variables": [
- {
- "name": "cc",
- "nodeType": "YulTypedName",
- "src": "2424:2:0",
- "type": ""
- }
- ]
- }
- ]
- },
- "src": "2398:221:0"
- },
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "3031:4:0",
- "type": "",
- "value": "0x40"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "3062:3:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "length",
- "nodeType": "YulIdentifier",
- "src": "3078:6:0"
- },
- {
- "arguments": [
- {
- "name": "_preBytes",
- "nodeType": "YulIdentifier",
- "src": "3092:9:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "3086:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "3086:16:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "3074:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "3074:29:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "3067:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "3067:37:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "3058:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "3058:47:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "3107:2:0",
- "type": "",
- "value": "31"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "3054:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "3054:56:0"
- },
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "3128:2:0",
- "type": "",
- "value": "31"
- }
- ],
- "functionName": {
- "name": "not",
- "nodeType": "YulIdentifier",
- "src": "3124:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "3124:7:0"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "3037:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "3037:147:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "3024:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "3024:161:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "3024:161:0"
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 5,
- "isOffset": false,
- "isSlot": false,
- "src": "2032:10:0",
- "valueSize": 1
- },
- {
- "declaration": 5,
- "isOffset": false,
- "isSlot": false,
- "src": "2434:10:0",
- "valueSize": 1
- },
- {
- "declaration": 3,
- "isOffset": false,
- "isSlot": false,
- "src": "1476:9:0",
- "valueSize": 1
- },
- {
- "declaration": 3,
- "isOffset": false,
- "isSlot": false,
- "src": "3092:9:0",
- "valueSize": 1
- },
- {
- "declaration": 3,
- "isOffset": false,
- "isSlot": false,
- "src": "889:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "1149:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "2063:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "2092:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "721:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "919:9:0",
- "valueSize": 1
- }
- ],
- "id": 13,
- "nodeType": "InlineAssembly",
- "src": "576:2619:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 14,
- "name": "tempBytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 11,
- "src": "3212:9:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 9,
- "id": 15,
- "nodeType": "Return",
- "src": "3205:16:0"
- }
- ]
- },
- "documentation": null,
- "id": 17,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "concat",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 6,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3,
- "mutability": "mutable",
- "name": "_preBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 17,
- "src": "418:22:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 2,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "418:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 5,
- "mutability": "mutable",
- "name": "_postBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 17,
- "src": "450:23:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 4,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "450:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "408:71:0"
- },
- "returnParameters": {
- "id": 9,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 8,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 17,
- "src": "515:12:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 7,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "515:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "514:14:0"
- },
- "scope": 333,
- "src": "393:2835:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 25,
- "nodeType": "Block",
- "src": "3316:5543:0",
- "statements": [
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "3335:5518:0",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "3546:34:0",
- "value": {
- "arguments": [
- {
- "name": "_preBytes_slot",
- "nodeType": "YulIdentifier",
- "src": "3565:14:0"
- }
- ],
- "functionName": {
- "name": "sload",
- "nodeType": "YulIdentifier",
- "src": "3559:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "3559:21:0"
- },
- "variables": [
- {
- "name": "fslot",
- "nodeType": "YulTypedName",
- "src": "3550:5:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "4045:76:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "fslot",
- "nodeType": "YulIdentifier",
- "src": "4068:5:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "4083:5:0",
- "type": "",
- "value": "0x100"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "fslot",
- "nodeType": "YulIdentifier",
- "src": "4101:5:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "4108:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "4097:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4097:13:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "4090:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4090:21:0"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "4079:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4079:33:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "4114:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "4075:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4075:41:0"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "4064:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4064:53:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "4119:1:0",
- "type": "",
- "value": "2"
- }
- ],
- "functionName": {
- "name": "div",
- "nodeType": "YulIdentifier",
- "src": "4060:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4060:61:0"
- },
- "variables": [
- {
- "name": "slength",
- "nodeType": "YulTypedName",
- "src": "4049:7:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "4134:32:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "4155:10:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "4149:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4149:17:0"
- },
- "variables": [
- {
- "name": "mlength",
- "nodeType": "YulTypedName",
- "src": "4138:7:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "4179:38:0",
- "value": {
- "arguments": [
- {
- "name": "slength",
- "nodeType": "YulIdentifier",
- "src": "4200:7:0"
- },
- {
- "name": "mlength",
- "nodeType": "YulIdentifier",
- "src": "4209:7:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "4196:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4196:21:0"
- },
- "variables": [
- {
- "name": "newlength",
- "nodeType": "YulTypedName",
- "src": "4183:9:0",
- "type": ""
- }
- ]
- },
- {
- "cases": [
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "4538:1193:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "name": "_preBytes_slot",
- "nodeType": "YulIdentifier",
- "src": "4803:14:0"
- },
- {
- "arguments": [
- {
- "name": "fslot",
- "nodeType": "YulIdentifier",
- "src": "5079:5:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "5221:10:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "5233:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "5217:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5217:21:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "5211:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5211:28:0"
- },
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "5308:5:0",
- "type": "",
- "value": "0x100"
- },
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "5319:2:0",
- "type": "",
- "value": "32"
- },
- {
- "name": "mlength",
- "nodeType": "YulIdentifier",
- "src": "5323:7:0"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "5315:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5315:16:0"
- }
- ],
- "functionName": {
- "name": "exp",
- "nodeType": "YulIdentifier",
- "src": "5304:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5304:28:0"
- }
- ],
- "functionName": {
- "name": "div",
- "nodeType": "YulIdentifier",
- "src": "5144:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5144:206:0"
- },
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "5491:5:0",
- "type": "",
- "value": "0x100"
- },
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "5502:2:0",
- "type": "",
- "value": "32"
- },
- {
- "name": "newlength",
- "nodeType": "YulIdentifier",
- "src": "5506:9:0"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "5498:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5498:18:0"
- }
- ],
- "functionName": {
- "name": "exp",
- "nodeType": "YulIdentifier",
- "src": "5487:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5487:30:0"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "5123:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5123:412:0"
- },
- {
- "arguments": [
- {
- "name": "mlength",
- "nodeType": "YulIdentifier",
- "src": "5652:7:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "5661:1:0",
- "type": "",
- "value": "2"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "5648:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5648:15:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "5102:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5102:579:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "4934:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4934:765:0"
- }
- ],
- "functionName": {
- "name": "sstore",
- "nodeType": "YulIdentifier",
- "src": "4779:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4779:938:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "4779:938:0"
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "4531:1200:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "4536:1:0",
- "type": "",
- "value": "2"
- }
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "5751:1827:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "5948:3:0",
- "type": "",
- "value": "0x0"
- },
- {
- "name": "_preBytes_slot",
- "nodeType": "YulIdentifier",
- "src": "5953:14:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "5941:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5941:27:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "5941:27:0"
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "5985:53:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "6009:3:0",
- "type": "",
- "value": "0x0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "6014:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "keccak256",
- "nodeType": "YulIdentifier",
- "src": "5999:9:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5999:20:0"
- },
- {
- "arguments": [
- {
- "name": "slength",
- "nodeType": "YulIdentifier",
- "src": "6025:7:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "6034:2:0",
- "type": "",
- "value": "32"
- }
- ],
- "functionName": {
- "name": "div",
- "nodeType": "YulIdentifier",
- "src": "6021:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6021:16:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "5995:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "5995:43:0"
- },
- "variables": [
- {
- "name": "sc",
- "nodeType": "YulTypedName",
- "src": "5989:2:0",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "_preBytes_slot",
- "nodeType": "YulIdentifier",
- "src": "6094:14:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "newlength",
- "nodeType": "YulIdentifier",
- "src": "6118:9:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "6129:1:0",
- "type": "",
- "value": "2"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "6114:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6114:17:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "6133:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "6110:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6110:25:0"
- }
- ],
- "functionName": {
- "name": "sstore",
- "nodeType": "YulIdentifier",
- "src": "6087:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6087:49:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "6087:49:0"
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "6692:30:0",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "6710:2:0",
- "type": "",
- "value": "32"
- },
- {
- "name": "slength",
- "nodeType": "YulIdentifier",
- "src": "6714:7:0"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "6706:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6706:16:0"
- },
- "variables": [
- {
- "name": "submod",
- "nodeType": "YulTypedName",
- "src": "6696:6:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "6739:33:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "6753:10:0"
- },
- {
- "name": "submod",
- "nodeType": "YulIdentifier",
- "src": "6765:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "6749:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6749:23:0"
- },
- "variables": [
- {
- "name": "mc",
- "nodeType": "YulTypedName",
- "src": "6743:2:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "6789:35:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "6804:10:0"
- },
- {
- "name": "mlength",
- "nodeType": "YulIdentifier",
- "src": "6816:7:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "6800:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6800:24:0"
- },
- "variables": [
- {
- "name": "end",
- "nodeType": "YulTypedName",
- "src": "6793:3:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "6841:38:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "6861:5:0",
- "type": "",
- "value": "0x100"
- },
- {
- "name": "submod",
- "nodeType": "YulIdentifier",
- "src": "6868:6:0"
- }
- ],
- "functionName": {
- "name": "exp",
- "nodeType": "YulIdentifier",
- "src": "6857:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6857:18:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "6877:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "6853:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6853:26:0"
- },
- "variables": [
- {
- "name": "mask",
- "nodeType": "YulTypedName",
- "src": "6845:4:0",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "6921:2:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "fslot",
- "nodeType": "YulIdentifier",
- "src": "6983:5:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7006:66:0",
- "type": "",
- "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "6962:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6962:128:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "7118:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "7112:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7112:9:0"
- },
- {
- "name": "mask",
- "nodeType": "YulIdentifier",
- "src": "7123:4:0"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "7108:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7108:20:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "6941:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6941:205:0"
- }
- ],
- "functionName": {
- "name": "sstore",
- "nodeType": "YulIdentifier",
- "src": "6897:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "6897:267:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "6897:267:0"
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "7392:61:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "7421:2:0"
- },
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "7431:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "7425:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7425:9:0"
- }
- ],
- "functionName": {
- "name": "sstore",
- "nodeType": "YulIdentifier",
- "src": "7414:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7414:21:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "7414:21:0"
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "7286:2:0"
- },
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "7290:3:0"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "7283:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7283:11:0"
- },
- "nodeType": "YulForLoop",
- "post": {
- "nodeType": "YulBlock",
- "src": "7295:96:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "7317:16:0",
- "value": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "7327:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7331:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "7323:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7323:10:0"
- },
- "variableNames": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "7317:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "7354:19:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "7364:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7368:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "7360:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7360:13:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "7354:2:0"
- }
- ]
- }
- ]
- },
- "pre": {
- "nodeType": "YulBlock",
- "src": "7186:96:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "7208:19:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "7218:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7222:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "7214:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7214:13:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "7208:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "7248:16:0",
- "value": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "7258:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7262:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "7254:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7254:10:0"
- },
- "variableNames": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "7248:2:0"
- }
- ]
- }
- ]
- },
- "src": "7182:271:0"
- },
- {
- "nodeType": "YulAssignment",
- "src": "7471:32:0",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7483:5:0",
- "type": "",
- "value": "0x100"
- },
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "7494:2:0"
- },
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "7498:3:0"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "7490:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7490:12:0"
- }
- ],
- "functionName": {
- "name": "exp",
- "nodeType": "YulIdentifier",
- "src": "7479:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7479:24:0"
- },
- "variableNames": [
- {
- "name": "mask",
- "nodeType": "YulIdentifier",
- "src": "7471:4:0"
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "7528:2:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "7546:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "7540:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7540:9:0"
- },
- {
- "name": "mask",
- "nodeType": "YulIdentifier",
- "src": "7551:4:0"
- }
- ],
- "functionName": {
- "name": "div",
- "nodeType": "YulIdentifier",
- "src": "7536:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7536:20:0"
- },
- {
- "name": "mask",
- "nodeType": "YulIdentifier",
- "src": "7558:4:0"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "7532:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7532:31:0"
- }
- ],
- "functionName": {
- "name": "sstore",
- "nodeType": "YulIdentifier",
- "src": "7521:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7521:43:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "7521:43:0"
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "5744:1834:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "5749:1:0",
- "type": "",
- "value": "1"
- }
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "7599:1244:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7692:3:0",
- "type": "",
- "value": "0x0"
- },
- {
- "name": "_preBytes_slot",
- "nodeType": "YulIdentifier",
- "src": "7697:14:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "7685:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7685:27:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "7685:27:0"
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "7801:53:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7825:3:0",
- "type": "",
- "value": "0x0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7830:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "keccak256",
- "nodeType": "YulIdentifier",
- "src": "7815:9:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7815:20:0"
- },
- {
- "arguments": [
- {
- "name": "slength",
- "nodeType": "YulIdentifier",
- "src": "7841:7:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7850:2:0",
- "type": "",
- "value": "32"
- }
- ],
- "functionName": {
- "name": "div",
- "nodeType": "YulIdentifier",
- "src": "7837:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7837:16:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "7811:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7811:43:0"
- },
- "variables": [
- {
- "name": "sc",
- "nodeType": "YulTypedName",
- "src": "7805:2:0",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "_preBytes_slot",
- "nodeType": "YulIdentifier",
- "src": "7910:14:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "newlength",
- "nodeType": "YulIdentifier",
- "src": "7934:9:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7945:1:0",
- "type": "",
- "value": "2"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "7930:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7930:17:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "7949:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "7926:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7926:25:0"
- }
- ],
- "functionName": {
- "name": "sstore",
- "nodeType": "YulIdentifier",
- "src": "7903:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "7903:49:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "7903:49:0"
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "8071:34:0",
- "value": {
- "arguments": [
- {
- "name": "slength",
- "nodeType": "YulIdentifier",
- "src": "8093:7:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8102:2:0",
- "type": "",
- "value": "32"
- }
- ],
- "functionName": {
- "name": "mod",
- "nodeType": "YulIdentifier",
- "src": "8089:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8089:16:0"
- },
- "variables": [
- {
- "name": "slengthmod",
- "nodeType": "YulTypedName",
- "src": "8075:10:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "8122:34:0",
- "value": {
- "arguments": [
- {
- "name": "mlength",
- "nodeType": "YulIdentifier",
- "src": "8144:7:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8153:2:0",
- "type": "",
- "value": "32"
- }
- ],
- "functionName": {
- "name": "mod",
- "nodeType": "YulIdentifier",
- "src": "8140:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8140:16:0"
- },
- "variables": [
- {
- "name": "mlengthmod",
- "nodeType": "YulTypedName",
- "src": "8126:10:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "8173:33:0",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8191:2:0",
- "type": "",
- "value": "32"
- },
- {
- "name": "slengthmod",
- "nodeType": "YulIdentifier",
- "src": "8195:10:0"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "8187:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8187:19:0"
- },
- "variables": [
- {
- "name": "submod",
- "nodeType": "YulTypedName",
- "src": "8177:6:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "8223:33:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "8237:10:0"
- },
- {
- "name": "submod",
- "nodeType": "YulIdentifier",
- "src": "8249:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8233:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8233:23:0"
- },
- "variables": [
- {
- "name": "mc",
- "nodeType": "YulTypedName",
- "src": "8227:2:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "8273:35:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "8288:10:0"
- },
- {
- "name": "mlength",
- "nodeType": "YulIdentifier",
- "src": "8300:7:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8284:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8284:24:0"
- },
- "variables": [
- {
- "name": "end",
- "nodeType": "YulTypedName",
- "src": "8277:3:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "8325:38:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8345:5:0",
- "type": "",
- "value": "0x100"
- },
- {
- "name": "submod",
- "nodeType": "YulIdentifier",
- "src": "8352:6:0"
- }
- ],
- "functionName": {
- "name": "exp",
- "nodeType": "YulIdentifier",
- "src": "8341:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8341:18:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8361:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "8337:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8337:26:0"
- },
- "variables": [
- {
- "name": "mask",
- "nodeType": "YulTypedName",
- "src": "8329:4:0",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "8388:2:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "8402:2:0"
- }
- ],
- "functionName": {
- "name": "sload",
- "nodeType": "YulIdentifier",
- "src": "8396:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8396:9:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "8417:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "8411:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8411:9:0"
- },
- {
- "name": "mask",
- "nodeType": "YulIdentifier",
- "src": "8422:4:0"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "8407:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8407:20:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8392:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8392:36:0"
- }
- ],
- "functionName": {
- "name": "sstore",
- "nodeType": "YulIdentifier",
- "src": "8381:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8381:48:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "8381:48:0"
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "8657:61:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "8686:2:0"
- },
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "8696:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "8690:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8690:9:0"
- }
- ],
- "functionName": {
- "name": "sstore",
- "nodeType": "YulIdentifier",
- "src": "8679:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8679:21:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "8679:21:0"
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "8551:2:0"
- },
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "8555:3:0"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "8548:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8548:11:0"
- },
- "nodeType": "YulForLoop",
- "post": {
- "nodeType": "YulBlock",
- "src": "8560:96:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "8582:16:0",
- "value": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "8592:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8596:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8588:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8588:10:0"
- },
- "variableNames": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "8582:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "8619:19:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "8629:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8633:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8625:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8625:13:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "8619:2:0"
- }
- ]
- }
- ]
- },
- "pre": {
- "nodeType": "YulBlock",
- "src": "8451:96:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "8473:16:0",
- "value": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "8483:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8487:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8479:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8479:10:0"
- },
- "variableNames": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "8473:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "8510:19:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "8520:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8524:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8516:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8516:13:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "8510:2:0"
- }
- ]
- }
- ]
- },
- "src": "8447:271:0"
- },
- {
- "nodeType": "YulAssignment",
- "src": "8736:32:0",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8748:5:0",
- "type": "",
- "value": "0x100"
- },
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "8759:2:0"
- },
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "8763:3:0"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "8755:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8755:12:0"
- }
- ],
- "functionName": {
- "name": "exp",
- "nodeType": "YulIdentifier",
- "src": "8744:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8744:24:0"
- },
- "variableNames": [
- {
- "name": "mask",
- "nodeType": "YulIdentifier",
- "src": "8736:4:0"
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "8793:2:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "8811:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "8805:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8805:9:0"
- },
- {
- "name": "mask",
- "nodeType": "YulIdentifier",
- "src": "8816:4:0"
- }
- ],
- "functionName": {
- "name": "div",
- "nodeType": "YulIdentifier",
- "src": "8801:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8801:20:0"
- },
- {
- "name": "mask",
- "nodeType": "YulIdentifier",
- "src": "8823:4:0"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "8797:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8797:31:0"
- }
- ],
- "functionName": {
- "name": "sstore",
- "nodeType": "YulIdentifier",
- "src": "8786:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "8786:43:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "8786:43:0"
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "7591:1252:0",
- "value": "default"
- }
- ],
- "expression": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "slength",
- "nodeType": "YulIdentifier",
- "src": "4486:7:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "4495:2:0",
- "type": "",
- "value": "32"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "4483:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4483:15:0"
- },
- {
- "arguments": [
- {
- "name": "newlength",
- "nodeType": "YulIdentifier",
- "src": "4503:9:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "4514:2:0",
- "type": "",
- "value": "32"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "4500:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4500:17:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "4479:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "4479:39:0"
- },
- "nodeType": "YulSwitch",
- "src": "4472:4371:0"
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "4155:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "5221:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "6753:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "6804:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "8237:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "8288:10:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "3565:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "4803:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "5953:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "6094:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "7697:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "7910:14:0",
- "valueSize": 1
- }
- ],
- "id": 24,
- "nodeType": "InlineAssembly",
- "src": "3326:5527:0"
- }
- ]
- },
- "documentation": null,
- "id": 26,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "concatStorage",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 22,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 19,
- "mutability": "mutable",
- "name": "_preBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 26,
- "src": "3257:23:0",
- "stateVariable": false,
- "storageLocation": "storage",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 18,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3257:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 21,
- "mutability": "mutable",
- "name": "_postBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 26,
- "src": "3282:23:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 20,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3282:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3256:50:0"
- },
- "returnParameters": {
- "id": 23,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "3316:0:0"
- },
- "scope": 333,
- "src": "3234:5625:0",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 54,
- "nodeType": "Block",
- "src": "9017:2328:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 44,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 38,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 28,
- "src": "9035:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 39,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "9035:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 42,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 40,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 30,
- "src": "9053:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "id": 41,
- "name": "_length",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 32,
- "src": "9062:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "9053:16:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 43,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "9052:18:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "9035:35:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 45,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9072:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 37,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "9027:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 46,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9027:66:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 47,
- "nodeType": "ExpressionStatement",
- "src": "9027:66:0"
- },
- {
- "assignments": [49],
- "declarations": [
- {
- "constant": false,
- "id": 49,
- "mutability": "mutable",
- "name": "tempBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 54,
- "src": "9104:22:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 48,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "9104:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 50,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "9104:22:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "9146:2166:0",
- "statements": [
- {
- "cases": [
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "9202:1888:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "9350:24:0",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "9369:4:0",
- "type": "",
- "value": "0x40"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "9363:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "9363:11:0"
- },
- "variableNames": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "9350:9:0"
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "9966:33:0",
- "value": {
- "arguments": [
- {
- "name": "_length",
- "nodeType": "YulIdentifier",
- "src": "9987:7:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "9996:2:0",
- "type": "",
- "value": "31"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "9983:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "9983:16:0"
- },
- "variables": [
- {
- "name": "lengthmod",
- "nodeType": "YulTypedName",
- "src": "9970:9:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "10304:70:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "10322:9:0"
- },
- {
- "name": "lengthmod",
- "nodeType": "YulIdentifier",
- "src": "10333:9:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "10318:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10318:25:0"
- },
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "10349:4:0",
- "type": "",
- "value": "0x20"
- },
- {
- "arguments": [
- {
- "name": "lengthmod",
- "nodeType": "YulIdentifier",
- "src": "10362:9:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "10355:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10355:17:0"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "10345:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10345:28:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "10314:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10314:60:0"
- },
- "variables": [
- {
- "name": "mc",
- "nodeType": "YulTypedName",
- "src": "10308:2:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "10391:27:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "10406:2:0"
- },
- {
- "name": "_length",
- "nodeType": "YulIdentifier",
- "src": "10410:7:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "10402:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10402:16:0"
- },
- "variables": [
- {
- "name": "end",
- "nodeType": "YulTypedName",
- "src": "10395:3:0",
- "type": ""
- }
- ]
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "10792:61:0",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "10821:2:0"
- },
- {
- "arguments": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "10831:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "10825:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10825:9:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "10814:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10814:21:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "10814:21:0"
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "10683:2:0"
- },
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "10687:3:0"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "10680:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10680:11:0"
- },
- "nodeType": "YulForLoop",
- "post": {
- "nodeType": "YulBlock",
- "src": "10692:99:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "10714:19:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "10724:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "10728:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "10720:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10720:13:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "10714:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "10754:19:0",
- "value": {
- "arguments": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "10764:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "10768:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "10760:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10760:13:0"
- },
- "variableNames": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "10754:2:0"
- }
- ]
- }
- ]
- },
- "pre": {
- "nodeType": "YulBlock",
- "src": "10440:239:0",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "10581:80:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "10603:6:0"
- },
- {
- "name": "lengthmod",
- "nodeType": "YulIdentifier",
- "src": "10611:9:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "10599:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10599:22:0"
- },
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "10627:4:0",
- "type": "",
- "value": "0x20"
- },
- {
- "arguments": [
- {
- "name": "lengthmod",
- "nodeType": "YulIdentifier",
- "src": "10640:9:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "10633:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10633:17:0"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "10623:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10623:28:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "10595:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10595:57:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "10654:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "10591:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10591:70:0"
- },
- "variables": [
- {
- "name": "cc",
- "nodeType": "YulTypedName",
- "src": "10585:2:0",
- "type": ""
- }
- ]
- }
- ]
- },
- "src": "10436:417:0"
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "10878:9:0"
- },
- {
- "name": "_length",
- "nodeType": "YulIdentifier",
- "src": "10889:7:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "10871:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "10871:26:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "10871:26:0"
- },
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "11044:4:0",
- "type": "",
- "value": "0x40"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "11058:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "11062:2:0",
- "type": "",
- "value": "31"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "11054:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11054:11:0"
- },
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "11071:2:0",
- "type": "",
- "value": "31"
- }
- ],
- "functionName": {
- "name": "not",
- "nodeType": "YulIdentifier",
- "src": "11067:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11067:7:0"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "11050:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11050:25:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "11037:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11037:39:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "11037:39:0"
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "9195:1895:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "9200:1:0",
- "type": "",
- "value": "0"
- }
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "11194:108:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "11212:24:0",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "11231:4:0",
- "type": "",
- "value": "0x40"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "11225:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11225:11:0"
- },
- "variableNames": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "11212:9:0"
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "11261:4:0",
- "type": "",
- "value": "0x40"
- },
- {
- "arguments": [
- {
- "name": "tempBytes",
- "nodeType": "YulIdentifier",
- "src": "11271:9:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "11282:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "11267:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11267:20:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "11254:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11254:34:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "11254:34:0"
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "11186:116:0",
- "value": "default"
- }
- ],
- "expression": {
- "arguments": [
- {
- "name": "_length",
- "nodeType": "YulIdentifier",
- "src": "9174:7:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "9167:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "9167:15:0"
- },
- "nodeType": "YulSwitch",
- "src": "9160:2142:0"
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 28,
- "isOffset": false,
- "isSlot": false,
- "src": "10603:6:0",
- "valueSize": 1
- },
- {
- "declaration": 32,
- "isOffset": false,
- "isSlot": false,
- "src": "10410:7:0",
- "valueSize": 1
- },
- {
- "declaration": 32,
- "isOffset": false,
- "isSlot": false,
- "src": "10889:7:0",
- "valueSize": 1
- },
- {
- "declaration": 32,
- "isOffset": false,
- "isSlot": false,
- "src": "9174:7:0",
- "valueSize": 1
- },
- {
- "declaration": 32,
- "isOffset": false,
- "isSlot": false,
- "src": "9987:7:0",
- "valueSize": 1
- },
- {
- "declaration": 30,
- "isOffset": false,
- "isSlot": false,
- "src": "10654:6:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "10322:9:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "10878:9:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "11212:9:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "11271:9:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "9350:9:0",
- "valueSize": 1
- }
- ],
- "id": 51,
- "nodeType": "InlineAssembly",
- "src": "9137:2175:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 52,
- "name": "tempBytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 49,
- "src": "11329:9:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "functionReturnParameters": 36,
- "id": 53,
- "nodeType": "Return",
- "src": "11322:16:0"
- }
- ]
- },
- "documentation": null,
- "id": 55,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "slice",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 33,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 28,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 55,
- "src": "8889:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 27,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "8889:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 30,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 55,
- "src": "8918:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 29,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "8918:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 32,
- "mutability": "mutable",
- "name": "_length",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 55,
- "src": "8942:15:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 31,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "8942:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "8879:84:0"
- },
- "returnParameters": {
- "id": 36,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 35,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 55,
- "src": "8999:12:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 34,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "8999:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "8998:14:0"
- },
- "scope": 333,
- "src": "8865:2480:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 81,
- "nodeType": "Block",
- "src": "11439:265:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 71,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 65,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 57,
- "src": "11457:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 66,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11457:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 69,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 67,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 59,
- "src": "11475:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3230",
- "id": 68,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11484:2:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_20_by_1",
- "typeString": "int_const 20"
- },
- "value": "20"
- },
- "src": "11475:11:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 70,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "11474:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "11457:30:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 72,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11489:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 64,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "11449:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 73,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11449:61:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 74,
- "nodeType": "ExpressionStatement",
- "src": "11449:61:0"
- },
- {
- "assignments": [76],
- "declarations": [
- {
- "constant": false,
- "id": 76,
- "mutability": "mutable",
- "name": "tempAddress",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 81,
- "src": "11520:19:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 75,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "11520:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 77,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "11520:19:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "11559:110:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "11573:86:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "11606:6:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "11614:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "11602:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11602:17:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "11621:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "11598:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11598:30:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "11592:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11592:37:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "11631:27:0",
- "type": "",
- "value": "0x1000000000000000000000000"
- }
- ],
- "functionName": {
- "name": "div",
- "nodeType": "YulIdentifier",
- "src": "11588:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11588:71:0"
- },
- "variableNames": [
- {
- "name": "tempAddress",
- "nodeType": "YulIdentifier",
- "src": "11573:11:0"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 57,
- "isOffset": false,
- "isSlot": false,
- "src": "11606:6:0",
- "valueSize": 1
- },
- {
- "declaration": 59,
- "isOffset": false,
- "isSlot": false,
- "src": "11621:6:0",
- "valueSize": 1
- },
- {
- "declaration": 76,
- "isOffset": false,
- "isSlot": false,
- "src": "11573:11:0",
- "valueSize": 1
- }
- ],
- "id": 78,
- "nodeType": "InlineAssembly",
- "src": "11550:119:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 79,
- "name": "tempAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 76,
- "src": "11686:11:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "functionReturnParameters": 63,
- "id": 80,
- "nodeType": "Return",
- "src": "11679:18:0"
- }
- ]
- },
- "documentation": null,
- "id": 82,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "toAddress",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 60,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 57,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 82,
- "src": "11370:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 56,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "11370:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 59,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 82,
- "src": "11391:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 58,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11391:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "11369:37:0"
- },
- "returnParameters": {
- "id": 63,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 62,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 82,
- "src": "11430:7:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 61,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "11430:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "11429:9:0"
- },
- "scope": 333,
- "src": "11351:353:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 108,
- "nodeType": "Block",
- "src": "11794:218:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 98,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 92,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 84,
- "src": "11812:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 93,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11812:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 96,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 94,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 86,
- "src": "11830:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 95,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11839:1:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "src": "11830:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 97,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "11829:12:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "11812:29:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 99,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11843:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 91,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "11804:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 100,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11804:60:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 101,
- "nodeType": "ExpressionStatement",
- "src": "11804:60:0"
- },
- {
- "assignments": [103],
- "declarations": [
- {
- "constant": false,
- "id": 103,
- "mutability": "mutable",
- "name": "tempUint",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 108,
- "src": "11874:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 102,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "11874:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 104,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "11874:14:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "11908:72:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "11922:48:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "11948:6:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "11956:3:0",
- "type": "",
- "value": "0x1"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "11944:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11944:16:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "11962:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "11940:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11940:29:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "11934:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "11934:36:0"
- },
- "variableNames": [
- {
- "name": "tempUint",
- "nodeType": "YulIdentifier",
- "src": "11922:8:0"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 84,
- "isOffset": false,
- "isSlot": false,
- "src": "11948:6:0",
- "valueSize": 1
- },
- {
- "declaration": 86,
- "isOffset": false,
- "isSlot": false,
- "src": "11962:6:0",
- "valueSize": 1
- },
- {
- "declaration": 103,
- "isOffset": false,
- "isSlot": false,
- "src": "11922:8:0",
- "valueSize": 1
- }
- ],
- "id": 105,
- "nodeType": "InlineAssembly",
- "src": "11899:81:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 106,
- "name": "tempUint",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 103,
- "src": "11997:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "functionReturnParameters": 90,
- "id": 107,
- "nodeType": "Return",
- "src": "11990:15:0"
- }
- ]
- },
- "documentation": null,
- "id": 109,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "toUint8",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 87,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 84,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 109,
- "src": "11727:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 83,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "11727:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 86,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 109,
- "src": "11748:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 85,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11748:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "11726:37:0"
- },
- "returnParameters": {
- "id": 90,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 89,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 109,
- "src": "11787:5:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 88,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "11787:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "11786:7:0"
- },
- "scope": 333,
- "src": "11710:302:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 135,
- "nodeType": "Block",
- "src": "12104:219:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 125,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 119,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 111,
- "src": "12122:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 120,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "12122:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 123,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 121,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 113,
- "src": "12140:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 122,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "12149:1:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "src": "12140:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 124,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "12139:12:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "12122:29:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 126,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "12153:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 118,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "12114:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 127,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "12114:60:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 128,
- "nodeType": "ExpressionStatement",
- "src": "12114:60:0"
- },
- {
- "assignments": [130],
- "declarations": [
- {
- "constant": false,
- "id": 130,
- "mutability": "mutable",
- "name": "tempUint",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 135,
- "src": "12184:15:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint16",
- "typeString": "uint16"
- },
- "typeName": {
- "id": 129,
- "name": "uint16",
- "nodeType": "ElementaryTypeName",
- "src": "12184:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint16",
- "typeString": "uint16"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 131,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "12184:15:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "12219:72:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "12233:48:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "12259:6:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "12267:3:0",
- "type": "",
- "value": "0x2"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "12255:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "12255:16:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "12273:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "12251:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "12251:29:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "12245:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "12245:36:0"
- },
- "variableNames": [
- {
- "name": "tempUint",
- "nodeType": "YulIdentifier",
- "src": "12233:8:0"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 111,
- "isOffset": false,
- "isSlot": false,
- "src": "12259:6:0",
- "valueSize": 1
- },
- {
- "declaration": 113,
- "isOffset": false,
- "isSlot": false,
- "src": "12273:6:0",
- "valueSize": 1
- },
- {
- "declaration": 130,
- "isOffset": false,
- "isSlot": false,
- "src": "12233:8:0",
- "valueSize": 1
- }
- ],
- "id": 132,
- "nodeType": "InlineAssembly",
- "src": "12210:81:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 133,
- "name": "tempUint",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 130,
- "src": "12308:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint16",
- "typeString": "uint16"
- }
- },
- "functionReturnParameters": 117,
- "id": 134,
- "nodeType": "Return",
- "src": "12301:15:0"
- }
- ]
- },
- "documentation": null,
- "id": 136,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "toUint16",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 114,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 111,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 136,
- "src": "12036:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 110,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "12036:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 113,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 136,
- "src": "12057:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 112,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "12057:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "12035:37:0"
- },
- "returnParameters": {
- "id": 117,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 116,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 136,
- "src": "12096:6:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint16",
- "typeString": "uint16"
- },
- "typeName": {
- "id": 115,
- "name": "uint16",
- "nodeType": "ElementaryTypeName",
- "src": "12096:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint16",
- "typeString": "uint16"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "12095:8:0"
- },
- "scope": 333,
- "src": "12018:305:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 162,
- "nodeType": "Block",
- "src": "12415:219:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 152,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 146,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 138,
- "src": "12433:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 147,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "12433:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 150,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 148,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 140,
- "src": "12451:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "34",
- "id": 149,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "12460:1:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- },
- "value": "4"
- },
- "src": "12451:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 151,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "12450:12:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "12433:29:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 153,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "12464:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 145,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "12425:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 154,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "12425:60:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 155,
- "nodeType": "ExpressionStatement",
- "src": "12425:60:0"
- },
- {
- "assignments": [157],
- "declarations": [
- {
- "constant": false,
- "id": 157,
- "mutability": "mutable",
- "name": "tempUint",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 162,
- "src": "12495:15:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 156,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "12495:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 158,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "12495:15:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "12530:72:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "12544:48:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "12570:6:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "12578:3:0",
- "type": "",
- "value": "0x4"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "12566:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "12566:16:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "12584:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "12562:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "12562:29:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "12556:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "12556:36:0"
- },
- "variableNames": [
- {
- "name": "tempUint",
- "nodeType": "YulIdentifier",
- "src": "12544:8:0"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 138,
- "isOffset": false,
- "isSlot": false,
- "src": "12570:6:0",
- "valueSize": 1
- },
- {
- "declaration": 140,
- "isOffset": false,
- "isSlot": false,
- "src": "12584:6:0",
- "valueSize": 1
- },
- {
- "declaration": 157,
- "isOffset": false,
- "isSlot": false,
- "src": "12544:8:0",
- "valueSize": 1
- }
- ],
- "id": 159,
- "nodeType": "InlineAssembly",
- "src": "12521:81:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 160,
- "name": "tempUint",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 157,
- "src": "12619:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "functionReturnParameters": 144,
- "id": 161,
- "nodeType": "Return",
- "src": "12612:15:0"
- }
- ]
- },
- "documentation": null,
- "id": 163,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "toUint32",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 141,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 138,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 163,
- "src": "12347:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 137,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "12347:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 140,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 163,
- "src": "12368:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 139,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "12368:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "12346:37:0"
- },
- "returnParameters": {
- "id": 144,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 143,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 163,
- "src": "12407:6:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 142,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "12407:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "12406:8:0"
- },
- "scope": 333,
- "src": "12329:305:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 189,
- "nodeType": "Block",
- "src": "12726:219:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 179,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 173,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 165,
- "src": "12744:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 174,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "12744:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 177,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 175,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 167,
- "src": "12762:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "38",
- "id": 176,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "12771:1:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_8_by_1",
- "typeString": "int_const 8"
- },
- "value": "8"
- },
- "src": "12762:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 178,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "12761:12:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "12744:29:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 180,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "12775:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 172,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "12736:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 181,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "12736:60:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 182,
- "nodeType": "ExpressionStatement",
- "src": "12736:60:0"
- },
- {
- "assignments": [184],
- "declarations": [
- {
- "constant": false,
- "id": 184,
- "mutability": "mutable",
- "name": "tempUint",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 189,
- "src": "12806:15:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- },
- "typeName": {
- "id": 183,
- "name": "uint64",
- "nodeType": "ElementaryTypeName",
- "src": "12806:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 185,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "12806:15:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "12841:72:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "12855:48:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "12881:6:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "12889:3:0",
- "type": "",
- "value": "0x8"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "12877:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "12877:16:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "12895:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "12873:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "12873:29:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "12867:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "12867:36:0"
- },
- "variableNames": [
- {
- "name": "tempUint",
- "nodeType": "YulIdentifier",
- "src": "12855:8:0"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 165,
- "isOffset": false,
- "isSlot": false,
- "src": "12881:6:0",
- "valueSize": 1
- },
- {
- "declaration": 167,
- "isOffset": false,
- "isSlot": false,
- "src": "12895:6:0",
- "valueSize": 1
- },
- {
- "declaration": 184,
- "isOffset": false,
- "isSlot": false,
- "src": "12855:8:0",
- "valueSize": 1
- }
- ],
- "id": 186,
- "nodeType": "InlineAssembly",
- "src": "12832:81:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 187,
- "name": "tempUint",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 184,
- "src": "12930:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- }
- },
- "functionReturnParameters": 171,
- "id": 188,
- "nodeType": "Return",
- "src": "12923:15:0"
- }
- ]
- },
- "documentation": null,
- "id": 190,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "toUint64",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 168,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 165,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 190,
- "src": "12658:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 164,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "12658:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 167,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 190,
- "src": "12679:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 166,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "12679:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "12657:37:0"
- },
- "returnParameters": {
- "id": 171,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 170,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 190,
- "src": "12718:6:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- },
- "typeName": {
- "id": 169,
- "name": "uint64",
- "nodeType": "ElementaryTypeName",
- "src": "12718:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "12717:8:0"
- },
- "scope": 333,
- "src": "12640:305:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 216,
- "nodeType": "Block",
- "src": "13037:220:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 206,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 200,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 192,
- "src": "13055:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 201,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "13055:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 204,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 202,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 194,
- "src": "13073:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3132",
- "id": 203,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "13082:2:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_12_by_1",
- "typeString": "int_const 12"
- },
- "value": "12"
- },
- "src": "13073:11:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 205,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "13072:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "13055:30:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 207,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "13087:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 199,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "13047:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 208,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "13047:61:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 209,
- "nodeType": "ExpressionStatement",
- "src": "13047:61:0"
- },
- {
- "assignments": [211],
- "declarations": [
- {
- "constant": false,
- "id": 211,
- "mutability": "mutable",
- "name": "tempUint",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 216,
- "src": "13118:15:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint96",
- "typeString": "uint96"
- },
- "typeName": {
- "id": 210,
- "name": "uint96",
- "nodeType": "ElementaryTypeName",
- "src": "13118:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint96",
- "typeString": "uint96"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 212,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "13118:15:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "13153:72:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "13167:48:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "13193:6:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "13201:3:0",
- "type": "",
- "value": "0xc"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "13189:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "13189:16:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "13207:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "13185:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "13185:29:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "13179:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "13179:36:0"
- },
- "variableNames": [
- {
- "name": "tempUint",
- "nodeType": "YulIdentifier",
- "src": "13167:8:0"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 192,
- "isOffset": false,
- "isSlot": false,
- "src": "13193:6:0",
- "valueSize": 1
- },
- {
- "declaration": 194,
- "isOffset": false,
- "isSlot": false,
- "src": "13207:6:0",
- "valueSize": 1
- },
- {
- "declaration": 211,
- "isOffset": false,
- "isSlot": false,
- "src": "13167:8:0",
- "valueSize": 1
- }
- ],
- "id": 213,
- "nodeType": "InlineAssembly",
- "src": "13144:81:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 214,
- "name": "tempUint",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 211,
- "src": "13242:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint96",
- "typeString": "uint96"
- }
- },
- "functionReturnParameters": 198,
- "id": 215,
- "nodeType": "Return",
- "src": "13235:15:0"
- }
- ]
- },
- "documentation": null,
- "id": 217,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "toUint96",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 195,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 192,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 217,
- "src": "12969:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 191,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "12969:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 194,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 217,
- "src": "12990:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 193,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "12990:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "12968:37:0"
- },
- "returnParameters": {
- "id": 198,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 197,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 217,
- "src": "13029:6:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint96",
- "typeString": "uint96"
- },
- "typeName": {
- "id": 196,
- "name": "uint96",
- "nodeType": "ElementaryTypeName",
- "src": "13029:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint96",
- "typeString": "uint96"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "13028:8:0"
- },
- "scope": 333,
- "src": "12951:306:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 243,
- "nodeType": "Block",
- "src": "13351:222:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 233,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 227,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 219,
- "src": "13369:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 228,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "13369:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 231,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 229,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 221,
- "src": "13387:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3136",
- "id": 230,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "13396:2:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_16_by_1",
- "typeString": "int_const 16"
- },
- "value": "16"
- },
- "src": "13387:11:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 232,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "13386:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "13369:30:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 234,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "13401:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 226,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "13361:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 235,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "13361:61:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 236,
- "nodeType": "ExpressionStatement",
- "src": "13361:61:0"
- },
- {
- "assignments": [238],
- "declarations": [
- {
- "constant": false,
- "id": 238,
- "mutability": "mutable",
- "name": "tempUint",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 243,
- "src": "13432:16:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint128",
- "typeString": "uint128"
- },
- "typeName": {
- "id": 237,
- "name": "uint128",
- "nodeType": "ElementaryTypeName",
- "src": "13432:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint128",
- "typeString": "uint128"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 239,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "13432:16:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "13468:73:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "13482:49:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "13508:6:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "13516:4:0",
- "type": "",
- "value": "0x10"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "13504:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "13504:17:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "13523:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "13500:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "13500:30:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "13494:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "13494:37:0"
- },
- "variableNames": [
- {
- "name": "tempUint",
- "nodeType": "YulIdentifier",
- "src": "13482:8:0"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 219,
- "isOffset": false,
- "isSlot": false,
- "src": "13508:6:0",
- "valueSize": 1
- },
- {
- "declaration": 221,
- "isOffset": false,
- "isSlot": false,
- "src": "13523:6:0",
- "valueSize": 1
- },
- {
- "declaration": 238,
- "isOffset": false,
- "isSlot": false,
- "src": "13482:8:0",
- "valueSize": 1
- }
- ],
- "id": 240,
- "nodeType": "InlineAssembly",
- "src": "13459:82:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 241,
- "name": "tempUint",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 238,
- "src": "13558:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint128",
- "typeString": "uint128"
- }
- },
- "functionReturnParameters": 225,
- "id": 242,
- "nodeType": "Return",
- "src": "13551:15:0"
- }
- ]
- },
- "documentation": null,
- "id": 244,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "toUint128",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 222,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 219,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 244,
- "src": "13282:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 218,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "13282:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 221,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 244,
- "src": "13303:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 220,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "13303:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "13281:37:0"
- },
- "returnParameters": {
- "id": 225,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 224,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 244,
- "src": "13342:7:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint128",
- "typeString": "uint128"
- },
- "typeName": {
- "id": 223,
- "name": "uint128",
- "nodeType": "ElementaryTypeName",
- "src": "13342:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint128",
- "typeString": "uint128"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "13341:9:0"
- },
- "scope": 333,
- "src": "13263:310:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 270,
- "nodeType": "Block",
- "src": "13667:222:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 260,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 254,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 246,
- "src": "13685:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 255,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "13685:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 258,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 256,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 248,
- "src": "13703:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3332",
- "id": 257,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "13712:2:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_32_by_1",
- "typeString": "int_const 32"
- },
- "value": "32"
- },
- "src": "13703:11:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 259,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "13702:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "13685:30:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 261,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "13717:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 253,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "13677:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 262,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "13677:61:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 263,
- "nodeType": "ExpressionStatement",
- "src": "13677:61:0"
- },
- {
- "assignments": [265],
- "declarations": [
- {
- "constant": false,
- "id": 265,
- "mutability": "mutable",
- "name": "tempUint",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 270,
- "src": "13748:16:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 264,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "13748:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 266,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "13748:16:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "13784:73:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "13798:49:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "13824:6:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "13832:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "13820:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "13820:17:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "13839:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "13816:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "13816:30:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "13810:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "13810:37:0"
- },
- "variableNames": [
- {
- "name": "tempUint",
- "nodeType": "YulIdentifier",
- "src": "13798:8:0"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 246,
- "isOffset": false,
- "isSlot": false,
- "src": "13824:6:0",
- "valueSize": 1
- },
- {
- "declaration": 248,
- "isOffset": false,
- "isSlot": false,
- "src": "13839:6:0",
- "valueSize": 1
- },
- {
- "declaration": 265,
- "isOffset": false,
- "isSlot": false,
- "src": "13798:8:0",
- "valueSize": 1
- }
- ],
- "id": 267,
- "nodeType": "InlineAssembly",
- "src": "13775:82:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 268,
- "name": "tempUint",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 265,
- "src": "13874:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 252,
- "id": 269,
- "nodeType": "Return",
- "src": "13867:15:0"
- }
- ]
- },
- "documentation": null,
- "id": 271,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "toUint256",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 249,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 246,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 271,
- "src": "13598:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 245,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "13598:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 248,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 271,
- "src": "13619:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 247,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "13619:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "13597:37:0"
- },
- "returnParameters": {
- "id": 252,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 251,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 271,
- "src": "13658:7:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 250,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "13658:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "13657:9:0"
- },
- "scope": 333,
- "src": "13579:310:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 297,
- "nodeType": "Block",
- "src": "13983:231:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 287,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 281,
- "name": "_bytes",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 273,
- "src": "14001:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 282,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "14001:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 285,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 283,
- "name": "_start",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 275,
- "src": "14019:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3332",
- "id": 284,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "14028:2:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_32_by_1",
- "typeString": "int_const 32"
- },
- "value": "32"
- },
- "src": "14019:11:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 286,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "14018:13:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "14001:30:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "52656164206f7574206f6620626f756e6473",
- "id": 288,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "14033:20:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- },
- "value": "Read out of bounds"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "id": 280,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "13993:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 289,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "13993:61:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 290,
- "nodeType": "ExpressionStatement",
- "src": "13993:61:0"
- },
- {
- "assignments": [292],
- "declarations": [
- {
- "constant": false,
- "id": 292,
- "mutability": "mutable",
- "name": "tempBytes32",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 297,
- "src": "14064:19:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 291,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "14064:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 293,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "14064:19:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "14103:76:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "14117:52:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_bytes",
- "nodeType": "YulIdentifier",
- "src": "14146:6:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "14154:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "14142:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "14142:17:0"
- },
- {
- "name": "_start",
- "nodeType": "YulIdentifier",
- "src": "14161:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "14138:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "14138:30:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "14132:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "14132:37:0"
- },
- "variableNames": [
- {
- "name": "tempBytes32",
- "nodeType": "YulIdentifier",
- "src": "14117:11:0"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 273,
- "isOffset": false,
- "isSlot": false,
- "src": "14146:6:0",
- "valueSize": 1
- },
- {
- "declaration": 275,
- "isOffset": false,
- "isSlot": false,
- "src": "14161:6:0",
- "valueSize": 1
- },
- {
- "declaration": 292,
- "isOffset": false,
- "isSlot": false,
- "src": "14117:11:0",
- "valueSize": 1
- }
- ],
- "id": 294,
- "nodeType": "InlineAssembly",
- "src": "14094:85:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 295,
- "name": "tempBytes32",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 292,
- "src": "14196:11:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "functionReturnParameters": 279,
- "id": 296,
- "nodeType": "Return",
- "src": "14189:18:0"
- }
- ]
- },
- "documentation": null,
- "id": 298,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "toBytes32",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 276,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 273,
- "mutability": "mutable",
- "name": "_bytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 298,
- "src": "13914:19:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 272,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "13914:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 275,
- "mutability": "mutable",
- "name": "_start",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 298,
- "src": "13935:14:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 274,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "13935:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "13913:37:0"
- },
- "returnParameters": {
- "id": 279,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 278,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 298,
- "src": "13974:7:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 277,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "13974:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "13973:9:0"
- },
- "scope": 333,
- "src": "13895:319:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 314,
- "nodeType": "Block",
- "src": "14313:1291:0",
- "statements": [
- {
- "assignments": [308],
- "declarations": [
- {
- "constant": false,
- "id": 308,
- "mutability": "mutable",
- "name": "success",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 314,
- "src": "14323:12:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 307,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "14323:4:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 310,
- "initialValue": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 309,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "14338:4:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "14323:19:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "14362:1211:0",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "14376:30:0",
- "value": {
- "arguments": [
- {
- "name": "_preBytes",
- "nodeType": "YulIdentifier",
- "src": "14396:9:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "14390:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "14390:16:0"
- },
- "variables": [
- {
- "name": "length",
- "nodeType": "YulTypedName",
- "src": "14380:6:0",
- "type": ""
- }
- ]
- },
- {
- "cases": [
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "14535:937:0",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "14748:11:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "14758:1:0",
- "type": "",
- "value": "1"
- },
- "variables": [
- {
- "name": "cb",
- "nodeType": "YulTypedName",
- "src": "14752:2:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "14777:30:0",
- "value": {
- "arguments": [
- {
- "name": "_preBytes",
- "nodeType": "YulIdentifier",
- "src": "14791:9:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "14802:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "14787:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "14787:20:0"
- },
- "variables": [
- {
- "name": "mc",
- "nodeType": "YulTypedName",
- "src": "14781:2:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "14824:26:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "14839:2:0"
- },
- {
- "name": "length",
- "nodeType": "YulIdentifier",
- "src": "14843:6:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "14835:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "14835:15:0"
- },
- "variables": [
- {
- "name": "end",
- "nodeType": "YulTypedName",
- "src": "14828:3:0",
- "type": ""
- }
- ]
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "15182:276:0",
- "statements": [
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "15314:126:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "15374:12:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "15385:1:0",
- "type": "",
- "value": "0"
- },
- "variableNames": [
- {
- "name": "success",
- "nodeType": "YulIdentifier",
- "src": "15374:7:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "15411:7:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "15417:1:0",
- "type": "",
- "value": "0"
- },
- "variableNames": [
- {
- "name": "cb",
- "nodeType": "YulIdentifier",
- "src": "15411:2:0"
- }
- ]
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "15297:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "15291:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15291:9:0"
- },
- {
- "arguments": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "15308:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "15302:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15302:9:0"
- }
- ],
- "functionName": {
- "name": "eq",
- "nodeType": "YulIdentifier",
- "src": "15288:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15288:24:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "15281:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15281:32:0"
- },
- "nodeType": "YulIf",
- "src": "15278:2:0"
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "15064:2:0"
- },
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "15068:3:0"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "15061:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15061:11:0"
- },
- {
- "name": "cb",
- "nodeType": "YulIdentifier",
- "src": "15074:2:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "15057:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15057:20:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "15079:1:0",
- "type": "",
- "value": "2"
- }
- ],
- "functionName": {
- "name": "eq",
- "nodeType": "YulIdentifier",
- "src": "15054:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15054:27:0"
- },
- "nodeType": "YulForLoop",
- "post": {
- "nodeType": "YulBlock",
- "src": "15082:99:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "15104:19:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "15114:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "15118:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "15110:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15110:13:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "15104:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "15144:19:0",
- "value": {
- "arguments": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "15154:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "15158:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "15150:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15150:13:0"
- },
- "variableNames": [
- {
- "name": "cc",
- "nodeType": "YulIdentifier",
- "src": "15144:2:0"
- }
- ]
- }
- ]
- },
- "pre": {
- "nodeType": "YulBlock",
- "src": "14872:181:0",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "14894:31:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "14908:10:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "14920:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "14904:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "14904:21:0"
- },
- "variables": [
- {
- "name": "cc",
- "nodeType": "YulTypedName",
- "src": "14898:2:0",
- "type": ""
- }
- ]
- }
- ]
- },
- "src": "14868:590:0"
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "14528:944:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "14533:1:0",
- "type": "",
- "value": "1"
- }
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "15493:70:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "15537:12:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "15548:1:0",
- "type": "",
- "value": "0"
- },
- "variableNames": [
- {
- "name": "success",
- "nodeType": "YulIdentifier",
- "src": "15537:7:0"
- }
- ]
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "15485:78:0",
- "value": "default"
- }
- ],
- "expression": {
- "arguments": [
- {
- "name": "length",
- "nodeType": "YulIdentifier",
- "src": "14489:6:0"
- },
- {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "14503:10:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "14497:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "14497:17:0"
- }
- ],
- "functionName": {
- "name": "eq",
- "nodeType": "YulIdentifier",
- "src": "14486:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "14486:29:0"
- },
- "nodeType": "YulSwitch",
- "src": "14479:1084:0"
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 302,
- "isOffset": false,
- "isSlot": false,
- "src": "14503:10:0",
- "valueSize": 1
- },
- {
- "declaration": 302,
- "isOffset": false,
- "isSlot": false,
- "src": "14908:10:0",
- "valueSize": 1
- },
- {
- "declaration": 300,
- "isOffset": false,
- "isSlot": false,
- "src": "14396:9:0",
- "valueSize": 1
- },
- {
- "declaration": 300,
- "isOffset": false,
- "isSlot": false,
- "src": "14791:9:0",
- "valueSize": 1
- },
- {
- "declaration": 308,
- "isOffset": false,
- "isSlot": false,
- "src": "15374:7:0",
- "valueSize": 1
- },
- {
- "declaration": 308,
- "isOffset": false,
- "isSlot": false,
- "src": "15537:7:0",
- "valueSize": 1
- }
- ],
- "id": 311,
- "nodeType": "InlineAssembly",
- "src": "14353:1220:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 312,
- "name": "success",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 308,
- "src": "15590:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "functionReturnParameters": 306,
- "id": 313,
- "nodeType": "Return",
- "src": "15583:14:0"
- }
- ]
- },
- "documentation": null,
- "id": 315,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "equal",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 303,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 300,
- "mutability": "mutable",
- "name": "_preBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 315,
- "src": "14235:22:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 299,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "14235:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 302,
- "mutability": "mutable",
- "name": "_postBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 315,
- "src": "14259:23:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 301,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "14259:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "14234:49:0"
- },
- "returnParameters": {
- "id": 306,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 305,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 315,
- "src": "14307:4:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 304,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "14307:4:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "14306:6:0"
- },
- "scope": 333,
- "src": "14220:1384:0",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 331,
- "nodeType": "Block",
- "src": "15749:2491:0",
- "statements": [
- {
- "assignments": [325],
- "declarations": [
- {
- "constant": false,
- "id": 325,
- "mutability": "mutable",
- "name": "success",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 331,
- "src": "15759:12:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 324,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "15759:4:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 327,
- "initialValue": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 326,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "15774:4:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "15759:19:0"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "15798:2411:0",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "15853:34:0",
- "value": {
- "arguments": [
- {
- "name": "_preBytes_slot",
- "nodeType": "YulIdentifier",
- "src": "15872:14:0"
- }
- ],
- "functionName": {
- "name": "sload",
- "nodeType": "YulIdentifier",
- "src": "15866:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15866:21:0"
- },
- "variables": [
- {
- "name": "fslot",
- "nodeType": "YulTypedName",
- "src": "15857:5:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "15974:76:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "fslot",
- "nodeType": "YulIdentifier",
- "src": "15997:5:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16012:5:0",
- "type": "",
- "value": "0x100"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "fslot",
- "nodeType": "YulIdentifier",
- "src": "16030:5:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16037:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "16026:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16026:13:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "16019:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16019:21:0"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "16008:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16008:33:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16043:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "sub",
- "nodeType": "YulIdentifier",
- "src": "16004:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16004:41:0"
- }
- ],
- "functionName": {
- "name": "and",
- "nodeType": "YulIdentifier",
- "src": "15993:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15993:53:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16048:1:0",
- "type": "",
- "value": "2"
- }
- ],
- "functionName": {
- "name": "div",
- "nodeType": "YulIdentifier",
- "src": "15989:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "15989:61:0"
- },
- "variables": [
- {
- "name": "slength",
- "nodeType": "YulTypedName",
- "src": "15978:7:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "16063:32:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "16084:10:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "16078:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16078:17:0"
- },
- "variables": [
- {
- "name": "mlength",
- "nodeType": "YulTypedName",
- "src": "16067:7:0",
- "type": ""
- }
- ]
- },
- {
- "cases": [
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "16215:1893:0",
- "statements": [
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "16514:1580:0",
- "statements": [
- {
- "cases": [
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "16586:332:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "16675:38:0",
- "value": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "fslot",
- "nodeType": "YulIdentifier",
- "src": "16692:5:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16699:5:0",
- "type": "",
- "value": "0x100"
- }
- ],
- "functionName": {
- "name": "div",
- "nodeType": "YulIdentifier",
- "src": "16688:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16688:17:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16707:5:0",
- "type": "",
- "value": "0x100"
- }
- ],
- "functionName": {
- "name": "mul",
- "nodeType": "YulIdentifier",
- "src": "16684:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16684:29:0"
- },
- "variableNames": [
- {
- "name": "fslot",
- "nodeType": "YulIdentifier",
- "src": "16675:5:0"
- }
- ]
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "16790:106:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "16858:12:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16869:1:0",
- "type": "",
- "value": "0"
- },
- "variableNames": [
- {
- "name": "success",
- "nodeType": "YulIdentifier",
- "src": "16858:7:0"
- }
- ]
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "fslot",
- "nodeType": "YulIdentifier",
- "src": "16752:5:0"
- },
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "16769:10:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16781:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "16765:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16765:21:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "16759:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16759:28:0"
- }
- ],
- "functionName": {
- "name": "eq",
- "nodeType": "YulIdentifier",
- "src": "16749:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16749:39:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "16742:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16742:47:0"
- },
- "nodeType": "YulIf",
- "src": "16739:2:0"
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "16579:339:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16584:1:0",
- "type": "",
- "value": "1"
- }
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "16947:1129:0",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "17200:11:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17210:1:0",
- "type": "",
- "value": "1"
- },
- "variables": [
- {
- "name": "cb",
- "nodeType": "YulTypedName",
- "src": "17204:2:0",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17320:3:0",
- "type": "",
- "value": "0x0"
- },
- {
- "name": "_preBytes_slot",
- "nodeType": "YulIdentifier",
- "src": "17325:14:0"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "17313:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17313:27:0"
- },
- "nodeType": "YulExpressionStatement",
- "src": "17313:27:0"
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "17365:30:0",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17385:3:0",
- "type": "",
- "value": "0x0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17390:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "keccak256",
- "nodeType": "YulIdentifier",
- "src": "17375:9:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17375:20:0"
- },
- "variables": [
- {
- "name": "sc",
- "nodeType": "YulTypedName",
- "src": "17369:2:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "17421:31:0",
- "value": {
- "arguments": [
- {
- "name": "_postBytes",
- "nodeType": "YulIdentifier",
- "src": "17435:10:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17447:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "17431:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17431:21:0"
- },
- "variables": [
- {
- "name": "mc",
- "nodeType": "YulTypedName",
- "src": "17425:2:0",
- "type": ""
- }
- ]
- },
- {
- "nodeType": "YulVariableDeclaration",
- "src": "17477:27:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "17492:2:0"
- },
- {
- "name": "mlength",
- "nodeType": "YulIdentifier",
- "src": "17496:7:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "17488:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17488:16:0"
- },
- "variables": [
- {
- "name": "end",
- "nodeType": "YulTypedName",
- "src": "17481:3:0",
- "type": ""
- }
- ]
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "17804:250:0",
- "statements": [
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "17870:158:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "17946:12:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17957:1:0",
- "type": "",
- "value": "0"
- },
- "variableNames": [
- {
- "name": "success",
- "nodeType": "YulIdentifier",
- "src": "17946:7:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "17991:7:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17997:1:0",
- "type": "",
- "value": "0"
- },
- "variableNames": [
- {
- "name": "cb",
- "nodeType": "YulIdentifier",
- "src": "17991:2:0"
- }
- ]
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "17853:2:0"
- }
- ],
- "functionName": {
- "name": "sload",
- "nodeType": "YulIdentifier",
- "src": "17847:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17847:9:0"
- },
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "17864:2:0"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "17858:5:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17858:9:0"
- }
- ],
- "functionName": {
- "name": "eq",
- "nodeType": "YulIdentifier",
- "src": "17844:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17844:24:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "17837:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17837:32:0"
- },
- "nodeType": "YulIf",
- "src": "17834:2:0"
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "arguments": [
- {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "17665:2:0"
- },
- {
- "name": "end",
- "nodeType": "YulIdentifier",
- "src": "17669:3:0"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "17662:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17662:11:0"
- },
- {
- "name": "cb",
- "nodeType": "YulIdentifier",
- "src": "17675:2:0"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "17658:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17658:20:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17680:1:0",
- "type": "",
- "value": "2"
- }
- ],
- "functionName": {
- "name": "eq",
- "nodeType": "YulIdentifier",
- "src": "17655:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17655:27:0"
- },
- "nodeType": "YulForLoop",
- "post": {
- "nodeType": "YulBlock",
- "src": "17683:120:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "17713:16:0",
- "value": {
- "arguments": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "17723:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17727:1:0",
- "type": "",
- "value": "1"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "17719:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17719:10:0"
- },
- "variableNames": [
- {
- "name": "sc",
- "nodeType": "YulIdentifier",
- "src": "17713:2:0"
- }
- ]
- },
- {
- "nodeType": "YulAssignment",
- "src": "17758:19:0",
- "value": {
- "arguments": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "17768:2:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "17772:4:0",
- "type": "",
- "value": "0x20"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "17764:3:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "17764:13:0"
- },
- "variableNames": [
- {
- "name": "mc",
- "nodeType": "YulIdentifier",
- "src": "17758:2:0"
- }
- ]
- }
- ]
- },
- "pre": {
- "nodeType": "YulBlock",
- "src": "17652:2:0",
- "statements": []
- },
- "src": "17648:406:0"
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "16939:1137:0",
- "value": "default"
- }
- ],
- "expression": {
- "arguments": [
- {
- "name": "slength",
- "nodeType": "YulIdentifier",
- "src": "16546:7:0"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16555:2:0",
- "type": "",
- "value": "32"
- }
- ],
- "functionName": {
- "name": "lt",
- "nodeType": "YulIdentifier",
- "src": "16543:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16543:15:0"
- },
- "nodeType": "YulSwitch",
- "src": "16536:1540:0"
- }
- ]
- },
- "condition": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "slength",
- "nodeType": "YulIdentifier",
- "src": "16504:7:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "16497:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16497:15:0"
- }
- ],
- "functionName": {
- "name": "iszero",
- "nodeType": "YulIdentifier",
- "src": "16490:6:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16490:23:0"
- },
- "nodeType": "YulIf",
- "src": "16487:2:0"
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "16208:1900:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "16213:1:0",
- "type": "",
- "value": "1"
- }
- },
- {
- "body": {
- "nodeType": "YulBlock",
- "src": "18129:70:0",
- "statements": [
- {
- "nodeType": "YulAssignment",
- "src": "18173:12:0",
- "value": {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "18184:1:0",
- "type": "",
- "value": "0"
- },
- "variableNames": [
- {
- "name": "success",
- "nodeType": "YulIdentifier",
- "src": "18173:7:0"
- }
- ]
- }
- ]
- },
- "nodeType": "YulCase",
- "src": "18121:78:0",
- "value": "default"
- }
- ],
- "expression": {
- "arguments": [
- {
- "name": "slength",
- "nodeType": "YulIdentifier",
- "src": "16178:7:0"
- },
- {
- "name": "mlength",
- "nodeType": "YulIdentifier",
- "src": "16187:7:0"
- }
- ],
- "functionName": {
- "name": "eq",
- "nodeType": "YulIdentifier",
- "src": "16175:2:0"
- },
- "nodeType": "YulFunctionCall",
- "src": "16175:20:0"
- },
- "nodeType": "YulSwitch",
- "src": "16168:2031:0"
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 319,
- "isOffset": false,
- "isSlot": false,
- "src": "16084:10:0",
- "valueSize": 1
- },
- {
- "declaration": 319,
- "isOffset": false,
- "isSlot": false,
- "src": "16769:10:0",
- "valueSize": 1
- },
- {
- "declaration": 319,
- "isOffset": false,
- "isSlot": false,
- "src": "17435:10:0",
- "valueSize": 1
- },
- {
- "declaration": 317,
- "isOffset": false,
- "isSlot": true,
- "src": "15872:14:0",
- "valueSize": 1
- },
- {
- "declaration": 317,
- "isOffset": false,
- "isSlot": true,
- "src": "17325:14:0",
- "valueSize": 1
- },
- {
- "declaration": 325,
- "isOffset": false,
- "isSlot": false,
- "src": "16858:7:0",
- "valueSize": 1
- },
- {
- "declaration": 325,
- "isOffset": false,
- "isSlot": false,
- "src": "17946:7:0",
- "valueSize": 1
- },
- {
- "declaration": 325,
- "isOffset": false,
- "isSlot": false,
- "src": "18173:7:0",
- "valueSize": 1
- }
- ],
- "id": 328,
- "nodeType": "InlineAssembly",
- "src": "15789:2420:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 329,
- "name": "success",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 325,
- "src": "18226:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "functionReturnParameters": 323,
- "id": 330,
- "nodeType": "Return",
- "src": "18219:14:0"
- }
- ]
- },
- "documentation": null,
- "id": 332,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "equalStorage",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 320,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 317,
- "mutability": "mutable",
- "name": "_preBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 332,
- "src": "15641:23:0",
- "stateVariable": false,
- "storageLocation": "storage",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 316,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "15641:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 319,
- "mutability": "mutable",
- "name": "_postBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 332,
- "src": "15674:23:0",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 318,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "15674:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "15631:72:0"
- },
- "returnParameters": {
- "id": 323,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 322,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 332,
- "src": "15739:4:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 321,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "15739:4:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "15738:6:0"
- },
- "scope": 333,
- "src": "15610:2630:0",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "internal"
- }
- ],
- "scope": 334,
- "src": "370:17872:0"
- }
- ],
- "src": "336:17907:0"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol",
- "exportedSymbols": {
- "BytesLib": [333]
- },
- "license": "Unlicense"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", ">=", "0.5", ".0", "<", "0.7", ".0"]
- },
- "id": 1,
- "name": "PragmaDirective",
- "src": "336:31:0"
- },
- {
- "attributes": {
- "abstract": false,
- "baseContracts": [null],
- "contractDependencies": [null],
- "contractKind": "library",
- "documentation": null,
- "fullyImplemented": true,
- "linearizedBaseContracts": [333],
- "name": "BytesLib",
- "scope": 334
- },
- "children": [
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "concat",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_preBytes",
- "overrides": null,
- "scope": 17,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 2,
- "name": "ElementaryTypeName",
- "src": "418:5:0"
- }
- ],
- "id": 3,
- "name": "VariableDeclaration",
- "src": "418:22:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_postBytes",
- "overrides": null,
- "scope": 17,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 4,
- "name": "ElementaryTypeName",
- "src": "450:5:0"
- }
- ],
- "id": 5,
- "name": "VariableDeclaration",
- "src": "450:23:0"
- }
- ],
- "id": 6,
- "name": "ParameterList",
- "src": "408:71:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 17,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 7,
- "name": "ElementaryTypeName",
- "src": "515:5:0"
- }
- ],
- "id": 8,
- "name": "VariableDeclaration",
- "src": "515:12:0"
- }
- ],
- "id": 9,
- "name": "ParameterList",
- "src": "514:14:0"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [11],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempBytes",
- "overrides": null,
- "scope": 16,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 10,
- "name": "ElementaryTypeName",
- "src": "543:5:0"
- }
- ],
- "id": 11,
- "name": "VariableDeclaration",
- "src": "543:22:0"
- }
- ],
- "id": 12,
- "name": "VariableDeclarationStatement",
- "src": "543:22:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 5,
- "isOffset": false,
- "isSlot": false,
- "src": "2032:10:0",
- "valueSize": 1
- },
- {
- "declaration": 5,
- "isOffset": false,
- "isSlot": false,
- "src": "2434:10:0",
- "valueSize": 1
- },
- {
- "declaration": 3,
- "isOffset": false,
- "isSlot": false,
- "src": "1476:9:0",
- "valueSize": 1
- },
- {
- "declaration": 3,
- "isOffset": false,
- "isSlot": false,
- "src": "3092:9:0",
- "valueSize": 1
- },
- {
- "declaration": 3,
- "isOffset": false,
- "isSlot": false,
- "src": "889:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "1149:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "2063:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "2092:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "721:9:0",
- "valueSize": 1
- },
- {
- "declaration": 11,
- "isOffset": false,
- "isSlot": false,
- "src": "919:9:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempBytes := mload(0x40)\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n let mc := add(tempBytes, 0x20)\n let end := add(mc, length)\n for {\n let cc := add(_preBytes, 0x20)\n }\n lt(mc, end)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n { mstore(mc, mload(cc)) }\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n mc := end\n end := add(mc, length)\n for {\n let cc := add(_postBytes, 0x20)\n }\n lt(mc, end)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n { mstore(mc, mload(cc)) }\n mstore(0x40, and(add(add(end, iszero(add(length, mload(_preBytes)))), 31), not(31)))\n}"
- },
- "children": [],
- "id": 13,
- "name": "InlineAssembly",
- "src": "576:2619:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 9
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 11,
- "type": "bytes memory",
- "value": "tempBytes"
- },
- "id": 14,
- "name": "Identifier",
- "src": "3212:9:0"
- }
- ],
- "id": 15,
- "name": "Return",
- "src": "3205:16:0"
- }
- ],
- "id": 16,
- "name": "Block",
- "src": "533:2695:0"
- }
- ],
- "id": 17,
- "name": "FunctionDefinition",
- "src": "393:2835:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "concatStorage",
- "overrides": null,
- "scope": 333,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_preBytes",
- "overrides": null,
- "scope": 26,
- "stateVariable": false,
- "storageLocation": "storage",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 18,
- "name": "ElementaryTypeName",
- "src": "3257:5:0"
- }
- ],
- "id": 19,
- "name": "VariableDeclaration",
- "src": "3257:23:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_postBytes",
- "overrides": null,
- "scope": 26,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 20,
- "name": "ElementaryTypeName",
- "src": "3282:5:0"
- }
- ],
- "id": 21,
- "name": "VariableDeclaration",
- "src": "3282:23:0"
- }
- ],
- "id": 22,
- "name": "ParameterList",
- "src": "3256:50:0"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 23,
- "name": "ParameterList",
- "src": "3316:0:0"
- },
- {
- "children": [
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "4155:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "5221:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "6753:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "6804:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "8237:10:0",
- "valueSize": 1
- },
- {
- "declaration": 21,
- "isOffset": false,
- "isSlot": false,
- "src": "8288:10:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "3565:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "4803:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "5953:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "6094:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "7697:14:0",
- "valueSize": 1
- },
- {
- "declaration": 19,
- "isOffset": false,
- "isSlot": true,
- "src": "7910:14:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n let fslot := sload(_preBytes_slot)\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n sstore(_preBytes_slot, add(fslot, add(mul(div(mload(add(_postBytes, 0x20)), exp(0x100, sub(32, mlength))), exp(0x100, sub(32, newlength))), mul(mlength, 2))))\n }\n case 1 {\n mstore(0x0, _preBytes_slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n sstore(sc, add(and(fslot, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00), and(mload(mc), mask)))\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n }\n lt(mc, end)\n {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n { sstore(sc, mload(mc)) }\n mask := exp(0x100, sub(mc, end))\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n mstore(0x0, _preBytes_slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n sstore(_preBytes_slot, add(mul(newlength, 2), 1))\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n lt(mc, end)\n {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n { sstore(sc, mload(mc)) }\n mask := exp(0x100, sub(mc, end))\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n}"
- },
- "children": [],
- "id": 24,
- "name": "InlineAssembly",
- "src": "3326:5527:0"
- }
- ],
- "id": 25,
- "name": "Block",
- "src": "3316:5543:0"
- }
- ],
- "id": 26,
- "name": "FunctionDefinition",
- "src": "3234:5625:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "slice",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 55,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 27,
- "name": "ElementaryTypeName",
- "src": "8889:5:0"
- }
- ],
- "id": 28,
- "name": "VariableDeclaration",
- "src": "8889:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 55,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 29,
- "name": "ElementaryTypeName",
- "src": "8918:7:0"
- }
- ],
- "id": 30,
- "name": "VariableDeclaration",
- "src": "8918:14:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_length",
- "overrides": null,
- "scope": 55,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 31,
- "name": "ElementaryTypeName",
- "src": "8942:7:0"
- }
- ],
- "id": 32,
- "name": "VariableDeclaration",
- "src": "8942:15:0"
- }
- ],
- "id": 33,
- "name": "ParameterList",
- "src": "8879:84:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 55,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 34,
- "name": "ElementaryTypeName",
- "src": "8999:5:0"
- }
- ],
- "id": 35,
- "name": "VariableDeclaration",
- "src": "8999:12:0"
- }
- ],
- "id": 36,
- "name": "ParameterList",
- "src": "8998:14:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 37,
- "name": "Identifier",
- "src": "9027:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 28,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 38,
- "name": "Identifier",
- "src": "9035:6:0"
- }
- ],
- "id": 39,
- "name": "MemberAccess",
- "src": "9035:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 30,
- "type": "uint256",
- "value": "_start"
- },
- "id": 40,
- "name": "Identifier",
- "src": "9053:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 32,
- "type": "uint256",
- "value": "_length"
- },
- "id": 41,
- "name": "Identifier",
- "src": "9062:7:0"
- }
- ],
- "id": 42,
- "name": "BinaryOperation",
- "src": "9053:16:0"
- }
- ],
- "id": 43,
- "name": "TupleExpression",
- "src": "9052:18:0"
- }
- ],
- "id": 44,
- "name": "BinaryOperation",
- "src": "9035:35:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 45,
- "name": "Literal",
- "src": "9072:20:0"
- }
- ],
- "id": 46,
- "name": "FunctionCall",
- "src": "9027:66:0"
- }
- ],
- "id": 47,
- "name": "ExpressionStatement",
- "src": "9027:66:0"
- },
- {
- "attributes": {
- "assignments": [49],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempBytes",
- "overrides": null,
- "scope": 54,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 48,
- "name": "ElementaryTypeName",
- "src": "9104:5:0"
- }
- ],
- "id": 49,
- "name": "VariableDeclaration",
- "src": "9104:22:0"
- }
- ],
- "id": 50,
- "name": "VariableDeclarationStatement",
- "src": "9104:22:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 28,
- "isOffset": false,
- "isSlot": false,
- "src": "10603:6:0",
- "valueSize": 1
- },
- {
- "declaration": 32,
- "isOffset": false,
- "isSlot": false,
- "src": "10410:7:0",
- "valueSize": 1
- },
- {
- "declaration": 32,
- "isOffset": false,
- "isSlot": false,
- "src": "10889:7:0",
- "valueSize": 1
- },
- {
- "declaration": 32,
- "isOffset": false,
- "isSlot": false,
- "src": "9174:7:0",
- "valueSize": 1
- },
- {
- "declaration": 32,
- "isOffset": false,
- "isSlot": false,
- "src": "9987:7:0",
- "valueSize": 1
- },
- {
- "declaration": 30,
- "isOffset": false,
- "isSlot": false,
- "src": "10654:6:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "10322:9:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "10878:9:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "11212:9:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "11271:9:0",
- "valueSize": 1
- },
- {
- "declaration": 49,
- "isOffset": false,
- "isSlot": false,
- "src": "9350:9:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n switch iszero(_length)\n case 0 {\n tempBytes := mload(0x40)\n let lengthmod := and(_length, 31)\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n for {\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n }\n lt(mc, end)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n { mstore(mc, mload(cc)) }\n mstore(tempBytes, _length)\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n default {\n tempBytes := mload(0x40)\n mstore(0x40, add(tempBytes, 0x20))\n }\n}"
- },
- "children": [],
- "id": 51,
- "name": "InlineAssembly",
- "src": "9137:2175:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 36
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 49,
- "type": "bytes memory",
- "value": "tempBytes"
- },
- "id": 52,
- "name": "Identifier",
- "src": "11329:9:0"
- }
- ],
- "id": 53,
- "name": "Return",
- "src": "11322:16:0"
- }
- ],
- "id": 54,
- "name": "Block",
- "src": "9017:2328:0"
- }
- ],
- "id": 55,
- "name": "FunctionDefinition",
- "src": "8865:2480:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "toAddress",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 82,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 56,
- "name": "ElementaryTypeName",
- "src": "11370:5:0"
- }
- ],
- "id": 57,
- "name": "VariableDeclaration",
- "src": "11370:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 82,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 58,
- "name": "ElementaryTypeName",
- "src": "11391:7:0"
- }
- ],
- "id": 59,
- "name": "VariableDeclaration",
- "src": "11391:14:0"
- }
- ],
- "id": 60,
- "name": "ParameterList",
- "src": "11369:37:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 82,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 61,
- "name": "ElementaryTypeName",
- "src": "11430:7:0"
- }
- ],
- "id": 62,
- "name": "VariableDeclaration",
- "src": "11430:7:0"
- }
- ],
- "id": 63,
- "name": "ParameterList",
- "src": "11429:9:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 64,
- "name": "Identifier",
- "src": "11449:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 57,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 65,
- "name": "Identifier",
- "src": "11457:6:0"
- }
- ],
- "id": 66,
- "name": "MemberAccess",
- "src": "11457:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 59,
- "type": "uint256",
- "value": "_start"
- },
- "id": 67,
- "name": "Identifier",
- "src": "11475:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3230",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 20",
- "value": "20"
- },
- "id": 68,
- "name": "Literal",
- "src": "11484:2:0"
- }
- ],
- "id": 69,
- "name": "BinaryOperation",
- "src": "11475:11:0"
- }
- ],
- "id": 70,
- "name": "TupleExpression",
- "src": "11474:13:0"
- }
- ],
- "id": 71,
- "name": "BinaryOperation",
- "src": "11457:30:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 72,
- "name": "Literal",
- "src": "11489:20:0"
- }
- ],
- "id": 73,
- "name": "FunctionCall",
- "src": "11449:61:0"
- }
- ],
- "id": 74,
- "name": "ExpressionStatement",
- "src": "11449:61:0"
- },
- {
- "attributes": {
- "assignments": [76],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempAddress",
- "overrides": null,
- "scope": 81,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 75,
- "name": "ElementaryTypeName",
- "src": "11520:7:0"
- }
- ],
- "id": 76,
- "name": "VariableDeclaration",
- "src": "11520:19:0"
- }
- ],
- "id": 77,
- "name": "VariableDeclarationStatement",
- "src": "11520:19:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 57,
- "isOffset": false,
- "isSlot": false,
- "src": "11606:6:0",
- "valueSize": 1
- },
- {
- "declaration": 59,
- "isOffset": false,
- "isSlot": false,
- "src": "11621:6:0",
- "valueSize": 1
- },
- {
- "declaration": 76,
- "isOffset": false,
- "isSlot": false,
- "src": "11573:11:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n}"
- },
- "children": [],
- "id": 78,
- "name": "InlineAssembly",
- "src": "11550:119:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 63
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 76,
- "type": "address",
- "value": "tempAddress"
- },
- "id": 79,
- "name": "Identifier",
- "src": "11686:11:0"
- }
- ],
- "id": 80,
- "name": "Return",
- "src": "11679:18:0"
- }
- ],
- "id": 81,
- "name": "Block",
- "src": "11439:265:0"
- }
- ],
- "id": 82,
- "name": "FunctionDefinition",
- "src": "11351:353:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "toUint8",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 109,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 83,
- "name": "ElementaryTypeName",
- "src": "11727:5:0"
- }
- ],
- "id": 84,
- "name": "VariableDeclaration",
- "src": "11727:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 109,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 85,
- "name": "ElementaryTypeName",
- "src": "11748:7:0"
- }
- ],
- "id": 86,
- "name": "VariableDeclaration",
- "src": "11748:14:0"
- }
- ],
- "id": 87,
- "name": "ParameterList",
- "src": "11726:37:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 109,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 88,
- "name": "ElementaryTypeName",
- "src": "11787:5:0"
- }
- ],
- "id": 89,
- "name": "VariableDeclaration",
- "src": "11787:5:0"
- }
- ],
- "id": 90,
- "name": "ParameterList",
- "src": "11786:7:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 91,
- "name": "Identifier",
- "src": "11804:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 84,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 92,
- "name": "Identifier",
- "src": "11812:6:0"
- }
- ],
- "id": 93,
- "name": "MemberAccess",
- "src": "11812:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 86,
- "type": "uint256",
- "value": "_start"
- },
- "id": 94,
- "name": "Identifier",
- "src": "11830:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 95,
- "name": "Literal",
- "src": "11839:1:0"
- }
- ],
- "id": 96,
- "name": "BinaryOperation",
- "src": "11830:10:0"
- }
- ],
- "id": 97,
- "name": "TupleExpression",
- "src": "11829:12:0"
- }
- ],
- "id": 98,
- "name": "BinaryOperation",
- "src": "11812:29:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 99,
- "name": "Literal",
- "src": "11843:20:0"
- }
- ],
- "id": 100,
- "name": "FunctionCall",
- "src": "11804:60:0"
- }
- ],
- "id": 101,
- "name": "ExpressionStatement",
- "src": "11804:60:0"
- },
- {
- "attributes": {
- "assignments": [103],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempUint",
- "overrides": null,
- "scope": 108,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 102,
- "name": "ElementaryTypeName",
- "src": "11874:5:0"
- }
- ],
- "id": 103,
- "name": "VariableDeclaration",
- "src": "11874:14:0"
- }
- ],
- "id": 104,
- "name": "VariableDeclarationStatement",
- "src": "11874:14:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 84,
- "isOffset": false,
- "isSlot": false,
- "src": "11948:6:0",
- "valueSize": 1
- },
- {
- "declaration": 86,
- "isOffset": false,
- "isSlot": false,
- "src": "11962:6:0",
- "valueSize": 1
- },
- {
- "declaration": 103,
- "isOffset": false,
- "isSlot": false,
- "src": "11922:8:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempUint := mload(add(add(_bytes, 0x1), _start))\n}"
- },
- "children": [],
- "id": 105,
- "name": "InlineAssembly",
- "src": "11899:81:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 90
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 103,
- "type": "uint8",
- "value": "tempUint"
- },
- "id": 106,
- "name": "Identifier",
- "src": "11997:8:0"
- }
- ],
- "id": 107,
- "name": "Return",
- "src": "11990:15:0"
- }
- ],
- "id": 108,
- "name": "Block",
- "src": "11794:218:0"
- }
- ],
- "id": 109,
- "name": "FunctionDefinition",
- "src": "11710:302:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "toUint16",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 136,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 110,
- "name": "ElementaryTypeName",
- "src": "12036:5:0"
- }
- ],
- "id": 111,
- "name": "VariableDeclaration",
- "src": "12036:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 136,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 112,
- "name": "ElementaryTypeName",
- "src": "12057:7:0"
- }
- ],
- "id": 113,
- "name": "VariableDeclaration",
- "src": "12057:14:0"
- }
- ],
- "id": 114,
- "name": "ParameterList",
- "src": "12035:37:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 136,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint16",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint16",
- "type": "uint16"
- },
- "id": 115,
- "name": "ElementaryTypeName",
- "src": "12096:6:0"
- }
- ],
- "id": 116,
- "name": "VariableDeclaration",
- "src": "12096:6:0"
- }
- ],
- "id": 117,
- "name": "ParameterList",
- "src": "12095:8:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 118,
- "name": "Identifier",
- "src": "12114:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 111,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 119,
- "name": "Identifier",
- "src": "12122:6:0"
- }
- ],
- "id": 120,
- "name": "MemberAccess",
- "src": "12122:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 113,
- "type": "uint256",
- "value": "_start"
- },
- "id": 121,
- "name": "Identifier",
- "src": "12140:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 122,
- "name": "Literal",
- "src": "12149:1:0"
- }
- ],
- "id": 123,
- "name": "BinaryOperation",
- "src": "12140:10:0"
- }
- ],
- "id": 124,
- "name": "TupleExpression",
- "src": "12139:12:0"
- }
- ],
- "id": 125,
- "name": "BinaryOperation",
- "src": "12122:29:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 126,
- "name": "Literal",
- "src": "12153:20:0"
- }
- ],
- "id": 127,
- "name": "FunctionCall",
- "src": "12114:60:0"
- }
- ],
- "id": 128,
- "name": "ExpressionStatement",
- "src": "12114:60:0"
- },
- {
- "attributes": {
- "assignments": [130],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempUint",
- "overrides": null,
- "scope": 135,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint16",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint16",
- "type": "uint16"
- },
- "id": 129,
- "name": "ElementaryTypeName",
- "src": "12184:6:0"
- }
- ],
- "id": 130,
- "name": "VariableDeclaration",
- "src": "12184:15:0"
- }
- ],
- "id": 131,
- "name": "VariableDeclarationStatement",
- "src": "12184:15:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 111,
- "isOffset": false,
- "isSlot": false,
- "src": "12259:6:0",
- "valueSize": 1
- },
- {
- "declaration": 113,
- "isOffset": false,
- "isSlot": false,
- "src": "12273:6:0",
- "valueSize": 1
- },
- {
- "declaration": 130,
- "isOffset": false,
- "isSlot": false,
- "src": "12233:8:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempUint := mload(add(add(_bytes, 0x2), _start))\n}"
- },
- "children": [],
- "id": 132,
- "name": "InlineAssembly",
- "src": "12210:81:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 117
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 130,
- "type": "uint16",
- "value": "tempUint"
- },
- "id": 133,
- "name": "Identifier",
- "src": "12308:8:0"
- }
- ],
- "id": 134,
- "name": "Return",
- "src": "12301:15:0"
- }
- ],
- "id": 135,
- "name": "Block",
- "src": "12104:219:0"
- }
- ],
- "id": 136,
- "name": "FunctionDefinition",
- "src": "12018:305:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "toUint32",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 163,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 137,
- "name": "ElementaryTypeName",
- "src": "12347:5:0"
- }
- ],
- "id": 138,
- "name": "VariableDeclaration",
- "src": "12347:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 163,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 139,
- "name": "ElementaryTypeName",
- "src": "12368:7:0"
- }
- ],
- "id": 140,
- "name": "VariableDeclaration",
- "src": "12368:14:0"
- }
- ],
- "id": 141,
- "name": "ParameterList",
- "src": "12346:37:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 163,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 142,
- "name": "ElementaryTypeName",
- "src": "12407:6:0"
- }
- ],
- "id": 143,
- "name": "VariableDeclaration",
- "src": "12407:6:0"
- }
- ],
- "id": 144,
- "name": "ParameterList",
- "src": "12406:8:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 145,
- "name": "Identifier",
- "src": "12425:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 138,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 146,
- "name": "Identifier",
- "src": "12433:6:0"
- }
- ],
- "id": 147,
- "name": "MemberAccess",
- "src": "12433:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 140,
- "type": "uint256",
- "value": "_start"
- },
- "id": 148,
- "name": "Identifier",
- "src": "12451:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "34",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 4",
- "value": "4"
- },
- "id": 149,
- "name": "Literal",
- "src": "12460:1:0"
- }
- ],
- "id": 150,
- "name": "BinaryOperation",
- "src": "12451:10:0"
- }
- ],
- "id": 151,
- "name": "TupleExpression",
- "src": "12450:12:0"
- }
- ],
- "id": 152,
- "name": "BinaryOperation",
- "src": "12433:29:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 153,
- "name": "Literal",
- "src": "12464:20:0"
- }
- ],
- "id": 154,
- "name": "FunctionCall",
- "src": "12425:60:0"
- }
- ],
- "id": 155,
- "name": "ExpressionStatement",
- "src": "12425:60:0"
- },
- {
- "attributes": {
- "assignments": [157],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempUint",
- "overrides": null,
- "scope": 162,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 156,
- "name": "ElementaryTypeName",
- "src": "12495:6:0"
- }
- ],
- "id": 157,
- "name": "VariableDeclaration",
- "src": "12495:15:0"
- }
- ],
- "id": 158,
- "name": "VariableDeclarationStatement",
- "src": "12495:15:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 138,
- "isOffset": false,
- "isSlot": false,
- "src": "12570:6:0",
- "valueSize": 1
- },
- {
- "declaration": 140,
- "isOffset": false,
- "isSlot": false,
- "src": "12584:6:0",
- "valueSize": 1
- },
- {
- "declaration": 157,
- "isOffset": false,
- "isSlot": false,
- "src": "12544:8:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempUint := mload(add(add(_bytes, 0x4), _start))\n}"
- },
- "children": [],
- "id": 159,
- "name": "InlineAssembly",
- "src": "12521:81:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 144
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 157,
- "type": "uint32",
- "value": "tempUint"
- },
- "id": 160,
- "name": "Identifier",
- "src": "12619:8:0"
- }
- ],
- "id": 161,
- "name": "Return",
- "src": "12612:15:0"
- }
- ],
- "id": 162,
- "name": "Block",
- "src": "12415:219:0"
- }
- ],
- "id": 163,
- "name": "FunctionDefinition",
- "src": "12329:305:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "toUint64",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 190,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 164,
- "name": "ElementaryTypeName",
- "src": "12658:5:0"
- }
- ],
- "id": 165,
- "name": "VariableDeclaration",
- "src": "12658:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 190,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 166,
- "name": "ElementaryTypeName",
- "src": "12679:7:0"
- }
- ],
- "id": 167,
- "name": "VariableDeclaration",
- "src": "12679:14:0"
- }
- ],
- "id": 168,
- "name": "ParameterList",
- "src": "12657:37:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 190,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint64",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint64",
- "type": "uint64"
- },
- "id": 169,
- "name": "ElementaryTypeName",
- "src": "12718:6:0"
- }
- ],
- "id": 170,
- "name": "VariableDeclaration",
- "src": "12718:6:0"
- }
- ],
- "id": 171,
- "name": "ParameterList",
- "src": "12717:8:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 172,
- "name": "Identifier",
- "src": "12736:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 165,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 173,
- "name": "Identifier",
- "src": "12744:6:0"
- }
- ],
- "id": 174,
- "name": "MemberAccess",
- "src": "12744:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 167,
- "type": "uint256",
- "value": "_start"
- },
- "id": 175,
- "name": "Identifier",
- "src": "12762:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "38",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 8",
- "value": "8"
- },
- "id": 176,
- "name": "Literal",
- "src": "12771:1:0"
- }
- ],
- "id": 177,
- "name": "BinaryOperation",
- "src": "12762:10:0"
- }
- ],
- "id": 178,
- "name": "TupleExpression",
- "src": "12761:12:0"
- }
- ],
- "id": 179,
- "name": "BinaryOperation",
- "src": "12744:29:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 180,
- "name": "Literal",
- "src": "12775:20:0"
- }
- ],
- "id": 181,
- "name": "FunctionCall",
- "src": "12736:60:0"
- }
- ],
- "id": 182,
- "name": "ExpressionStatement",
- "src": "12736:60:0"
- },
- {
- "attributes": {
- "assignments": [184],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempUint",
- "overrides": null,
- "scope": 189,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint64",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint64",
- "type": "uint64"
- },
- "id": 183,
- "name": "ElementaryTypeName",
- "src": "12806:6:0"
- }
- ],
- "id": 184,
- "name": "VariableDeclaration",
- "src": "12806:15:0"
- }
- ],
- "id": 185,
- "name": "VariableDeclarationStatement",
- "src": "12806:15:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 165,
- "isOffset": false,
- "isSlot": false,
- "src": "12881:6:0",
- "valueSize": 1
- },
- {
- "declaration": 167,
- "isOffset": false,
- "isSlot": false,
- "src": "12895:6:0",
- "valueSize": 1
- },
- {
- "declaration": 184,
- "isOffset": false,
- "isSlot": false,
- "src": "12855:8:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempUint := mload(add(add(_bytes, 0x8), _start))\n}"
- },
- "children": [],
- "id": 186,
- "name": "InlineAssembly",
- "src": "12832:81:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 171
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 184,
- "type": "uint64",
- "value": "tempUint"
- },
- "id": 187,
- "name": "Identifier",
- "src": "12930:8:0"
- }
- ],
- "id": 188,
- "name": "Return",
- "src": "12923:15:0"
- }
- ],
- "id": 189,
- "name": "Block",
- "src": "12726:219:0"
- }
- ],
- "id": 190,
- "name": "FunctionDefinition",
- "src": "12640:305:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "toUint96",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 217,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 191,
- "name": "ElementaryTypeName",
- "src": "12969:5:0"
- }
- ],
- "id": 192,
- "name": "VariableDeclaration",
- "src": "12969:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 217,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 193,
- "name": "ElementaryTypeName",
- "src": "12990:7:0"
- }
- ],
- "id": 194,
- "name": "VariableDeclaration",
- "src": "12990:14:0"
- }
- ],
- "id": 195,
- "name": "ParameterList",
- "src": "12968:37:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 217,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint96",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint96",
- "type": "uint96"
- },
- "id": 196,
- "name": "ElementaryTypeName",
- "src": "13029:6:0"
- }
- ],
- "id": 197,
- "name": "VariableDeclaration",
- "src": "13029:6:0"
- }
- ],
- "id": 198,
- "name": "ParameterList",
- "src": "13028:8:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 199,
- "name": "Identifier",
- "src": "13047:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 192,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 200,
- "name": "Identifier",
- "src": "13055:6:0"
- }
- ],
- "id": 201,
- "name": "MemberAccess",
- "src": "13055:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 194,
- "type": "uint256",
- "value": "_start"
- },
- "id": 202,
- "name": "Identifier",
- "src": "13073:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3132",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 12",
- "value": "12"
- },
- "id": 203,
- "name": "Literal",
- "src": "13082:2:0"
- }
- ],
- "id": 204,
- "name": "BinaryOperation",
- "src": "13073:11:0"
- }
- ],
- "id": 205,
- "name": "TupleExpression",
- "src": "13072:13:0"
- }
- ],
- "id": 206,
- "name": "BinaryOperation",
- "src": "13055:30:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 207,
- "name": "Literal",
- "src": "13087:20:0"
- }
- ],
- "id": 208,
- "name": "FunctionCall",
- "src": "13047:61:0"
- }
- ],
- "id": 209,
- "name": "ExpressionStatement",
- "src": "13047:61:0"
- },
- {
- "attributes": {
- "assignments": [211],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempUint",
- "overrides": null,
- "scope": 216,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint96",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint96",
- "type": "uint96"
- },
- "id": 210,
- "name": "ElementaryTypeName",
- "src": "13118:6:0"
- }
- ],
- "id": 211,
- "name": "VariableDeclaration",
- "src": "13118:15:0"
- }
- ],
- "id": 212,
- "name": "VariableDeclarationStatement",
- "src": "13118:15:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 192,
- "isOffset": false,
- "isSlot": false,
- "src": "13193:6:0",
- "valueSize": 1
- },
- {
- "declaration": 194,
- "isOffset": false,
- "isSlot": false,
- "src": "13207:6:0",
- "valueSize": 1
- },
- {
- "declaration": 211,
- "isOffset": false,
- "isSlot": false,
- "src": "13167:8:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempUint := mload(add(add(_bytes, 0xc), _start))\n}"
- },
- "children": [],
- "id": 213,
- "name": "InlineAssembly",
- "src": "13144:81:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 198
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 211,
- "type": "uint96",
- "value": "tempUint"
- },
- "id": 214,
- "name": "Identifier",
- "src": "13242:8:0"
- }
- ],
- "id": 215,
- "name": "Return",
- "src": "13235:15:0"
- }
- ],
- "id": 216,
- "name": "Block",
- "src": "13037:220:0"
- }
- ],
- "id": 217,
- "name": "FunctionDefinition",
- "src": "12951:306:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "toUint128",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 244,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 218,
- "name": "ElementaryTypeName",
- "src": "13282:5:0"
- }
- ],
- "id": 219,
- "name": "VariableDeclaration",
- "src": "13282:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 244,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 220,
- "name": "ElementaryTypeName",
- "src": "13303:7:0"
- }
- ],
- "id": 221,
- "name": "VariableDeclaration",
- "src": "13303:14:0"
- }
- ],
- "id": 222,
- "name": "ParameterList",
- "src": "13281:37:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 244,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint128",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint128",
- "type": "uint128"
- },
- "id": 223,
- "name": "ElementaryTypeName",
- "src": "13342:7:0"
- }
- ],
- "id": 224,
- "name": "VariableDeclaration",
- "src": "13342:7:0"
- }
- ],
- "id": 225,
- "name": "ParameterList",
- "src": "13341:9:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 226,
- "name": "Identifier",
- "src": "13361:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 219,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 227,
- "name": "Identifier",
- "src": "13369:6:0"
- }
- ],
- "id": 228,
- "name": "MemberAccess",
- "src": "13369:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 221,
- "type": "uint256",
- "value": "_start"
- },
- "id": 229,
- "name": "Identifier",
- "src": "13387:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3136",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 16",
- "value": "16"
- },
- "id": 230,
- "name": "Literal",
- "src": "13396:2:0"
- }
- ],
- "id": 231,
- "name": "BinaryOperation",
- "src": "13387:11:0"
- }
- ],
- "id": 232,
- "name": "TupleExpression",
- "src": "13386:13:0"
- }
- ],
- "id": 233,
- "name": "BinaryOperation",
- "src": "13369:30:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 234,
- "name": "Literal",
- "src": "13401:20:0"
- }
- ],
- "id": 235,
- "name": "FunctionCall",
- "src": "13361:61:0"
- }
- ],
- "id": 236,
- "name": "ExpressionStatement",
- "src": "13361:61:0"
- },
- {
- "attributes": {
- "assignments": [238],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempUint",
- "overrides": null,
- "scope": 243,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint128",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint128",
- "type": "uint128"
- },
- "id": 237,
- "name": "ElementaryTypeName",
- "src": "13432:7:0"
- }
- ],
- "id": 238,
- "name": "VariableDeclaration",
- "src": "13432:16:0"
- }
- ],
- "id": 239,
- "name": "VariableDeclarationStatement",
- "src": "13432:16:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 219,
- "isOffset": false,
- "isSlot": false,
- "src": "13508:6:0",
- "valueSize": 1
- },
- {
- "declaration": 221,
- "isOffset": false,
- "isSlot": false,
- "src": "13523:6:0",
- "valueSize": 1
- },
- {
- "declaration": 238,
- "isOffset": false,
- "isSlot": false,
- "src": "13482:8:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempUint := mload(add(add(_bytes, 0x10), _start))\n}"
- },
- "children": [],
- "id": 240,
- "name": "InlineAssembly",
- "src": "13459:82:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 225
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 238,
- "type": "uint128",
- "value": "tempUint"
- },
- "id": 241,
- "name": "Identifier",
- "src": "13558:8:0"
- }
- ],
- "id": 242,
- "name": "Return",
- "src": "13551:15:0"
- }
- ],
- "id": 243,
- "name": "Block",
- "src": "13351:222:0"
- }
- ],
- "id": 244,
- "name": "FunctionDefinition",
- "src": "13263:310:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "toUint256",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 271,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 245,
- "name": "ElementaryTypeName",
- "src": "13598:5:0"
- }
- ],
- "id": 246,
- "name": "VariableDeclaration",
- "src": "13598:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 271,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 247,
- "name": "ElementaryTypeName",
- "src": "13619:7:0"
- }
- ],
- "id": 248,
- "name": "VariableDeclaration",
- "src": "13619:14:0"
- }
- ],
- "id": 249,
- "name": "ParameterList",
- "src": "13597:37:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 271,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 250,
- "name": "ElementaryTypeName",
- "src": "13658:7:0"
- }
- ],
- "id": 251,
- "name": "VariableDeclaration",
- "src": "13658:7:0"
- }
- ],
- "id": 252,
- "name": "ParameterList",
- "src": "13657:9:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 253,
- "name": "Identifier",
- "src": "13677:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 246,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 254,
- "name": "Identifier",
- "src": "13685:6:0"
- }
- ],
- "id": 255,
- "name": "MemberAccess",
- "src": "13685:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 248,
- "type": "uint256",
- "value": "_start"
- },
- "id": 256,
- "name": "Identifier",
- "src": "13703:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3332",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 32",
- "value": "32"
- },
- "id": 257,
- "name": "Literal",
- "src": "13712:2:0"
- }
- ],
- "id": 258,
- "name": "BinaryOperation",
- "src": "13703:11:0"
- }
- ],
- "id": 259,
- "name": "TupleExpression",
- "src": "13702:13:0"
- }
- ],
- "id": 260,
- "name": "BinaryOperation",
- "src": "13685:30:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 261,
- "name": "Literal",
- "src": "13717:20:0"
- }
- ],
- "id": 262,
- "name": "FunctionCall",
- "src": "13677:61:0"
- }
- ],
- "id": 263,
- "name": "ExpressionStatement",
- "src": "13677:61:0"
- },
- {
- "attributes": {
- "assignments": [265],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempUint",
- "overrides": null,
- "scope": 270,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 264,
- "name": "ElementaryTypeName",
- "src": "13748:7:0"
- }
- ],
- "id": 265,
- "name": "VariableDeclaration",
- "src": "13748:16:0"
- }
- ],
- "id": 266,
- "name": "VariableDeclarationStatement",
- "src": "13748:16:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 246,
- "isOffset": false,
- "isSlot": false,
- "src": "13824:6:0",
- "valueSize": 1
- },
- {
- "declaration": 248,
- "isOffset": false,
- "isSlot": false,
- "src": "13839:6:0",
- "valueSize": 1
- },
- {
- "declaration": 265,
- "isOffset": false,
- "isSlot": false,
- "src": "13798:8:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempUint := mload(add(add(_bytes, 0x20), _start))\n}"
- },
- "children": [],
- "id": 267,
- "name": "InlineAssembly",
- "src": "13775:82:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 252
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 265,
- "type": "uint256",
- "value": "tempUint"
- },
- "id": 268,
- "name": "Identifier",
- "src": "13874:8:0"
- }
- ],
- "id": 269,
- "name": "Return",
- "src": "13867:15:0"
- }
- ],
- "id": 270,
- "name": "Block",
- "src": "13667:222:0"
- }
- ],
- "id": 271,
- "name": "FunctionDefinition",
- "src": "13579:310:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "toBytes32",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_bytes",
- "overrides": null,
- "scope": 298,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 272,
- "name": "ElementaryTypeName",
- "src": "13914:5:0"
- }
- ],
- "id": 273,
- "name": "VariableDeclaration",
- "src": "13914:19:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_start",
- "overrides": null,
- "scope": 298,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 274,
- "name": "ElementaryTypeName",
- "src": "13935:7:0"
- }
- ],
- "id": 275,
- "name": "VariableDeclaration",
- "src": "13935:14:0"
- }
- ],
- "id": 276,
- "name": "ParameterList",
- "src": "13913:37:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 298,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 277,
- "name": "ElementaryTypeName",
- "src": "13974:7:0"
- }
- ],
- "id": 278,
- "name": "VariableDeclaration",
- "src": "13974:7:0"
- }
- ],
- "id": 279,
- "name": "ParameterList",
- "src": "13973:9:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5cbab548b65f825a63fb88e65bb91138d4018af1d080a2c8d18624b8080ae1c9",
- "typeString": "literal_string \"Read out of bounds\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 280,
- "name": "Identifier",
- "src": "13993:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 273,
- "type": "bytes memory",
- "value": "_bytes"
- },
- "id": 281,
- "name": "Identifier",
- "src": "14001:6:0"
- }
- ],
- "id": 282,
- "name": "MemberAccess",
- "src": "14001:13:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 275,
- "type": "uint256",
- "value": "_start"
- },
- "id": 283,
- "name": "Identifier",
- "src": "14019:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3332",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 32",
- "value": "32"
- },
- "id": 284,
- "name": "Literal",
- "src": "14028:2:0"
- }
- ],
- "id": 285,
- "name": "BinaryOperation",
- "src": "14019:11:0"
- }
- ],
- "id": 286,
- "name": "TupleExpression",
- "src": "14018:13:0"
- }
- ],
- "id": 287,
- "name": "BinaryOperation",
- "src": "14001:30:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "52656164206f7574206f6620626f756e6473",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Read out of bounds\"",
- "value": "Read out of bounds"
- },
- "id": 288,
- "name": "Literal",
- "src": "14033:20:0"
- }
- ],
- "id": 289,
- "name": "FunctionCall",
- "src": "13993:61:0"
- }
- ],
- "id": 290,
- "name": "ExpressionStatement",
- "src": "13993:61:0"
- },
- {
- "attributes": {
- "assignments": [292],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tempBytes32",
- "overrides": null,
- "scope": 297,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 291,
- "name": "ElementaryTypeName",
- "src": "14064:7:0"
- }
- ],
- "id": 292,
- "name": "VariableDeclaration",
- "src": "14064:19:0"
- }
- ],
- "id": 293,
- "name": "VariableDeclarationStatement",
- "src": "14064:19:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 273,
- "isOffset": false,
- "isSlot": false,
- "src": "14146:6:0",
- "valueSize": 1
- },
- {
- "declaration": 275,
- "isOffset": false,
- "isSlot": false,
- "src": "14161:6:0",
- "valueSize": 1
- },
- {
- "declaration": 292,
- "isOffset": false,
- "isSlot": false,
- "src": "14117:11:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n}"
- },
- "children": [],
- "id": 294,
- "name": "InlineAssembly",
- "src": "14094:85:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 279
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 292,
- "type": "bytes32",
- "value": "tempBytes32"
- },
- "id": 295,
- "name": "Identifier",
- "src": "14196:11:0"
- }
- ],
- "id": 296,
- "name": "Return",
- "src": "14189:18:0"
- }
- ],
- "id": 297,
- "name": "Block",
- "src": "13983:231:0"
- }
- ],
- "id": 298,
- "name": "FunctionDefinition",
- "src": "13895:319:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "equal",
- "overrides": null,
- "scope": 333,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_preBytes",
- "overrides": null,
- "scope": 315,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 299,
- "name": "ElementaryTypeName",
- "src": "14235:5:0"
- }
- ],
- "id": 300,
- "name": "VariableDeclaration",
- "src": "14235:22:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_postBytes",
- "overrides": null,
- "scope": 315,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 301,
- "name": "ElementaryTypeName",
- "src": "14259:5:0"
- }
- ],
- "id": 302,
- "name": "VariableDeclaration",
- "src": "14259:23:0"
- }
- ],
- "id": 303,
- "name": "ParameterList",
- "src": "14234:49:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 315,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 304,
- "name": "ElementaryTypeName",
- "src": "14307:4:0"
- }
- ],
- "id": 305,
- "name": "VariableDeclaration",
- "src": "14307:4:0"
- }
- ],
- "id": 306,
- "name": "ParameterList",
- "src": "14306:6:0"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [308]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "success",
- "overrides": null,
- "scope": 314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 307,
- "name": "ElementaryTypeName",
- "src": "14323:4:0"
- }
- ],
- "id": 308,
- "name": "VariableDeclaration",
- "src": "14323:12:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 309,
- "name": "Literal",
- "src": "14338:4:0"
- }
- ],
- "id": 310,
- "name": "VariableDeclarationStatement",
- "src": "14323:19:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 302,
- "isOffset": false,
- "isSlot": false,
- "src": "14503:10:0",
- "valueSize": 1
- },
- {
- "declaration": 302,
- "isOffset": false,
- "isSlot": false,
- "src": "14908:10:0",
- "valueSize": 1
- },
- {
- "declaration": 300,
- "isOffset": false,
- "isSlot": false,
- "src": "14396:9:0",
- "valueSize": 1
- },
- {
- "declaration": 300,
- "isOffset": false,
- "isSlot": false,
- "src": "14791:9:0",
- "valueSize": 1
- },
- {
- "declaration": 308,
- "isOffset": false,
- "isSlot": false,
- "src": "15374:7:0",
- "valueSize": 1
- },
- {
- "declaration": 308,
- "isOffset": false,
- "isSlot": false,
- "src": "15537:7:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n let length := mload(_preBytes)\n switch eq(length, mload(_postBytes))\n case 1 {\n let cb := 1\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n for {\n let cc := add(_postBytes, 0x20)\n }\n eq(add(lt(mc, end), cb), 2)\n {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n }\n {\n if iszero(eq(mload(mc), mload(cc)))\n {\n success := 0\n cb := 0\n }\n }\n }\n default { success := 0 }\n}"
- },
- "children": [],
- "id": 311,
- "name": "InlineAssembly",
- "src": "14353:1220:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 306
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 308,
- "type": "bool",
- "value": "success"
- },
- "id": 312,
- "name": "Identifier",
- "src": "15590:7:0"
- }
- ],
- "id": 313,
- "name": "Return",
- "src": "15583:14:0"
- }
- ],
- "id": 314,
- "name": "Block",
- "src": "14313:1291:0"
- }
- ],
- "id": 315,
- "name": "FunctionDefinition",
- "src": "14220:1384:0"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "equalStorage",
- "overrides": null,
- "scope": 333,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_preBytes",
- "overrides": null,
- "scope": 332,
- "stateVariable": false,
- "storageLocation": "storage",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 316,
- "name": "ElementaryTypeName",
- "src": "15641:5:0"
- }
- ],
- "id": 317,
- "name": "VariableDeclaration",
- "src": "15641:23:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_postBytes",
- "overrides": null,
- "scope": 332,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 318,
- "name": "ElementaryTypeName",
- "src": "15674:5:0"
- }
- ],
- "id": 319,
- "name": "VariableDeclaration",
- "src": "15674:23:0"
- }
- ],
- "id": 320,
- "name": "ParameterList",
- "src": "15631:72:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 332,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 321,
- "name": "ElementaryTypeName",
- "src": "15739:4:0"
- }
- ],
- "id": 322,
- "name": "VariableDeclaration",
- "src": "15739:4:0"
- }
- ],
- "id": 323,
- "name": "ParameterList",
- "src": "15738:6:0"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [325]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "success",
- "overrides": null,
- "scope": 331,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 324,
- "name": "ElementaryTypeName",
- "src": "15759:4:0"
- }
- ],
- "id": 325,
- "name": "VariableDeclaration",
- "src": "15759:12:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 326,
- "name": "Literal",
- "src": "15774:4:0"
- }
- ],
- "id": 327,
- "name": "VariableDeclarationStatement",
- "src": "15759:19:0"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 319,
- "isOffset": false,
- "isSlot": false,
- "src": "16084:10:0",
- "valueSize": 1
- },
- {
- "declaration": 319,
- "isOffset": false,
- "isSlot": false,
- "src": "16769:10:0",
- "valueSize": 1
- },
- {
- "declaration": 319,
- "isOffset": false,
- "isSlot": false,
- "src": "17435:10:0",
- "valueSize": 1
- },
- {
- "declaration": 317,
- "isOffset": false,
- "isSlot": true,
- "src": "15872:14:0",
- "valueSize": 1
- },
- {
- "declaration": 317,
- "isOffset": false,
- "isSlot": true,
- "src": "17325:14:0",
- "valueSize": 1
- },
- {
- "declaration": 325,
- "isOffset": false,
- "isSlot": false,
- "src": "16858:7:0",
- "valueSize": 1
- },
- {
- "declaration": 325,
- "isOffset": false,
- "isSlot": false,
- "src": "17946:7:0",
- "valueSize": 1
- },
- {
- "declaration": 325,
- "isOffset": false,
- "isSlot": false,
- "src": "18173:7:0",
- "valueSize": 1
- }
- ],
- "operations": "{\n let fslot := sload(_preBytes_slot)\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n switch eq(slength, mlength)\n case 1 {\n if iszero(iszero(slength))\n {\n switch lt(slength, 32)\n case 1 {\n fslot := mul(div(fslot, 0x100), 0x100)\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) { success := 0 }\n }\n default {\n let cb := 1\n mstore(0x0, _preBytes_slot)\n let sc := keccak256(0x0, 0x20)\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n for { }\n eq(add(lt(mc, end), cb), 2)\n {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n }\n {\n if iszero(eq(sload(sc), mload(mc)))\n {\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default { success := 0 }\n}"
- },
- "children": [],
- "id": 328,
- "name": "InlineAssembly",
- "src": "15789:2420:0"
- },
- {
- "attributes": {
- "functionReturnParameters": 323
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 325,
- "type": "bool",
- "value": "success"
- },
- "id": 329,
- "name": "Identifier",
- "src": "18226:7:0"
- }
- ],
- "id": 330,
- "name": "Return",
- "src": "18219:14:0"
- }
- ],
- "id": 331,
- "name": "Block",
- "src": "15749:2491:0"
- }
- ],
- "id": 332,
- "name": "FunctionDefinition",
- "src": "15610:2630:0"
- }
- ],
- "id": 333,
- "name": "ContractDefinition",
- "src": "370:17872:0"
- }
- ],
- "id": 334,
- "name": "SourceUnit",
- "src": "336:17907:0"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.865Z",
- "devdoc": {
- "kind": "dev",
- "methods": {},
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/Context.json b/packages/bridge-sdk/contracts/Context.json
deleted file mode 100644
index 40a9d55..0000000
--- a/packages/bridge-sdk/contracts/Context.json
+++ /dev/null
@@ -1,558 +0,0 @@
-{
- "contractName": "Context",
- "abi": [],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]}},\"version\":1}",
- "bytecode": "0x",
- "deployedBytecode": "0x",
- "immutableReferences": {},
- "sourceMap": "",
- "deployedSourceMap": "",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n",
- "sourcePath": "@openzeppelin/contracts/utils/Context.sol",
- "ast": {
- "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
- "exportedSymbols": {
- "Context": [3618]
- },
- "id": 3619,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 3597,
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"],
- "nodeType": "PragmaDirective",
- "src": "33:31:9"
- },
- {
- "abstract": true,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "id": 3618,
- "linearizedBaseContracts": [3618],
- "name": "Context",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": {
- "id": 3605,
- "nodeType": "Block",
- "src": "668:34:9",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 3602,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "685:3:9",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 3603,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "685:10:9",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "functionReturnParameters": 3601,
- "id": 3604,
- "nodeType": "Return",
- "src": "678:17:9"
- }
- ]
- },
- "documentation": null,
- "id": 3606,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_msgSender",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3598,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "617:2:9"
- },
- "returnParameters": {
- "id": 3601,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3600,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3606,
- "src": "651:15:9",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- "typeName": {
- "id": 3599,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "651:15:9",
- "stateMutability": "payable",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "650:17:9"
- },
- "scope": 3618,
- "src": "598:104:9",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3616,
- "nodeType": "Block",
- "src": "773:165:9",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 3611,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "783:4:9",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Context_$3618",
- "typeString": "contract Context"
- }
- },
- "id": 3612,
- "nodeType": "ExpressionStatement",
- "src": "783:4:9"
- },
- {
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 3613,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "923:3:9",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 3614,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "data",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "923:8:9",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "functionReturnParameters": 3610,
- "id": 3615,
- "nodeType": "Return",
- "src": "916:15:9"
- }
- ]
- },
- "documentation": null,
- "id": 3617,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_msgData",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3607,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "725:2:9"
- },
- "returnParameters": {
- "id": 3610,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3609,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3617,
- "src": "759:12:9",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3608,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "759:5:9",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "758:14:9"
- },
- "scope": 3618,
- "src": "708:230:9",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "internal"
- }
- ],
- "scope": 3619,
- "src": "566:374:9"
- }
- ],
- "src": "33:908:9"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
- "exportedSymbols": {
- "Context": [3618]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"]
- },
- "id": 3597,
- "name": "PragmaDirective",
- "src": "33:31:9"
- },
- {
- "attributes": {
- "abstract": true,
- "baseContracts": [null],
- "contractDependencies": [null],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "linearizedBaseContracts": [3618],
- "name": "Context",
- "scope": 3619
- },
- "children": [
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_msgSender",
- "overrides": null,
- "scope": 3618,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3598,
- "name": "ParameterList",
- "src": "617:2:9"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3606,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address payable",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "payable",
- "type": "address payable"
- },
- "id": 3599,
- "name": "ElementaryTypeName",
- "src": "651:15:9"
- }
- ],
- "id": 3600,
- "name": "VariableDeclaration",
- "src": "651:15:9"
- }
- ],
- "id": 3601,
- "name": "ParameterList",
- "src": "650:17:9"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 3601
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 3602,
- "name": "Identifier",
- "src": "685:3:9"
- }
- ],
- "id": 3603,
- "name": "MemberAccess",
- "src": "685:10:9"
- }
- ],
- "id": 3604,
- "name": "Return",
- "src": "678:17:9"
- }
- ],
- "id": 3605,
- "name": "Block",
- "src": "668:34:9"
- }
- ],
- "id": 3606,
- "name": "FunctionDefinition",
- "src": "598:104:9"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_msgData",
- "overrides": null,
- "scope": 3618,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3607,
- "name": "ParameterList",
- "src": "725:2:9"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3617,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3608,
- "name": "ElementaryTypeName",
- "src": "759:5:9"
- }
- ],
- "id": 3609,
- "name": "VariableDeclaration",
- "src": "759:12:9"
- }
- ],
- "id": 3610,
- "name": "ParameterList",
- "src": "758:14:9"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "contract Context",
- "value": "this"
- },
- "id": 3611,
- "name": "Identifier",
- "src": "783:4:9"
- }
- ],
- "id": 3612,
- "name": "ExpressionStatement",
- "src": "783:4:9"
- },
- {
- "attributes": {
- "functionReturnParameters": 3610
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "data",
- "referencedDeclaration": null,
- "type": "bytes calldata"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 3613,
- "name": "Identifier",
- "src": "923:3:9"
- }
- ],
- "id": 3614,
- "name": "MemberAccess",
- "src": "923:8:9"
- }
- ],
- "id": 3615,
- "name": "Return",
- "src": "916:15:9"
- }
- ],
- "id": 3616,
- "name": "Block",
- "src": "773:165:9"
- }
- ],
- "id": 3617,
- "name": "FunctionDefinition",
- "src": "708:230:9"
- }
- ],
- "id": 3618,
- "name": "ContractDefinition",
- "src": "566:374:9"
- }
- ],
- "id": 3619,
- "name": "SourceUnit",
- "src": "33:908:9"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.929Z",
- "devdoc": {
- "kind": "dev",
- "methods": {},
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/ERC20.json b/packages/bridge-sdk/contracts/ERC20.json
deleted file mode 100644
index 28c8a8c..0000000
--- a/packages/bridge-sdk/contracts/ERC20.json
+++ /dev/null
@@ -1,13788 +0,0 @@
-{
- "contractName": "ERC20",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "string",
- "name": "name_",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "symbol_",
- "type": "string"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "decimals",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "sender",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "addedValue",
- "type": "uint256"
- }
- ],
- "name": "increaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "subtractedValue",
- "type": "uint256"
- }
- ],
- "name": "decreaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 18. To select a different value for {decimals}, use {_setupDecimals}. All three of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xca0c2396dbeb3503b51abf4248ebf77a1461edad513c01529df51850a012bee3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://991b44ff44e0496e8554a90f4c0512c28faed45104d40430019f3c67ea67740e\",\"dweb:/ipfs/Qmc3nRapVbcctELoZS5qe17zLkFB3bETBfwzCTMF1CSuGE\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]}},\"version\":1}",
- "bytecode": "0x60806040523480156200001157600080fd5b506040516200139f3803806200139f833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b506040525050508160039080519060200190620001cd9291906200020b565b508060049080519060200190620001e69291906200020b565b506012600560006101000a81548160ff021916908360ff1602179055505050620002b1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024e57805160ff19168380011785556200027f565b828001600101855582156200027f579182015b828111156200027e57825182559160200191906001019062000261565b5b5090506200028e919062000292565b5090565b5b80821115620002ad57600081600090555060010162000293565b5090565b6110de80620002c16000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025857806370a08231146102bc57806395d89b4114610314578063a457c2d714610397578063a9059cbb146103fb578063dd62ed3e1461045f576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019557806323b872dd146101b3578063313ce56714610237575b600080fd5b6100b66104d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b60405180821515815260200191505060405180910390f35b61019d610597565b6040518082815260200191505060405180910390f35b61021f600480360360608110156101c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105a1565b60405180821515815260200191505060405180910390f35b61023f61067a565b604051808260ff16815260200191505060405180910390f35b6102a46004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610691565b60405180821515815260200191505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610744565b6040518082815260200191505060405180910390f35b61031c61078c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035c578082015181840152602081019050610341565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103e3600480360360408110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b60405180821515815260200191505060405180910390f35b6104476004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108fb565b60405180821515815260200191505060405180910390f35b6104c16004803603604081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610919565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561056f5780601f106105445761010080835404028352916020019161056f565b820191906000526020600020905b81548152906001019060200180831161055257829003601f168201915b5050505050905090565b600061058d6105866109a0565b84846109a8565b6001905092915050565b6000600254905090565b60006105ae848484610b9f565b61066f846105ba6109a0565b61066a8560405180606001604052806028815260200161101360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106206109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061073a61069e6109a0565b8461073585600160006106af6109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6109a8565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b60006108f161083b6109a0565b846108ec8560405180606001604052806025815260200161108460259139600160006108656109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b6001905092915050565b600061090f6109086109a0565b8484610b9f565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fcb6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061103b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fa86023913960400191505060405180910390fd5b610cb6838383610fa2565b610d2181604051806060016040528060268152602001610fed602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed2578082015181840152602081019050610eb7565b50505050905090810190601f168015610eff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bd3f1ebbd37f184285799523b3026426208876513625827f88611ecf03a6e1e864736f6c634300060c0033",
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025857806370a08231146102bc57806395d89b4114610314578063a457c2d714610397578063a9059cbb146103fb578063dd62ed3e1461045f576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019557806323b872dd146101b3578063313ce56714610237575b600080fd5b6100b66104d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b60405180821515815260200191505060405180910390f35b61019d610597565b6040518082815260200191505060405180910390f35b61021f600480360360608110156101c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105a1565b60405180821515815260200191505060405180910390f35b61023f61067a565b604051808260ff16815260200191505060405180910390f35b6102a46004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610691565b60405180821515815260200191505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610744565b6040518082815260200191505060405180910390f35b61031c61078c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035c578082015181840152602081019050610341565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103e3600480360360408110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b60405180821515815260200191505060405180910390f35b6104476004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108fb565b60405180821515815260200191505060405180910390f35b6104c16004803603604081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610919565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561056f5780601f106105445761010080835404028352916020019161056f565b820191906000526020600020905b81548152906001019060200180831161055257829003601f168201915b5050505050905090565b600061058d6105866109a0565b84846109a8565b6001905092915050565b6000600254905090565b60006105ae848484610b9f565b61066f846105ba6109a0565b61066a8560405180606001604052806028815260200161101360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106206109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061073a61069e6109a0565b8461073585600160006106af6109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6109a8565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b60006108f161083b6109a0565b846108ec8560405180606001604052806025815260200161108460259139600160006108656109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b6001905092915050565b600061090f6109086109a0565b8484610b9f565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fcb6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061103b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fa86023913960400191505060405180910390fd5b610cb6838383610fa2565b610d2181604051806060016040528060268152602001610fed602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed2578082015181840152602081019050610eb7565b50505050905090810190601f168015610eff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bd3f1ebbd37f184285799523b3026426208876513625827f88611ecf03a6e1e864736f6c634300060c0033",
- "immutableReferences": {},
- "sourceMap": "1321:9474:5:-:0;;;1958:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2040:5;2032;:13;;;;;;;;;;;;:::i;:::-;;2065:7;2055;:17;;;;;;;;;;;;:::i;:::-;;2094:2;2082:9;;:14;;;;;;;;;;;;;;;;;;1958:145;;1321:9474;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
- "deployedSourceMap": "1321:9474:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2168:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4244:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3235:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4877:317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3086:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5589:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3399:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2370:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6291:266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3727:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3957:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2168:89;2213:13;2245:5;2238:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2168:89;:::o;4244:166::-;4327:4;4343:39;4352:12;:10;:12::i;:::-;4366:7;4375:6;4343:8;:39::i;:::-;4399:4;4392:11;;4244:166;;;;:::o;3235:106::-;3296:7;3322:12;;3315:19;;3235:106;:::o;4877:317::-;4983:4;4999:36;5009:6;5017:9;5028:6;4999:9;:36::i;:::-;5045:121;5054:6;5062:12;:10;:12::i;:::-;5076:89;5114:6;5076:89;;;;;;;;;;;;;;;;;:11;:19;5088:6;5076:19;;;;;;;;;;;;;;;:33;5096:12;:10;:12::i;:::-;5076:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5045:8;:121::i;:::-;5183:4;5176:11;;4877:317;;;;;:::o;3086:89::-;3135:5;3159:9;;;;;;;;;;;3152:16;;3086:89;:::o;5589:215::-;5677:4;5693:83;5702:12;:10;:12::i;:::-;5716:7;5725:50;5764:10;5725:11;:25;5737:12;:10;:12::i;:::-;5725:25;;;;;;;;;;;;;;;:34;5751:7;5725:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;5693:8;:83::i;:::-;5793:4;5786:11;;5589:215;;;;:::o;3399:125::-;3473:7;3499:9;:18;3509:7;3499:18;;;;;;;;;;;;;;;;3492:25;;3399:125;;;:::o;2370:93::-;2417:13;2449:7;2442:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:93;:::o;6291:266::-;6384:4;6400:129;6409:12;:10;:12::i;:::-;6423:7;6432:96;6471:15;6432:96;;;;;;;;;;;;;;;;;:11;:25;6444:12;:10;:12::i;:::-;6432:25;;;;;;;;;;;;;;;:34;6458:7;6432:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6400:8;:129::i;:::-;6546:4;6539:11;;6291:266;;;;:::o;3727:172::-;3813:4;3829:42;3839:12;:10;:12::i;:::-;3853:9;3864:6;3829:9;:42::i;:::-;3888:4;3881:11;;3727:172;;;;:::o;3957:149::-;4046:7;4072:11;:18;4084:5;4072:18;;;;;;;;;;;;;;;:27;4091:7;4072:27;;;;;;;;;;;;;;;;4065:34;;3957:149;;;;:::o;598:104:9:-;651:15;685:10;678:17;;598:104;:::o;9355:340:5:-;9473:1;9456:19;;:5;:19;;;;9448:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9553:1;9534:21;;:7;:21;;;;9526:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9635:6;9605:11;:18;9617:5;9605:18;;;;;;;;;;;;;;;:27;9624:7;9605:27;;;;;;;;;;;;;;;:36;;;;9672:7;9656:32;;9665:5;9656:32;;;9681:6;9656:32;;;;;;;;;;;;;;;;;;9355:340;;;:::o;7031:530::-;7154:1;7136:20;;:6;:20;;;;7128:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7237:1;7216:23;;:9;:23;;;;7208:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7290:47;7311:6;7319:9;7330:6;7290:20;:47::i;:::-;7368:71;7390:6;7368:71;;;;;;;;;;;;;;;;;:9;:17;7378:6;7368:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;7348:9;:17;7358:6;7348:17;;;;;;;;;;;;;;;:91;;;;7472:32;7497:6;7472:9;:20;7482:9;7472:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7449:9;:20;7459:9;7449:20;;;;;;;;;;;;;;;:55;;;;7536:9;7519:35;;7528:6;7519:35;;;7547:6;7519:35;;;;;;;;;;;;;;;;;;7031:530;;;:::o;5432:163:4:-;5518:7;5550:1;5545;:6;;5553:12;5537:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5587:1;5583;:5;5576:12;;5432:163;;;;;:::o;2690:175::-;2748:7;2767:9;2783:1;2779;:5;2767:17;;2807:1;2802;:6;;2794:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2857:1;2850:8;;;2690:175;;;;:::o;10701:92:5:-;;;;:::o",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"../../utils/Context.sol\";\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin guidelines: functions revert instead\n * of returning `false` on failure. This behavior is nonetheless conventional\n * and does not conflict with the expectations of ERC20 applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20 {\n using SafeMath for uint256;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n uint8 private _decimals;\n\n /**\n * @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n * a default value of 18.\n *\n * To select a different value for {decimals}, use {_setupDecimals}.\n *\n * All three of these values are immutable: they can only be set once during\n * construction.\n */\n constructor (string memory name_, string memory symbol_) public {\n _name = name_;\n _symbol = symbol_;\n _decimals = 18;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n * called.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return _decimals;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `recipient` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\n _transfer(_msgSender(), recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n _approve(_msgSender(), spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * Requirements:\n *\n * - `sender` and `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n * - the caller must have allowance for ``sender``'s tokens of at least\n * `amount`.\n */\n function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {\n _transfer(sender, recipient, amount);\n _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\"));\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\"));\n return true;\n }\n\n /**\n * @dev Moves tokens `amount` from `sender` to `recipient`.\n *\n * This is internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `sender` cannot be the zero address.\n * - `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n */\n function _transfer(address sender, address recipient, uint256 amount) internal virtual {\n require(sender != address(0), \"ERC20: transfer from the zero address\");\n require(recipient != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(sender, recipient, amount);\n\n _balances[sender] = _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\");\n _balances[recipient] = _balances[recipient].add(amount);\n emit Transfer(sender, recipient, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply = _totalSupply.add(amount);\n _balances[account] = _balances[account].add(amount);\n emit Transfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n _balances[account] = _balances[account].sub(amount, \"ERC20: burn amount exceeds balance\");\n _totalSupply = _totalSupply.sub(amount);\n emit Transfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(address owner, address spender, uint256 amount) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Sets {decimals} to a value other than the default one of 18.\n *\n * WARNING: This function should only be called from the constructor. Most\n * applications that interact with token contracts will not expect\n * {decimals} to ever change, and may work incorrectly if it does.\n */\n function _setupDecimals(uint8 decimals_) internal virtual {\n _decimals = decimals_;\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be to transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }\n}\n",
- "sourcePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "ast": {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "exportedSymbols": {
- "ERC20": [3008]
- },
- "id": 3009,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 2507,
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"],
- "nodeType": "PragmaDirective",
- "src": "33:31:5"
- },
- {
- "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
- "file": "../../utils/Context.sol",
- "id": 2508,
- "nodeType": "ImportDirective",
- "scope": 3009,
- "sourceUnit": 3619,
- "src": "66:33:5",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "./IERC20.sol",
- "id": 2509,
- "nodeType": "ImportDirective",
- "scope": 3009,
- "sourceUnit": 3087,
- "src": "100:22:5",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "../../math/SafeMath.sol",
- "id": 2510,
- "nodeType": "ImportDirective",
- "scope": 3009,
- "sourceUnit": 2506,
- "src": "123:33:5",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "abstract": false,
- "baseContracts": [
- {
- "arguments": null,
- "baseName": {
- "contractScope": null,
- "id": 2512,
- "name": "Context",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3618,
- "src": "1339:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Context_$3618",
- "typeString": "contract Context"
- }
- },
- "id": 2513,
- "nodeType": "InheritanceSpecifier",
- "src": "1339:7:5"
- },
- {
- "arguments": null,
- "baseName": {
- "contractScope": null,
- "id": 2514,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "1348:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 2515,
- "nodeType": "InheritanceSpecifier",
- "src": "1348:6:5"
- }
- ],
- "contractDependencies": [3086, 3618],
- "contractKind": "contract",
- "documentation": {
- "id": 2511,
- "nodeType": "StructuredDocumentation",
- "src": "158:1162:5",
- "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin guidelines: functions revert instead\n of returning `false` on failure. This behavior is nonetheless conventional\n and does not conflict with the expectations of ERC20 applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."
- },
- "fullyImplemented": true,
- "id": 3008,
- "linearizedBaseContracts": [3008, 3086, 3618],
- "name": "ERC20",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "id": 2518,
- "libraryName": {
- "contractScope": null,
- "id": 2516,
- "name": "SafeMath",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 2505,
- "src": "1367:8:5",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeMath_$2505",
- "typeString": "library SafeMath"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "1361:27:5",
- "typeName": {
- "id": 2517,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1380:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- {
- "constant": false,
- "id": 2522,
- "mutability": "mutable",
- "name": "_balances",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3008,
- "src": "1394:46:5",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- },
- "typeName": {
- "id": 2521,
- "keyType": {
- "id": 2519,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1403:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Mapping",
- "src": "1394:28:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- },
- "valueType": {
- "id": 2520,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1414:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 2528,
- "mutability": "mutable",
- "name": "_allowances",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3008,
- "src": "1447:69:5",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- },
- "typeName": {
- "id": 2527,
- "keyType": {
- "id": 2523,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1456:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Mapping",
- "src": "1447:49:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- },
- "valueType": {
- "id": 2526,
- "keyType": {
- "id": 2524,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1476:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Mapping",
- "src": "1467:28:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- },
- "valueType": {
- "id": 2525,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1487:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 2530,
- "mutability": "mutable",
- "name": "_totalSupply",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3008,
- "src": "1523:28:5",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2529,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1523:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 2532,
- "mutability": "mutable",
- "name": "_name",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3008,
- "src": "1558:20:5",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string"
- },
- "typeName": {
- "id": 2531,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "1558:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 2534,
- "mutability": "mutable",
- "name": "_symbol",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3008,
- "src": "1584:22:5",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string"
- },
- "typeName": {
- "id": 2533,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "1584:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 2536,
- "mutability": "mutable",
- "name": "_decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3008,
- "src": "1612:23:5",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 2535,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1612:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "body": {
- "id": 2556,
- "nodeType": "Block",
- "src": "2022:81:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 2546,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 2544,
- "name": "_name",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2532,
- "src": "2032:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string storage ref"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 2545,
- "name": "name_",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2539,
- "src": "2040:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- },
- "src": "2032:13:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string storage ref"
- }
- },
- "id": 2547,
- "nodeType": "ExpressionStatement",
- "src": "2032:13:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2550,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 2548,
- "name": "_symbol",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2534,
- "src": "2055:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string storage ref"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 2549,
- "name": "symbol_",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2541,
- "src": "2065:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- },
- "src": "2055:17:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string storage ref"
- }
- },
- "id": 2551,
- "nodeType": "ExpressionStatement",
- "src": "2055:17:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2554,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 2552,
- "name": "_decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2536,
- "src": "2082:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "3138",
- "id": 2553,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2094:2:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_18_by_1",
- "typeString": "int_const 18"
- },
- "value": "18"
- },
- "src": "2082:14:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 2555,
- "nodeType": "ExpressionStatement",
- "src": "2082:14:5"
- }
- ]
- },
- "documentation": {
- "id": 2537,
- "nodeType": "StructuredDocumentation",
- "src": "1642:311:5",
- "text": " @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n a default value of 18.\n To select a different value for {decimals}, use {_setupDecimals}.\n All three of these values are immutable: they can only be set once during\n construction."
- },
- "id": 2557,
- "implemented": true,
- "kind": "constructor",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2542,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2539,
- "mutability": "mutable",
- "name": "name_",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2557,
- "src": "1971:19:5",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 2538,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "1971:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2541,
- "mutability": "mutable",
- "name": "symbol_",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2557,
- "src": "1992:21:5",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 2540,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "1992:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1970:44:5"
- },
- "returnParameters": {
- "id": 2543,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2022:0:5"
- },
- "scope": 3008,
- "src": "1958:145:5",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 2565,
- "nodeType": "Block",
- "src": "2228:29:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 2563,
- "name": "_name",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2532,
- "src": "2245:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string storage ref"
- }
- },
- "functionReturnParameters": 2562,
- "id": 2564,
- "nodeType": "Return",
- "src": "2238:12:5"
- }
- ]
- },
- "documentation": {
- "id": 2558,
- "nodeType": "StructuredDocumentation",
- "src": "2109:54:5",
- "text": " @dev Returns the name of the token."
- },
- "functionSelector": "06fdde03",
- "id": 2566,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "name",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2559,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2181:2:5"
- },
- "returnParameters": {
- "id": 2562,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2561,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2566,
- "src": "2213:13:5",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 2560,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "2213:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2212:15:5"
- },
- "scope": 3008,
- "src": "2168:89:5",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- {
- "body": {
- "id": 2574,
- "nodeType": "Block",
- "src": "2432:31:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 2572,
- "name": "_symbol",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2534,
- "src": "2449:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string storage ref"
- }
- },
- "functionReturnParameters": 2571,
- "id": 2573,
- "nodeType": "Return",
- "src": "2442:14:5"
- }
- ]
- },
- "documentation": {
- "id": 2567,
- "nodeType": "StructuredDocumentation",
- "src": "2263:102:5",
- "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."
- },
- "functionSelector": "95d89b41",
- "id": 2575,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "symbol",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2568,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2385:2:5"
- },
- "returnParameters": {
- "id": 2571,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2570,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2575,
- "src": "2417:13:5",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 2569,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "2417:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2416:15:5"
- },
- "scope": 3008,
- "src": "2370:93:5",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- {
- "body": {
- "id": 2583,
- "nodeType": "Block",
- "src": "3142:33:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 2581,
- "name": "_decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2536,
- "src": "3159:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "functionReturnParameters": 2580,
- "id": 2582,
- "nodeType": "Return",
- "src": "3152:16:5"
- }
- ]
- },
- "documentation": {
- "id": 2576,
- "nodeType": "StructuredDocumentation",
- "src": "2469:612:5",
- "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
- },
- "functionSelector": "313ce567",
- "id": 2584,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "decimals",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2577,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "3103:2:5"
- },
- "returnParameters": {
- "id": 2580,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2579,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2584,
- "src": "3135:5:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 2578,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "3135:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3134:7:5"
- },
- "scope": 3008,
- "src": "3086:89:5",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- {
- "baseFunctions": [3017],
- "body": {
- "id": 2593,
- "nodeType": "Block",
- "src": "3305:36:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 2591,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2530,
- "src": "3322:12:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2590,
- "id": 2592,
- "nodeType": "Return",
- "src": "3315:19:5"
- }
- ]
- },
- "documentation": {
- "id": 2585,
- "nodeType": "StructuredDocumentation",
- "src": "3181:49:5",
- "text": " @dev See {IERC20-totalSupply}."
- },
- "functionSelector": "18160ddd",
- "id": 2594,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "totalSupply",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 2587,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "3278:8:5"
- },
- "parameters": {
- "id": 2586,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "3255:2:5"
- },
- "returnParameters": {
- "id": 2590,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2589,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2594,
- "src": "3296:7:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2588,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3296:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3295:9:5"
- },
- "scope": 3008,
- "src": "3235:106:5",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- {
- "baseFunctions": [3025],
- "body": {
- "id": 2607,
- "nodeType": "Block",
- "src": "3482:42:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2603,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2522,
- "src": "3499:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2605,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2604,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2597,
- "src": "3509:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3499:18:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2602,
- "id": 2606,
- "nodeType": "Return",
- "src": "3492:25:5"
- }
- ]
- },
- "documentation": {
- "id": 2595,
- "nodeType": "StructuredDocumentation",
- "src": "3347:47:5",
- "text": " @dev See {IERC20-balanceOf}."
- },
- "functionSelector": "70a08231",
- "id": 2608,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "balanceOf",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 2599,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "3455:8:5"
- },
- "parameters": {
- "id": 2598,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2597,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2608,
- "src": "3418:15:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2596,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "3418:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3417:17:5"
- },
- "returnParameters": {
- "id": 2602,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2601,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2608,
- "src": "3473:7:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2600,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3473:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3472:9:5"
- },
- "scope": 3008,
- "src": "3399:125:5",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- {
- "baseFunctions": [3035],
- "body": {
- "id": 2628,
- "nodeType": "Block",
- "src": "3819:80:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 2620,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "3839:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 2621,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3839:12:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2622,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2611,
- "src": "3853:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2623,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2613,
- "src": "3864:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2619,
- "name": "_transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2829,
- "src": "3829:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2624,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3829:42:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2625,
- "nodeType": "ExpressionStatement",
- "src": "3829:42:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2626,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3888:4:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 2618,
- "id": 2627,
- "nodeType": "Return",
- "src": "3881:11:5"
- }
- ]
- },
- "documentation": {
- "id": 2609,
- "nodeType": "StructuredDocumentation",
- "src": "3530:192:5",
- "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."
- },
- "functionSelector": "a9059cbb",
- "id": 2629,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "transfer",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 2615,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "3795:8:5"
- },
- "parameters": {
- "id": 2614,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2611,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2629,
- "src": "3745:17:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2610,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "3745:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2613,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2629,
- "src": "3764:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2612,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3764:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3744:35:5"
- },
- "returnParameters": {
- "id": 2618,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2617,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2629,
- "src": "3813:4:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2616,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "3813:4:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3812:6:5"
- },
- "scope": 3008,
- "src": "3727:172:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- {
- "baseFunctions": [3045],
- "body": {
- "id": 2646,
- "nodeType": "Block",
- "src": "4055:51:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2640,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2528,
- "src": "4072:11:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 2642,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2641,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2632,
- "src": "4084:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4072:18:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2644,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2643,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2634,
- "src": "4091:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4072:27:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2639,
- "id": 2645,
- "nodeType": "Return",
- "src": "4065:34:5"
- }
- ]
- },
- "documentation": {
- "id": 2630,
- "nodeType": "StructuredDocumentation",
- "src": "3905:47:5",
- "text": " @dev See {IERC20-allowance}."
- },
- "functionSelector": "dd62ed3e",
- "id": 2647,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "allowance",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 2636,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "4028:8:5"
- },
- "parameters": {
- "id": 2635,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2632,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2647,
- "src": "3976:13:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2631,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "3976:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2634,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2647,
- "src": "3991:15:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2633,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "3991:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3975:32:5"
- },
- "returnParameters": {
- "id": 2639,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2638,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2647,
- "src": "4046:7:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2637,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4046:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4045:9:5"
- },
- "scope": 3008,
- "src": "3957:149:5",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- {
- "baseFunctions": [3055],
- "body": {
- "id": 2667,
- "nodeType": "Block",
- "src": "4333:77:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 2659,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "4352:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 2660,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4352:12:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2661,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2650,
- "src": "4366:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2662,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2652,
- "src": "4375:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2658,
- "name": "_approve",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2985,
- "src": "4343:8:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2663,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4343:39:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2664,
- "nodeType": "ExpressionStatement",
- "src": "4343:39:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2665,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4399:4:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 2657,
- "id": 2666,
- "nodeType": "Return",
- "src": "4392:11:5"
- }
- ]
- },
- "documentation": {
- "id": 2648,
- "nodeType": "StructuredDocumentation",
- "src": "4112:127:5",
- "text": " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."
- },
- "functionSelector": "095ea7b3",
- "id": 2668,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "approve",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 2654,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "4309:8:5"
- },
- "parameters": {
- "id": 2653,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2650,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2668,
- "src": "4261:15:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2649,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4261:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2652,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2668,
- "src": "4278:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2651,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4278:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4260:33:5"
- },
- "returnParameters": {
- "id": 2657,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2656,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2668,
- "src": "4327:4:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2655,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "4327:4:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4326:6:5"
- },
- "scope": 3008,
- "src": "4244:166:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- {
- "baseFunctions": [3067],
- "body": {
- "id": 2705,
- "nodeType": "Block",
- "src": "4989:205:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2682,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2671,
- "src": "5009:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2683,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2673,
- "src": "5017:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2684,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2675,
- "src": "5028:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2681,
- "name": "_transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2829,
- "src": "4999:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2685,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4999:36:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2686,
- "nodeType": "ExpressionStatement",
- "src": "4999:36:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2688,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2671,
- "src": "5054:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 2689,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "5062:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 2690,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5062:12:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2698,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2675,
- "src": "5114:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
- "id": 2699,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5122:42:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
- "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
- },
- "value": "ERC20: transfer amount exceeds allowance"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
- "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2691,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2528,
- "src": "5076:11:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 2693,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2692,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2671,
- "src": "5088:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "5076:19:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2696,
- "indexExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 2694,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "5096:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 2695,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5096:12:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "5076:33:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2697,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2456,
- "src": "5076:37:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
- }
- },
- "id": 2700,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5076:89:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2687,
- "name": "_approve",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2985,
- "src": "5045:8:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2701,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5045:121:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2702,
- "nodeType": "ExpressionStatement",
- "src": "5045:121:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2703,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5183:4:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 2680,
- "id": 2704,
- "nodeType": "Return",
- "src": "5176:11:5"
- }
- ]
- },
- "documentation": {
- "id": 2669,
- "nodeType": "StructuredDocumentation",
- "src": "4416:456:5",
- "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`."
- },
- "functionSelector": "23b872dd",
- "id": 2706,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "transferFrom",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 2677,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "4965:8:5"
- },
- "parameters": {
- "id": 2676,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2671,
- "mutability": "mutable",
- "name": "sender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2706,
- "src": "4899:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2670,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4899:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2673,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2706,
- "src": "4915:17:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2672,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4915:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2675,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2706,
- "src": "4934:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2674,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4934:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4898:51:5"
- },
- "returnParameters": {
- "id": 2680,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2679,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2706,
- "src": "4983:4:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2678,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "4983:4:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4982:6:5"
- },
- "scope": 3008,
- "src": "4877:317:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- {
- "body": {
- "id": 2733,
- "nodeType": "Block",
- "src": "5683:121:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 2717,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "5702:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 2718,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5702:12:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2719,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2709,
- "src": "5716:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2727,
- "name": "addedValue",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2711,
- "src": "5764:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2720,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2528,
- "src": "5725:11:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 2723,
- "indexExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 2721,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "5737:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 2722,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5737:12:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "5725:25:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2725,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2724,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2709,
- "src": "5751:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "5725:34:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2726,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2332,
- "src": "5725:38:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 2728,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5725:50:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2716,
- "name": "_approve",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2985,
- "src": "5693:8:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2729,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5693:83:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2730,
- "nodeType": "ExpressionStatement",
- "src": "5693:83:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2731,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5793:4:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 2715,
- "id": 2732,
- "nodeType": "Return",
- "src": "5786:11:5"
- }
- ]
- },
- "documentation": {
- "id": 2707,
- "nodeType": "StructuredDocumentation",
- "src": "5200:384:5",
- "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."
- },
- "functionSelector": "39509351",
- "id": 2734,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "increaseAllowance",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2712,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2709,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2734,
- "src": "5616:15:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2708,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5616:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2711,
- "mutability": "mutable",
- "name": "addedValue",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2734,
- "src": "5633:18:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2710,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "5633:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5615:37:5"
- },
- "returnParameters": {
- "id": 2715,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2714,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2734,
- "src": "5677:4:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2713,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "5677:4:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5676:6:5"
- },
- "scope": 3008,
- "src": "5589:215:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- {
- "body": {
- "id": 2762,
- "nodeType": "Block",
- "src": "6390:167:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 2745,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "6409:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 2746,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6409:12:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2747,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2737,
- "src": "6423:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2755,
- "name": "subtractedValue",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2739,
- "src": "6471:15:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
- "id": 2756,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6488:39:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
- "typeString": "literal_string \"ERC20: decreased allowance below zero\""
- },
- "value": "ERC20: decreased allowance below zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
- "typeString": "literal_string \"ERC20: decreased allowance below zero\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2748,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2528,
- "src": "6432:11:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 2751,
- "indexExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 2749,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "6444:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 2750,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6444:12:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "6432:25:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2753,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2752,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2737,
- "src": "6458:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "6432:34:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2754,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2456,
- "src": "6432:38:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
- }
- },
- "id": 2757,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6432:96:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2744,
- "name": "_approve",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2985,
- "src": "6400:8:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2758,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6400:129:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2759,
- "nodeType": "ExpressionStatement",
- "src": "6400:129:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2760,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6546:4:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 2743,
- "id": 2761,
- "nodeType": "Return",
- "src": "6539:11:5"
- }
- ]
- },
- "documentation": {
- "id": 2735,
- "nodeType": "StructuredDocumentation",
- "src": "5810:476:5",
- "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."
- },
- "functionSelector": "a457c2d7",
- "id": 2763,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "decreaseAllowance",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2740,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2737,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2763,
- "src": "6318:15:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2736,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "6318:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2739,
- "mutability": "mutable",
- "name": "subtractedValue",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2763,
- "src": "6335:23:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2738,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6335:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6317:42:5"
- },
- "returnParameters": {
- "id": 2743,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2742,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2763,
- "src": "6384:4:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2741,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "6384:4:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6383:6:5"
- },
- "scope": 3008,
- "src": "6291:266:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- {
- "body": {
- "id": 2828,
- "nodeType": "Block",
- "src": "7118:443:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2779,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2774,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2766,
- "src": "7136:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2777,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7154:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2776,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "7146:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2775,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7146:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2778,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7146:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "7136:20:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373",
- "id": 2780,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7158:39:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea",
- "typeString": "literal_string \"ERC20: transfer from the zero address\""
- },
- "value": "ERC20: transfer from the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea",
- "typeString": "literal_string \"ERC20: transfer from the zero address\""
- }
- ],
- "id": 2773,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "7128:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2781,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7128:70:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2782,
- "nodeType": "ExpressionStatement",
- "src": "7128:70:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2789,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2784,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2768,
- "src": "7216:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2787,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7237:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2786,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "7229:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2785,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7229:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2788,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7229:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "7216:23:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373",
- "id": 2790,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7241:37:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f",
- "typeString": "literal_string \"ERC20: transfer to the zero address\""
- },
- "value": "ERC20: transfer to the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f",
- "typeString": "literal_string \"ERC20: transfer to the zero address\""
- }
- ],
- "id": 2783,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "7208:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2791,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7208:71:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2792,
- "nodeType": "ExpressionStatement",
- "src": "7208:71:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2794,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2766,
- "src": "7311:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2795,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2768,
- "src": "7319:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2796,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2770,
- "src": "7330:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2793,
- "name": "_beforeTokenTransfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3007,
- "src": "7290:20:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2797,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7290:47:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2798,
- "nodeType": "ExpressionStatement",
- "src": "7290:47:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2809,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2799,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2522,
- "src": "7348:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2801,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2800,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2766,
- "src": "7358:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "7348:17:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2806,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2770,
- "src": "7390:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
- "id": 2807,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7398:40:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6",
- "typeString": "literal_string \"ERC20: transfer amount exceeds balance\""
- },
- "value": "ERC20: transfer amount exceeds balance"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6",
- "typeString": "literal_string \"ERC20: transfer amount exceeds balance\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2802,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2522,
- "src": "7368:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2804,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2803,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2766,
- "src": "7378:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "7368:17:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2805,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2456,
- "src": "7368:21:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
- }
- },
- "id": 2808,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7368:71:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7348:91:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2810,
- "nodeType": "ExpressionStatement",
- "src": "7348:91:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2820,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2811,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2522,
- "src": "7449:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2813,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2812,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2768,
- "src": "7459:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "7449:20:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2818,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2770,
- "src": "7497:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2814,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2522,
- "src": "7472:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2816,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2815,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2768,
- "src": "7482:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "7472:20:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2817,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2332,
- "src": "7472:24:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 2819,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7472:32:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7449:55:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2821,
- "nodeType": "ExpressionStatement",
- "src": "7449:55:5"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2823,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2766,
- "src": "7528:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2824,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2768,
- "src": "7536:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2825,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2770,
- "src": "7547:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2822,
- "name": "Transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3076,
- "src": "7519:8:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2826,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7519:35:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2827,
- "nodeType": "EmitStatement",
- "src": "7514:40:5"
- }
- ]
- },
- "documentation": {
- "id": 2764,
- "nodeType": "StructuredDocumentation",
- "src": "6563:463:5",
- "text": " @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."
- },
- "id": 2829,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_transfer",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2771,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2766,
- "mutability": "mutable",
- "name": "sender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2829,
- "src": "7050:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2765,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7050:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2768,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2829,
- "src": "7066:17:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2767,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7066:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2770,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2829,
- "src": "7085:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2769,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7085:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7049:51:5"
- },
- "returnParameters": {
- "id": 2772,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "7118:0:5"
- },
- "scope": 3008,
- "src": "7031:530:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2883,
- "nodeType": "Block",
- "src": "7897:305:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2843,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2838,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2832,
- "src": "7915:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2841,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7934:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2840,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "7926:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2839,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7926:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2842,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7926:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "7915:21:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373",
- "id": 2844,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7938:33:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e",
- "typeString": "literal_string \"ERC20: mint to the zero address\""
- },
- "value": "ERC20: mint to the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e",
- "typeString": "literal_string \"ERC20: mint to the zero address\""
- }
- ],
- "id": 2837,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "7907:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2845,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7907:65:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2846,
- "nodeType": "ExpressionStatement",
- "src": "7907:65:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2850,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8012:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2849,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "8004:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2848,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8004:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2851,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8004:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2852,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2832,
- "src": "8016:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2853,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2834,
- "src": "8025:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2847,
- "name": "_beforeTokenTransfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3007,
- "src": "7983:20:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2854,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7983:49:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2855,
- "nodeType": "ExpressionStatement",
- "src": "7983:49:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2861,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 2856,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2530,
- "src": "8043:12:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2859,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2834,
- "src": "8075:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 2857,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2530,
- "src": "8058:12:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2858,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2332,
- "src": "8058:16:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 2860,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8058:24:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "8043:39:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2862,
- "nodeType": "ExpressionStatement",
- "src": "8043:39:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2872,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2863,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2522,
- "src": "8092:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2865,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2864,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2832,
- "src": "8102:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "8092:18:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2870,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2834,
- "src": "8136:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2866,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2522,
- "src": "8113:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2868,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2867,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2832,
- "src": "8123:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "8113:18:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2869,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2332,
- "src": "8113:22:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 2871,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8113:30:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "8092:51:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2873,
- "nodeType": "ExpressionStatement",
- "src": "8092:51:5"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2877,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8175:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2876,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "8167:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2875,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8167:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2878,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8167:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2879,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2832,
- "src": "8179:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2880,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2834,
- "src": "8188:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2874,
- "name": "Transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3076,
- "src": "8158:8:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2881,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8158:37:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2882,
- "nodeType": "EmitStatement",
- "src": "8153:42:5"
- }
- ]
- },
- "documentation": {
- "id": 2830,
- "nodeType": "StructuredDocumentation",
- "src": "7567:260:5",
- "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `to` cannot be the zero address."
- },
- "id": 2884,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_mint",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2835,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2832,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2884,
- "src": "7847:15:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2831,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7847:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2834,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2884,
- "src": "7864:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2833,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7864:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7846:33:5"
- },
- "returnParameters": {
- "id": 2836,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "7897:0:5"
- },
- "scope": 3008,
- "src": "7832:370:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2939,
- "nodeType": "Block",
- "src": "8587:345:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2898,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2893,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2887,
- "src": "8605:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2896,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8624:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2895,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "8616:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2894,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8616:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2897,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8616:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "8605:21:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373",
- "id": 2899,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8628:35:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f",
- "typeString": "literal_string \"ERC20: burn from the zero address\""
- },
- "value": "ERC20: burn from the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f",
- "typeString": "literal_string \"ERC20: burn from the zero address\""
- }
- ],
- "id": 2892,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "8597:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2900,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8597:67:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2901,
- "nodeType": "ExpressionStatement",
- "src": "8597:67:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2903,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2887,
- "src": "8696:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2906,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8713:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2905,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "8705:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2904,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8705:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2907,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8705:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2908,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2889,
- "src": "8717:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2902,
- "name": "_beforeTokenTransfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3007,
- "src": "8675:20:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2909,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8675:49:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2910,
- "nodeType": "ExpressionStatement",
- "src": "8675:49:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2921,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2911,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2522,
- "src": "8735:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2913,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2912,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2887,
- "src": "8745:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "8735:18:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2918,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2889,
- "src": "8779:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365",
- "id": 2919,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8787:36:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd",
- "typeString": "literal_string \"ERC20: burn amount exceeds balance\""
- },
- "value": "ERC20: burn amount exceeds balance"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd",
- "typeString": "literal_string \"ERC20: burn amount exceeds balance\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2914,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2522,
- "src": "8756:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2916,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2915,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2887,
- "src": "8766:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "8756:18:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2917,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2456,
- "src": "8756:22:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
- }
- },
- "id": 2920,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8756:68:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "8735:89:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2922,
- "nodeType": "ExpressionStatement",
- "src": "8735:89:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2928,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 2923,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2530,
- "src": "8834:12:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2926,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2889,
- "src": "8866:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 2924,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2530,
- "src": "8849:12:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2925,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2354,
- "src": "8849:16:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 2927,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8849:24:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "8834:39:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2929,
- "nodeType": "ExpressionStatement",
- "src": "8834:39:5"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2931,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2887,
- "src": "8897:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2934,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8914:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2933,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "8906:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2932,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8906:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2935,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8906:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2936,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2889,
- "src": "8918:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2930,
- "name": "Transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3076,
- "src": "8888:8:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2937,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8888:37:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2938,
- "nodeType": "EmitStatement",
- "src": "8883:42:5"
- }
- ]
- },
- "documentation": {
- "id": 2885,
- "nodeType": "StructuredDocumentation",
- "src": "8208:309:5",
- "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."
- },
- "id": 2940,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_burn",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2890,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2887,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2940,
- "src": "8537:15:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2886,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8537:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2889,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2940,
- "src": "8554:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2888,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "8554:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "8536:33:5"
- },
- "returnParameters": {
- "id": 2891,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "8587:0:5"
- },
- "scope": 3008,
- "src": "8522:410:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2984,
- "nodeType": "Block",
- "src": "9438:257:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2956,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2951,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2943,
- "src": "9456:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2954,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9473:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2953,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9465:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2952,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9465:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2955,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9465:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "9456:19:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373",
- "id": 2957,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9477:38:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208",
- "typeString": "literal_string \"ERC20: approve from the zero address\""
- },
- "value": "ERC20: approve from the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208",
- "typeString": "literal_string \"ERC20: approve from the zero address\""
- }
- ],
- "id": 2950,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "9448:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2958,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9448:68:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2959,
- "nodeType": "ExpressionStatement",
- "src": "9448:68:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2966,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2961,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2945,
- "src": "9534:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2964,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9553:1:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2963,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9545:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2962,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9545:7:5",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2965,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9545:10:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "9534:21:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373",
- "id": 2967,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9557:36:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029",
- "typeString": "literal_string \"ERC20: approve to the zero address\""
- },
- "value": "ERC20: approve to the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029",
- "typeString": "literal_string \"ERC20: approve to the zero address\""
- }
- ],
- "id": 2960,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "9526:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2968,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9526:68:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2969,
- "nodeType": "ExpressionStatement",
- "src": "9526:68:5"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2976,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2970,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2528,
- "src": "9605:11:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 2973,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2971,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2943,
- "src": "9617:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "9605:18:5",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2974,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2972,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2945,
- "src": "9624:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "9605:27:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 2975,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2947,
- "src": "9635:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "9605:36:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2977,
- "nodeType": "ExpressionStatement",
- "src": "9605:36:5"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2979,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2943,
- "src": "9665:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2980,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2945,
- "src": "9672:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2981,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2947,
- "src": "9681:6:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2978,
- "name": "Approval",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3085,
- "src": "9656:8:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2982,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9656:32:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2983,
- "nodeType": "EmitStatement",
- "src": "9651:37:5"
- }
- ]
- },
- "documentation": {
- "id": 2941,
- "nodeType": "StructuredDocumentation",
- "src": "8938:412:5",
- "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."
- },
- "id": 2985,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_approve",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2948,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2943,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2985,
- "src": "9373:13:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2942,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9373:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2945,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2985,
- "src": "9388:15:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2944,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9388:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2947,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2985,
- "src": "9405:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2946,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "9405:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "9372:48:5"
- },
- "returnParameters": {
- "id": 2949,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "9438:0:5"
- },
- "scope": 3008,
- "src": "9355:340:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2995,
- "nodeType": "Block",
- "src": "10076:38:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 2993,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 2991,
- "name": "_decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2536,
- "src": "10086:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 2992,
- "name": "decimals_",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2988,
- "src": "10098:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "10086:21:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 2994,
- "nodeType": "ExpressionStatement",
- "src": "10086:21:5"
- }
- ]
- },
- "documentation": {
- "id": 2986,
- "nodeType": "StructuredDocumentation",
- "src": "9701:312:5",
- "text": " @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does."
- },
- "id": 2996,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_setupDecimals",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2989,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2988,
- "mutability": "mutable",
- "name": "decimals_",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2996,
- "src": "10042:15:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 2987,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "10042:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "10041:17:5"
- },
- "returnParameters": {
- "id": 2990,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "10076:0:5"
- },
- "scope": 3008,
- "src": "10018:96:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3006,
- "nodeType": "Block",
- "src": "10790:3:5",
- "statements": []
- },
- "documentation": {
- "id": 2997,
- "nodeType": "StructuredDocumentation",
- "src": "10120:576:5",
- "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be to transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."
- },
- "id": 3007,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_beforeTokenTransfer",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3004,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2999,
- "mutability": "mutable",
- "name": "from",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3007,
- "src": "10731:12:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2998,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "10731:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3001,
- "mutability": "mutable",
- "name": "to",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3007,
- "src": "10745:10:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3000,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "10745:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3003,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3007,
- "src": "10757:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3002,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10757:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "10730:42:5"
- },
- "returnParameters": {
- "id": 3005,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "10790:0:5"
- },
- "scope": 3008,
- "src": "10701:92:5",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- }
- ],
- "scope": 3009,
- "src": "1321:9474:5"
- }
- ],
- "src": "33:10763:5"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "exportedSymbols": {
- "ERC20": [3008]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"]
- },
- "id": 2507,
- "name": "PragmaDirective",
- "src": "33:31:5"
- },
- {
- "attributes": {
- "SourceUnit": 3619,
- "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
- "file": "../../utils/Context.sol",
- "scope": 3009,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 2508,
- "name": "ImportDirective",
- "src": "66:33:5"
- },
- {
- "attributes": {
- "SourceUnit": 3087,
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "./IERC20.sol",
- "scope": 3009,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 2509,
- "name": "ImportDirective",
- "src": "100:22:5"
- },
- {
- "attributes": {
- "SourceUnit": 2506,
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "../../math/SafeMath.sol",
- "scope": 3009,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 2510,
- "name": "ImportDirective",
- "src": "123:33:5"
- },
- {
- "attributes": {
- "abstract": false,
- "contractDependencies": [3086, 3618],
- "contractKind": "contract",
- "fullyImplemented": true,
- "linearizedBaseContracts": [3008, 3086, 3618],
- "name": "ERC20",
- "scope": 3009
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin guidelines: functions revert instead\n of returning `false` on failure. This behavior is nonetheless conventional\n and does not conflict with the expectations of ERC20 applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."
- },
- "id": 2511,
- "name": "StructuredDocumentation",
- "src": "158:1162:5"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "Context",
- "referencedDeclaration": 3618,
- "type": "contract Context"
- },
- "id": 2512,
- "name": "UserDefinedTypeName",
- "src": "1339:7:5"
- }
- ],
- "id": 2513,
- "name": "InheritanceSpecifier",
- "src": "1339:7:5"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 2514,
- "name": "UserDefinedTypeName",
- "src": "1348:6:5"
- }
- ],
- "id": 2515,
- "name": "InheritanceSpecifier",
- "src": "1348:6:5"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "SafeMath",
- "referencedDeclaration": 2505,
- "type": "library SafeMath"
- },
- "id": 2516,
- "name": "UserDefinedTypeName",
- "src": "1367:8:5"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2517,
- "name": "ElementaryTypeName",
- "src": "1380:7:5"
- }
- ],
- "id": 2518,
- "name": "UsingForDirective",
- "src": "1361:27:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_balances",
- "overrides": null,
- "scope": 3008,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(address => uint256)",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 2519,
- "name": "ElementaryTypeName",
- "src": "1403:7:5"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2520,
- "name": "ElementaryTypeName",
- "src": "1414:7:5"
- }
- ],
- "id": 2521,
- "name": "Mapping",
- "src": "1394:28:5"
- }
- ],
- "id": 2522,
- "name": "VariableDeclaration",
- "src": "1394:46:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_allowances",
- "overrides": null,
- "scope": 3008,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(address => mapping(address => uint256))",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(address => mapping(address => uint256))"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 2523,
- "name": "ElementaryTypeName",
- "src": "1456:7:5"
- },
- {
- "attributes": {
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 2524,
- "name": "ElementaryTypeName",
- "src": "1476:7:5"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2525,
- "name": "ElementaryTypeName",
- "src": "1487:7:5"
- }
- ],
- "id": 2526,
- "name": "Mapping",
- "src": "1467:28:5"
- }
- ],
- "id": 2527,
- "name": "Mapping",
- "src": "1447:49:5"
- }
- ],
- "id": 2528,
- "name": "VariableDeclaration",
- "src": "1447:69:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_totalSupply",
- "overrides": null,
- "scope": 3008,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2529,
- "name": "ElementaryTypeName",
- "src": "1523:7:5"
- }
- ],
- "id": 2530,
- "name": "VariableDeclaration",
- "src": "1523:28:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_name",
- "overrides": null,
- "scope": 3008,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "string",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 2531,
- "name": "ElementaryTypeName",
- "src": "1558:6:5"
- }
- ],
- "id": 2532,
- "name": "VariableDeclaration",
- "src": "1558:20:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_symbol",
- "overrides": null,
- "scope": 3008,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "string",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 2533,
- "name": "ElementaryTypeName",
- "src": "1584:6:5"
- }
- ],
- "id": 2534,
- "name": "VariableDeclaration",
- "src": "1584:22:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_decimals",
- "overrides": null,
- "scope": 3008,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 2535,
- "name": "ElementaryTypeName",
- "src": "1612:5:5"
- }
- ],
- "id": 2536,
- "name": "VariableDeclaration",
- "src": "1612:23:5"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": true,
- "kind": "constructor",
- "modifiers": [null],
- "name": "",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Sets the values for {name} and {symbol}, initializes {decimals} with\n a default value of 18.\n To select a different value for {decimals}, use {_setupDecimals}.\n All three of these values are immutable: they can only be set once during\n construction."
- },
- "id": 2537,
- "name": "StructuredDocumentation",
- "src": "1642:311:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "name_",
- "overrides": null,
- "scope": 2557,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 2538,
- "name": "ElementaryTypeName",
- "src": "1971:6:5"
- }
- ],
- "id": 2539,
- "name": "VariableDeclaration",
- "src": "1971:19:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "symbol_",
- "overrides": null,
- "scope": 2557,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 2540,
- "name": "ElementaryTypeName",
- "src": "1992:6:5"
- }
- ],
- "id": 2541,
- "name": "VariableDeclaration",
- "src": "1992:21:5"
- }
- ],
- "id": 2542,
- "name": "ParameterList",
- "src": "1970:44:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2543,
- "name": "ParameterList",
- "src": "2022:0:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "string storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2532,
- "type": "string storage ref",
- "value": "_name"
- },
- "id": 2544,
- "name": "Identifier",
- "src": "2032:5:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2539,
- "type": "string memory",
- "value": "name_"
- },
- "id": 2545,
- "name": "Identifier",
- "src": "2040:5:5"
- }
- ],
- "id": 2546,
- "name": "Assignment",
- "src": "2032:13:5"
- }
- ],
- "id": 2547,
- "name": "ExpressionStatement",
- "src": "2032:13:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "string storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2534,
- "type": "string storage ref",
- "value": "_symbol"
- },
- "id": 2548,
- "name": "Identifier",
- "src": "2055:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2541,
- "type": "string memory",
- "value": "symbol_"
- },
- "id": 2549,
- "name": "Identifier",
- "src": "2065:7:5"
- }
- ],
- "id": 2550,
- "name": "Assignment",
- "src": "2055:17:5"
- }
- ],
- "id": 2551,
- "name": "ExpressionStatement",
- "src": "2055:17:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2536,
- "type": "uint8",
- "value": "_decimals"
- },
- "id": 2552,
- "name": "Identifier",
- "src": "2082:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3138",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 18",
- "value": "18"
- },
- "id": 2553,
- "name": "Literal",
- "src": "2094:2:5"
- }
- ],
- "id": 2554,
- "name": "Assignment",
- "src": "2082:14:5"
- }
- ],
- "id": 2555,
- "name": "ExpressionStatement",
- "src": "2082:14:5"
- }
- ],
- "id": 2556,
- "name": "Block",
- "src": "2022:81:5"
- }
- ],
- "id": 2557,
- "name": "FunctionDefinition",
- "src": "1958:145:5"
- },
- {
- "attributes": {
- "functionSelector": "06fdde03",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "name",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the name of the token."
- },
- "id": 2558,
- "name": "StructuredDocumentation",
- "src": "2109:54:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2559,
- "name": "ParameterList",
- "src": "2181:2:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2566,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 2560,
- "name": "ElementaryTypeName",
- "src": "2213:6:5"
- }
- ],
- "id": 2561,
- "name": "VariableDeclaration",
- "src": "2213:13:5"
- }
- ],
- "id": 2562,
- "name": "ParameterList",
- "src": "2212:15:5"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 2562
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2532,
- "type": "string storage ref",
- "value": "_name"
- },
- "id": 2563,
- "name": "Identifier",
- "src": "2245:5:5"
- }
- ],
- "id": 2564,
- "name": "Return",
- "src": "2238:12:5"
- }
- ],
- "id": 2565,
- "name": "Block",
- "src": "2228:29:5"
- }
- ],
- "id": 2566,
- "name": "FunctionDefinition",
- "src": "2168:89:5"
- },
- {
- "attributes": {
- "functionSelector": "95d89b41",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "symbol",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."
- },
- "id": 2567,
- "name": "StructuredDocumentation",
- "src": "2263:102:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2568,
- "name": "ParameterList",
- "src": "2385:2:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2575,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 2569,
- "name": "ElementaryTypeName",
- "src": "2417:6:5"
- }
- ],
- "id": 2570,
- "name": "VariableDeclaration",
- "src": "2417:13:5"
- }
- ],
- "id": 2571,
- "name": "ParameterList",
- "src": "2416:15:5"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 2571
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2534,
- "type": "string storage ref",
- "value": "_symbol"
- },
- "id": 2572,
- "name": "Identifier",
- "src": "2449:7:5"
- }
- ],
- "id": 2573,
- "name": "Return",
- "src": "2442:14:5"
- }
- ],
- "id": 2574,
- "name": "Block",
- "src": "2432:31:5"
- }
- ],
- "id": 2575,
- "name": "FunctionDefinition",
- "src": "2370:93:5"
- },
- {
- "attributes": {
- "functionSelector": "313ce567",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "decimals",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
- },
- "id": 2576,
- "name": "StructuredDocumentation",
- "src": "2469:612:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2577,
- "name": "ParameterList",
- "src": "3103:2:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2584,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 2578,
- "name": "ElementaryTypeName",
- "src": "3135:5:5"
- }
- ],
- "id": 2579,
- "name": "VariableDeclaration",
- "src": "3135:5:5"
- }
- ],
- "id": 2580,
- "name": "ParameterList",
- "src": "3134:7:5"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 2580
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2536,
- "type": "uint8",
- "value": "_decimals"
- },
- "id": 2581,
- "name": "Identifier",
- "src": "3159:9:5"
- }
- ],
- "id": 2582,
- "name": "Return",
- "src": "3152:16:5"
- }
- ],
- "id": 2583,
- "name": "Block",
- "src": "3142:33:5"
- }
- ],
- "id": 2584,
- "name": "FunctionDefinition",
- "src": "3086:89:5"
- },
- {
- "attributes": {
- "baseFunctions": [3017],
- "functionSelector": "18160ddd",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "totalSupply",
- "scope": 3008,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-totalSupply}."
- },
- "id": 2585,
- "name": "StructuredDocumentation",
- "src": "3181:49:5"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 2587,
- "name": "OverrideSpecifier",
- "src": "3278:8:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2586,
- "name": "ParameterList",
- "src": "3255:2:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2594,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2588,
- "name": "ElementaryTypeName",
- "src": "3296:7:5"
- }
- ],
- "id": 2589,
- "name": "VariableDeclaration",
- "src": "3296:7:5"
- }
- ],
- "id": 2590,
- "name": "ParameterList",
- "src": "3295:9:5"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 2590
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2530,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 2591,
- "name": "Identifier",
- "src": "3322:12:5"
- }
- ],
- "id": 2592,
- "name": "Return",
- "src": "3315:19:5"
- }
- ],
- "id": 2593,
- "name": "Block",
- "src": "3305:36:5"
- }
- ],
- "id": 2594,
- "name": "FunctionDefinition",
- "src": "3235:106:5"
- },
- {
- "attributes": {
- "baseFunctions": [3025],
- "functionSelector": "70a08231",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "balanceOf",
- "scope": 3008,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-balanceOf}."
- },
- "id": 2595,
- "name": "StructuredDocumentation",
- "src": "3347:47:5"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 2599,
- "name": "OverrideSpecifier",
- "src": "3455:8:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 2608,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2596,
- "name": "ElementaryTypeName",
- "src": "3418:7:5"
- }
- ],
- "id": 2597,
- "name": "VariableDeclaration",
- "src": "3418:15:5"
- }
- ],
- "id": 2598,
- "name": "ParameterList",
- "src": "3417:17:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2608,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2600,
- "name": "ElementaryTypeName",
- "src": "3473:7:5"
- }
- ],
- "id": 2601,
- "name": "VariableDeclaration",
- "src": "3473:7:5"
- }
- ],
- "id": 2602,
- "name": "ParameterList",
- "src": "3472:9:5"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 2602
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2522,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2603,
- "name": "Identifier",
- "src": "3499:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2597,
- "type": "address",
- "value": "account"
- },
- "id": 2604,
- "name": "Identifier",
- "src": "3509:7:5"
- }
- ],
- "id": 2605,
- "name": "IndexAccess",
- "src": "3499:18:5"
- }
- ],
- "id": 2606,
- "name": "Return",
- "src": "3492:25:5"
- }
- ],
- "id": 2607,
- "name": "Block",
- "src": "3482:42:5"
- }
- ],
- "id": 2608,
- "name": "FunctionDefinition",
- "src": "3399:125:5"
- },
- {
- "attributes": {
- "baseFunctions": [3035],
- "functionSelector": "a9059cbb",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "transfer",
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."
- },
- "id": 2609,
- "name": "StructuredDocumentation",
- "src": "3530:192:5"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 2615,
- "name": "OverrideSpecifier",
- "src": "3795:8:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 2629,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2610,
- "name": "ElementaryTypeName",
- "src": "3745:7:5"
- }
- ],
- "id": 2611,
- "name": "VariableDeclaration",
- "src": "3745:17:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2629,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2612,
- "name": "ElementaryTypeName",
- "src": "3764:7:5"
- }
- ],
- "id": 2613,
- "name": "VariableDeclaration",
- "src": "3764:14:5"
- }
- ],
- "id": 2614,
- "name": "ParameterList",
- "src": "3744:35:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2629,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2616,
- "name": "ElementaryTypeName",
- "src": "3813:4:5"
- }
- ],
- "id": 2617,
- "name": "VariableDeclaration",
- "src": "3813:4:5"
- }
- ],
- "id": 2618,
- "name": "ParameterList",
- "src": "3812:6:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2829,
- "type": "function (address,address,uint256)",
- "value": "_transfer"
- },
- "id": 2619,
- "name": "Identifier",
- "src": "3829:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 2620,
- "name": "Identifier",
- "src": "3839:10:5"
- }
- ],
- "id": 2621,
- "name": "FunctionCall",
- "src": "3839:12:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2611,
- "type": "address",
- "value": "recipient"
- },
- "id": 2622,
- "name": "Identifier",
- "src": "3853:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2613,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2623,
- "name": "Identifier",
- "src": "3864:6:5"
- }
- ],
- "id": 2624,
- "name": "FunctionCall",
- "src": "3829:42:5"
- }
- ],
- "id": 2625,
- "name": "ExpressionStatement",
- "src": "3829:42:5"
- },
- {
- "attributes": {
- "functionReturnParameters": 2618
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2626,
- "name": "Literal",
- "src": "3888:4:5"
- }
- ],
- "id": 2627,
- "name": "Return",
- "src": "3881:11:5"
- }
- ],
- "id": 2628,
- "name": "Block",
- "src": "3819:80:5"
- }
- ],
- "id": 2629,
- "name": "FunctionDefinition",
- "src": "3727:172:5"
- },
- {
- "attributes": {
- "baseFunctions": [3045],
- "functionSelector": "dd62ed3e",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "allowance",
- "scope": 3008,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-allowance}."
- },
- "id": 2630,
- "name": "StructuredDocumentation",
- "src": "3905:47:5"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 2636,
- "name": "OverrideSpecifier",
- "src": "4028:8:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "owner",
- "overrides": null,
- "scope": 2647,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2631,
- "name": "ElementaryTypeName",
- "src": "3976:7:5"
- }
- ],
- "id": 2632,
- "name": "VariableDeclaration",
- "src": "3976:13:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 2647,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2633,
- "name": "ElementaryTypeName",
- "src": "3991:7:5"
- }
- ],
- "id": 2634,
- "name": "VariableDeclaration",
- "src": "3991:15:5"
- }
- ],
- "id": 2635,
- "name": "ParameterList",
- "src": "3975:32:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2647,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2637,
- "name": "ElementaryTypeName",
- "src": "4046:7:5"
- }
- ],
- "id": 2638,
- "name": "VariableDeclaration",
- "src": "4046:7:5"
- }
- ],
- "id": 2639,
- "name": "ParameterList",
- "src": "4045:9:5"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 2639
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2528,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 2640,
- "name": "Identifier",
- "src": "4072:11:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2632,
- "type": "address",
- "value": "owner"
- },
- "id": 2641,
- "name": "Identifier",
- "src": "4084:5:5"
- }
- ],
- "id": 2642,
- "name": "IndexAccess",
- "src": "4072:18:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2634,
- "type": "address",
- "value": "spender"
- },
- "id": 2643,
- "name": "Identifier",
- "src": "4091:7:5"
- }
- ],
- "id": 2644,
- "name": "IndexAccess",
- "src": "4072:27:5"
- }
- ],
- "id": 2645,
- "name": "Return",
- "src": "4065:34:5"
- }
- ],
- "id": 2646,
- "name": "Block",
- "src": "4055:51:5"
- }
- ],
- "id": 2647,
- "name": "FunctionDefinition",
- "src": "3957:149:5"
- },
- {
- "attributes": {
- "baseFunctions": [3055],
- "functionSelector": "095ea7b3",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "approve",
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."
- },
- "id": 2648,
- "name": "StructuredDocumentation",
- "src": "4112:127:5"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 2654,
- "name": "OverrideSpecifier",
- "src": "4309:8:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 2668,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2649,
- "name": "ElementaryTypeName",
- "src": "4261:7:5"
- }
- ],
- "id": 2650,
- "name": "VariableDeclaration",
- "src": "4261:15:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2668,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2651,
- "name": "ElementaryTypeName",
- "src": "4278:7:5"
- }
- ],
- "id": 2652,
- "name": "VariableDeclaration",
- "src": "4278:14:5"
- }
- ],
- "id": 2653,
- "name": "ParameterList",
- "src": "4260:33:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2668,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2655,
- "name": "ElementaryTypeName",
- "src": "4327:4:5"
- }
- ],
- "id": 2656,
- "name": "VariableDeclaration",
- "src": "4327:4:5"
- }
- ],
- "id": 2657,
- "name": "ParameterList",
- "src": "4326:6:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2985,
- "type": "function (address,address,uint256)",
- "value": "_approve"
- },
- "id": 2658,
- "name": "Identifier",
- "src": "4343:8:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 2659,
- "name": "Identifier",
- "src": "4352:10:5"
- }
- ],
- "id": 2660,
- "name": "FunctionCall",
- "src": "4352:12:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2650,
- "type": "address",
- "value": "spender"
- },
- "id": 2661,
- "name": "Identifier",
- "src": "4366:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2652,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2662,
- "name": "Identifier",
- "src": "4375:6:5"
- }
- ],
- "id": 2663,
- "name": "FunctionCall",
- "src": "4343:39:5"
- }
- ],
- "id": 2664,
- "name": "ExpressionStatement",
- "src": "4343:39:5"
- },
- {
- "attributes": {
- "functionReturnParameters": 2657
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2665,
- "name": "Literal",
- "src": "4399:4:5"
- }
- ],
- "id": 2666,
- "name": "Return",
- "src": "4392:11:5"
- }
- ],
- "id": 2667,
- "name": "Block",
- "src": "4333:77:5"
- }
- ],
- "id": 2668,
- "name": "FunctionDefinition",
- "src": "4244:166:5"
- },
- {
- "attributes": {
- "baseFunctions": [3067],
- "functionSelector": "23b872dd",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "transferFrom",
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`."
- },
- "id": 2669,
- "name": "StructuredDocumentation",
- "src": "4416:456:5"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 2677,
- "name": "OverrideSpecifier",
- "src": "4965:8:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "sender",
- "overrides": null,
- "scope": 2706,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2670,
- "name": "ElementaryTypeName",
- "src": "4899:7:5"
- }
- ],
- "id": 2671,
- "name": "VariableDeclaration",
- "src": "4899:14:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 2706,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2672,
- "name": "ElementaryTypeName",
- "src": "4915:7:5"
- }
- ],
- "id": 2673,
- "name": "VariableDeclaration",
- "src": "4915:17:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2706,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2674,
- "name": "ElementaryTypeName",
- "src": "4934:7:5"
- }
- ],
- "id": 2675,
- "name": "VariableDeclaration",
- "src": "4934:14:5"
- }
- ],
- "id": 2676,
- "name": "ParameterList",
- "src": "4898:51:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2706,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2678,
- "name": "ElementaryTypeName",
- "src": "4983:4:5"
- }
- ],
- "id": 2679,
- "name": "VariableDeclaration",
- "src": "4983:4:5"
- }
- ],
- "id": 2680,
- "name": "ParameterList",
- "src": "4982:6:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2829,
- "type": "function (address,address,uint256)",
- "value": "_transfer"
- },
- "id": 2681,
- "name": "Identifier",
- "src": "4999:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2671,
- "type": "address",
- "value": "sender"
- },
- "id": 2682,
- "name": "Identifier",
- "src": "5009:6:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2673,
- "type": "address",
- "value": "recipient"
- },
- "id": 2683,
- "name": "Identifier",
- "src": "5017:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2675,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2684,
- "name": "Identifier",
- "src": "5028:6:5"
- }
- ],
- "id": 2685,
- "name": "FunctionCall",
- "src": "4999:36:5"
- }
- ],
- "id": 2686,
- "name": "ExpressionStatement",
- "src": "4999:36:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2985,
- "type": "function (address,address,uint256)",
- "value": "_approve"
- },
- "id": 2687,
- "name": "Identifier",
- "src": "5045:8:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2671,
- "type": "address",
- "value": "sender"
- },
- "id": 2688,
- "name": "Identifier",
- "src": "5054:6:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 2689,
- "name": "Identifier",
- "src": "5062:10:5"
- }
- ],
- "id": 2690,
- "name": "FunctionCall",
- "src": "5062:12:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
- "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2456,
- "type": "function (uint256,uint256,string memory) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2528,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 2691,
- "name": "Identifier",
- "src": "5076:11:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2671,
- "type": "address",
- "value": "sender"
- },
- "id": 2692,
- "name": "Identifier",
- "src": "5088:6:5"
- }
- ],
- "id": 2693,
- "name": "IndexAccess",
- "src": "5076:19:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 2694,
- "name": "Identifier",
- "src": "5096:10:5"
- }
- ],
- "id": 2695,
- "name": "FunctionCall",
- "src": "5096:12:5"
- }
- ],
- "id": 2696,
- "name": "IndexAccess",
- "src": "5076:33:5"
- }
- ],
- "id": 2697,
- "name": "MemberAccess",
- "src": "5076:37:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2675,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2698,
- "name": "Identifier",
- "src": "5114:6:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: transfer amount exceeds allowance\"",
- "value": "ERC20: transfer amount exceeds allowance"
- },
- "id": 2699,
- "name": "Literal",
- "src": "5122:42:5"
- }
- ],
- "id": 2700,
- "name": "FunctionCall",
- "src": "5076:89:5"
- }
- ],
- "id": 2701,
- "name": "FunctionCall",
- "src": "5045:121:5"
- }
- ],
- "id": 2702,
- "name": "ExpressionStatement",
- "src": "5045:121:5"
- },
- {
- "attributes": {
- "functionReturnParameters": 2680
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2703,
- "name": "Literal",
- "src": "5183:4:5"
- }
- ],
- "id": 2704,
- "name": "Return",
- "src": "5176:11:5"
- }
- ],
- "id": 2705,
- "name": "Block",
- "src": "4989:205:5"
- }
- ],
- "id": 2706,
- "name": "FunctionDefinition",
- "src": "4877:317:5"
- },
- {
- "attributes": {
- "functionSelector": "39509351",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "increaseAllowance",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."
- },
- "id": 2707,
- "name": "StructuredDocumentation",
- "src": "5200:384:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 2734,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2708,
- "name": "ElementaryTypeName",
- "src": "5616:7:5"
- }
- ],
- "id": 2709,
- "name": "VariableDeclaration",
- "src": "5616:15:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "addedValue",
- "overrides": null,
- "scope": 2734,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2710,
- "name": "ElementaryTypeName",
- "src": "5633:7:5"
- }
- ],
- "id": 2711,
- "name": "VariableDeclaration",
- "src": "5633:18:5"
- }
- ],
- "id": 2712,
- "name": "ParameterList",
- "src": "5615:37:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2734,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2713,
- "name": "ElementaryTypeName",
- "src": "5677:4:5"
- }
- ],
- "id": 2714,
- "name": "VariableDeclaration",
- "src": "5677:4:5"
- }
- ],
- "id": 2715,
- "name": "ParameterList",
- "src": "5676:6:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2985,
- "type": "function (address,address,uint256)",
- "value": "_approve"
- },
- "id": 2716,
- "name": "Identifier",
- "src": "5693:8:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 2717,
- "name": "Identifier",
- "src": "5702:10:5"
- }
- ],
- "id": 2718,
- "name": "FunctionCall",
- "src": "5702:12:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2709,
- "type": "address",
- "value": "spender"
- },
- "id": 2719,
- "name": "Identifier",
- "src": "5716:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 2332,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2528,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 2720,
- "name": "Identifier",
- "src": "5725:11:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 2721,
- "name": "Identifier",
- "src": "5737:10:5"
- }
- ],
- "id": 2722,
- "name": "FunctionCall",
- "src": "5737:12:5"
- }
- ],
- "id": 2723,
- "name": "IndexAccess",
- "src": "5725:25:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2709,
- "type": "address",
- "value": "spender"
- },
- "id": 2724,
- "name": "Identifier",
- "src": "5751:7:5"
- }
- ],
- "id": 2725,
- "name": "IndexAccess",
- "src": "5725:34:5"
- }
- ],
- "id": 2726,
- "name": "MemberAccess",
- "src": "5725:38:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2711,
- "type": "uint256",
- "value": "addedValue"
- },
- "id": 2727,
- "name": "Identifier",
- "src": "5764:10:5"
- }
- ],
- "id": 2728,
- "name": "FunctionCall",
- "src": "5725:50:5"
- }
- ],
- "id": 2729,
- "name": "FunctionCall",
- "src": "5693:83:5"
- }
- ],
- "id": 2730,
- "name": "ExpressionStatement",
- "src": "5693:83:5"
- },
- {
- "attributes": {
- "functionReturnParameters": 2715
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2731,
- "name": "Literal",
- "src": "5793:4:5"
- }
- ],
- "id": 2732,
- "name": "Return",
- "src": "5786:11:5"
- }
- ],
- "id": 2733,
- "name": "Block",
- "src": "5683:121:5"
- }
- ],
- "id": 2734,
- "name": "FunctionDefinition",
- "src": "5589:215:5"
- },
- {
- "attributes": {
- "functionSelector": "a457c2d7",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "decreaseAllowance",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."
- },
- "id": 2735,
- "name": "StructuredDocumentation",
- "src": "5810:476:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 2763,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2736,
- "name": "ElementaryTypeName",
- "src": "6318:7:5"
- }
- ],
- "id": 2737,
- "name": "VariableDeclaration",
- "src": "6318:15:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "subtractedValue",
- "overrides": null,
- "scope": 2763,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2738,
- "name": "ElementaryTypeName",
- "src": "6335:7:5"
- }
- ],
- "id": 2739,
- "name": "VariableDeclaration",
- "src": "6335:23:5"
- }
- ],
- "id": 2740,
- "name": "ParameterList",
- "src": "6317:42:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2763,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2741,
- "name": "ElementaryTypeName",
- "src": "6384:4:5"
- }
- ],
- "id": 2742,
- "name": "VariableDeclaration",
- "src": "6384:4:5"
- }
- ],
- "id": 2743,
- "name": "ParameterList",
- "src": "6383:6:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2985,
- "type": "function (address,address,uint256)",
- "value": "_approve"
- },
- "id": 2744,
- "name": "Identifier",
- "src": "6400:8:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 2745,
- "name": "Identifier",
- "src": "6409:10:5"
- }
- ],
- "id": 2746,
- "name": "FunctionCall",
- "src": "6409:12:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2737,
- "type": "address",
- "value": "spender"
- },
- "id": 2747,
- "name": "Identifier",
- "src": "6423:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
- "typeString": "literal_string \"ERC20: decreased allowance below zero\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2456,
- "type": "function (uint256,uint256,string memory) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2528,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 2748,
- "name": "Identifier",
- "src": "6432:11:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 2749,
- "name": "Identifier",
- "src": "6444:10:5"
- }
- ],
- "id": 2750,
- "name": "FunctionCall",
- "src": "6444:12:5"
- }
- ],
- "id": 2751,
- "name": "IndexAccess",
- "src": "6432:25:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2737,
- "type": "address",
- "value": "spender"
- },
- "id": 2752,
- "name": "Identifier",
- "src": "6458:7:5"
- }
- ],
- "id": 2753,
- "name": "IndexAccess",
- "src": "6432:34:5"
- }
- ],
- "id": 2754,
- "name": "MemberAccess",
- "src": "6432:38:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2739,
- "type": "uint256",
- "value": "subtractedValue"
- },
- "id": 2755,
- "name": "Identifier",
- "src": "6471:15:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: decreased allowance below zero\"",
- "value": "ERC20: decreased allowance below zero"
- },
- "id": 2756,
- "name": "Literal",
- "src": "6488:39:5"
- }
- ],
- "id": 2757,
- "name": "FunctionCall",
- "src": "6432:96:5"
- }
- ],
- "id": 2758,
- "name": "FunctionCall",
- "src": "6400:129:5"
- }
- ],
- "id": 2759,
- "name": "ExpressionStatement",
- "src": "6400:129:5"
- },
- {
- "attributes": {
- "functionReturnParameters": 2743
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2760,
- "name": "Literal",
- "src": "6546:4:5"
- }
- ],
- "id": 2761,
- "name": "Return",
- "src": "6539:11:5"
- }
- ],
- "id": 2762,
- "name": "Block",
- "src": "6390:167:5"
- }
- ],
- "id": 2763,
- "name": "FunctionDefinition",
- "src": "6291:266:5"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_transfer",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."
- },
- "id": 2764,
- "name": "StructuredDocumentation",
- "src": "6563:463:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "sender",
- "overrides": null,
- "scope": 2829,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2765,
- "name": "ElementaryTypeName",
- "src": "7050:7:5"
- }
- ],
- "id": 2766,
- "name": "VariableDeclaration",
- "src": "7050:14:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 2829,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2767,
- "name": "ElementaryTypeName",
- "src": "7066:7:5"
- }
- ],
- "id": 2768,
- "name": "VariableDeclaration",
- "src": "7066:17:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2829,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2769,
- "name": "ElementaryTypeName",
- "src": "7085:7:5"
- }
- ],
- "id": 2770,
- "name": "VariableDeclaration",
- "src": "7085:14:5"
- }
- ],
- "id": 2771,
- "name": "ParameterList",
- "src": "7049:51:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2772,
- "name": "ParameterList",
- "src": "7118:0:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea",
- "typeString": "literal_string \"ERC20: transfer from the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2773,
- "name": "Identifier",
- "src": "7128:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2766,
- "type": "address",
- "value": "sender"
- },
- "id": 2774,
- "name": "Identifier",
- "src": "7136:6:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2775,
- "name": "ElementaryTypeName",
- "src": "7146:7:5"
- }
- ],
- "id": 2776,
- "name": "ElementaryTypeNameExpression",
- "src": "7146:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2777,
- "name": "Literal",
- "src": "7154:1:5"
- }
- ],
- "id": 2778,
- "name": "FunctionCall",
- "src": "7146:10:5"
- }
- ],
- "id": 2779,
- "name": "BinaryOperation",
- "src": "7136:20:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: transfer from the zero address\"",
- "value": "ERC20: transfer from the zero address"
- },
- "id": 2780,
- "name": "Literal",
- "src": "7158:39:5"
- }
- ],
- "id": 2781,
- "name": "FunctionCall",
- "src": "7128:70:5"
- }
- ],
- "id": 2782,
- "name": "ExpressionStatement",
- "src": "7128:70:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f",
- "typeString": "literal_string \"ERC20: transfer to the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2783,
- "name": "Identifier",
- "src": "7208:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2768,
- "type": "address",
- "value": "recipient"
- },
- "id": 2784,
- "name": "Identifier",
- "src": "7216:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2785,
- "name": "ElementaryTypeName",
- "src": "7229:7:5"
- }
- ],
- "id": 2786,
- "name": "ElementaryTypeNameExpression",
- "src": "7229:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2787,
- "name": "Literal",
- "src": "7237:1:5"
- }
- ],
- "id": 2788,
- "name": "FunctionCall",
- "src": "7229:10:5"
- }
- ],
- "id": 2789,
- "name": "BinaryOperation",
- "src": "7216:23:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: transfer to the zero address\"",
- "value": "ERC20: transfer to the zero address"
- },
- "id": 2790,
- "name": "Literal",
- "src": "7241:37:5"
- }
- ],
- "id": 2791,
- "name": "FunctionCall",
- "src": "7208:71:5"
- }
- ],
- "id": 2792,
- "name": "ExpressionStatement",
- "src": "7208:71:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3007,
- "type": "function (address,address,uint256)",
- "value": "_beforeTokenTransfer"
- },
- "id": 2793,
- "name": "Identifier",
- "src": "7290:20:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2766,
- "type": "address",
- "value": "sender"
- },
- "id": 2794,
- "name": "Identifier",
- "src": "7311:6:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2768,
- "type": "address",
- "value": "recipient"
- },
- "id": 2795,
- "name": "Identifier",
- "src": "7319:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2770,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2796,
- "name": "Identifier",
- "src": "7330:6:5"
- }
- ],
- "id": 2797,
- "name": "FunctionCall",
- "src": "7290:47:5"
- }
- ],
- "id": 2798,
- "name": "ExpressionStatement",
- "src": "7290:47:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2522,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2799,
- "name": "Identifier",
- "src": "7348:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2766,
- "type": "address",
- "value": "sender"
- },
- "id": 2800,
- "name": "Identifier",
- "src": "7358:6:5"
- }
- ],
- "id": 2801,
- "name": "IndexAccess",
- "src": "7348:17:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6",
- "typeString": "literal_string \"ERC20: transfer amount exceeds balance\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2456,
- "type": "function (uint256,uint256,string memory) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2522,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2802,
- "name": "Identifier",
- "src": "7368:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2766,
- "type": "address",
- "value": "sender"
- },
- "id": 2803,
- "name": "Identifier",
- "src": "7378:6:5"
- }
- ],
- "id": 2804,
- "name": "IndexAccess",
- "src": "7368:17:5"
- }
- ],
- "id": 2805,
- "name": "MemberAccess",
- "src": "7368:21:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2770,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2806,
- "name": "Identifier",
- "src": "7390:6:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: transfer amount exceeds balance\"",
- "value": "ERC20: transfer amount exceeds balance"
- },
- "id": 2807,
- "name": "Literal",
- "src": "7398:40:5"
- }
- ],
- "id": 2808,
- "name": "FunctionCall",
- "src": "7368:71:5"
- }
- ],
- "id": 2809,
- "name": "Assignment",
- "src": "7348:91:5"
- }
- ],
- "id": 2810,
- "name": "ExpressionStatement",
- "src": "7348:91:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2522,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2811,
- "name": "Identifier",
- "src": "7449:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2768,
- "type": "address",
- "value": "recipient"
- },
- "id": 2812,
- "name": "Identifier",
- "src": "7459:9:5"
- }
- ],
- "id": 2813,
- "name": "IndexAccess",
- "src": "7449:20:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 2332,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2522,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2814,
- "name": "Identifier",
- "src": "7472:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2768,
- "type": "address",
- "value": "recipient"
- },
- "id": 2815,
- "name": "Identifier",
- "src": "7482:9:5"
- }
- ],
- "id": 2816,
- "name": "IndexAccess",
- "src": "7472:20:5"
- }
- ],
- "id": 2817,
- "name": "MemberAccess",
- "src": "7472:24:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2770,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2818,
- "name": "Identifier",
- "src": "7497:6:5"
- }
- ],
- "id": 2819,
- "name": "FunctionCall",
- "src": "7472:32:5"
- }
- ],
- "id": 2820,
- "name": "Assignment",
- "src": "7449:55:5"
- }
- ],
- "id": 2821,
- "name": "ExpressionStatement",
- "src": "7449:55:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3076,
- "type": "function (address,address,uint256)",
- "value": "Transfer"
- },
- "id": 2822,
- "name": "Identifier",
- "src": "7519:8:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2766,
- "type": "address",
- "value": "sender"
- },
- "id": 2823,
- "name": "Identifier",
- "src": "7528:6:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2768,
- "type": "address",
- "value": "recipient"
- },
- "id": 2824,
- "name": "Identifier",
- "src": "7536:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2770,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2825,
- "name": "Identifier",
- "src": "7547:6:5"
- }
- ],
- "id": 2826,
- "name": "FunctionCall",
- "src": "7519:35:5"
- }
- ],
- "id": 2827,
- "name": "EmitStatement",
- "src": "7514:40:5"
- }
- ],
- "id": 2828,
- "name": "Block",
- "src": "7118:443:5"
- }
- ],
- "id": 2829,
- "name": "FunctionDefinition",
- "src": "7031:530:5"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_mint",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `to` cannot be the zero address."
- },
- "id": 2830,
- "name": "StructuredDocumentation",
- "src": "7567:260:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 2884,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2831,
- "name": "ElementaryTypeName",
- "src": "7847:7:5"
- }
- ],
- "id": 2832,
- "name": "VariableDeclaration",
- "src": "7847:15:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2884,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2833,
- "name": "ElementaryTypeName",
- "src": "7864:7:5"
- }
- ],
- "id": 2834,
- "name": "VariableDeclaration",
- "src": "7864:14:5"
- }
- ],
- "id": 2835,
- "name": "ParameterList",
- "src": "7846:33:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2836,
- "name": "ParameterList",
- "src": "7897:0:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e",
- "typeString": "literal_string \"ERC20: mint to the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2837,
- "name": "Identifier",
- "src": "7907:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2832,
- "type": "address",
- "value": "account"
- },
- "id": 2838,
- "name": "Identifier",
- "src": "7915:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2839,
- "name": "ElementaryTypeName",
- "src": "7926:7:5"
- }
- ],
- "id": 2840,
- "name": "ElementaryTypeNameExpression",
- "src": "7926:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2841,
- "name": "Literal",
- "src": "7934:1:5"
- }
- ],
- "id": 2842,
- "name": "FunctionCall",
- "src": "7926:10:5"
- }
- ],
- "id": 2843,
- "name": "BinaryOperation",
- "src": "7915:21:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: mint to the zero address\"",
- "value": "ERC20: mint to the zero address"
- },
- "id": 2844,
- "name": "Literal",
- "src": "7938:33:5"
- }
- ],
- "id": 2845,
- "name": "FunctionCall",
- "src": "7907:65:5"
- }
- ],
- "id": 2846,
- "name": "ExpressionStatement",
- "src": "7907:65:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3007,
- "type": "function (address,address,uint256)",
- "value": "_beforeTokenTransfer"
- },
- "id": 2847,
- "name": "Identifier",
- "src": "7983:20:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2848,
- "name": "ElementaryTypeName",
- "src": "8004:7:5"
- }
- ],
- "id": 2849,
- "name": "ElementaryTypeNameExpression",
- "src": "8004:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2850,
- "name": "Literal",
- "src": "8012:1:5"
- }
- ],
- "id": 2851,
- "name": "FunctionCall",
- "src": "8004:10:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2832,
- "type": "address",
- "value": "account"
- },
- "id": 2852,
- "name": "Identifier",
- "src": "8016:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2834,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2853,
- "name": "Identifier",
- "src": "8025:6:5"
- }
- ],
- "id": 2854,
- "name": "FunctionCall",
- "src": "7983:49:5"
- }
- ],
- "id": 2855,
- "name": "ExpressionStatement",
- "src": "7983:49:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2530,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 2856,
- "name": "Identifier",
- "src": "8043:12:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 2332,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2530,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 2857,
- "name": "Identifier",
- "src": "8058:12:5"
- }
- ],
- "id": 2858,
- "name": "MemberAccess",
- "src": "8058:16:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2834,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2859,
- "name": "Identifier",
- "src": "8075:6:5"
- }
- ],
- "id": 2860,
- "name": "FunctionCall",
- "src": "8058:24:5"
- }
- ],
- "id": 2861,
- "name": "Assignment",
- "src": "8043:39:5"
- }
- ],
- "id": 2862,
- "name": "ExpressionStatement",
- "src": "8043:39:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2522,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2863,
- "name": "Identifier",
- "src": "8092:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2832,
- "type": "address",
- "value": "account"
- },
- "id": 2864,
- "name": "Identifier",
- "src": "8102:7:5"
- }
- ],
- "id": 2865,
- "name": "IndexAccess",
- "src": "8092:18:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 2332,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2522,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2866,
- "name": "Identifier",
- "src": "8113:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2832,
- "type": "address",
- "value": "account"
- },
- "id": 2867,
- "name": "Identifier",
- "src": "8123:7:5"
- }
- ],
- "id": 2868,
- "name": "IndexAccess",
- "src": "8113:18:5"
- }
- ],
- "id": 2869,
- "name": "MemberAccess",
- "src": "8113:22:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2834,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2870,
- "name": "Identifier",
- "src": "8136:6:5"
- }
- ],
- "id": 2871,
- "name": "FunctionCall",
- "src": "8113:30:5"
- }
- ],
- "id": 2872,
- "name": "Assignment",
- "src": "8092:51:5"
- }
- ],
- "id": 2873,
- "name": "ExpressionStatement",
- "src": "8092:51:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3076,
- "type": "function (address,address,uint256)",
- "value": "Transfer"
- },
- "id": 2874,
- "name": "Identifier",
- "src": "8158:8:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2875,
- "name": "ElementaryTypeName",
- "src": "8167:7:5"
- }
- ],
- "id": 2876,
- "name": "ElementaryTypeNameExpression",
- "src": "8167:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2877,
- "name": "Literal",
- "src": "8175:1:5"
- }
- ],
- "id": 2878,
- "name": "FunctionCall",
- "src": "8167:10:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2832,
- "type": "address",
- "value": "account"
- },
- "id": 2879,
- "name": "Identifier",
- "src": "8179:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2834,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2880,
- "name": "Identifier",
- "src": "8188:6:5"
- }
- ],
- "id": 2881,
- "name": "FunctionCall",
- "src": "8158:37:5"
- }
- ],
- "id": 2882,
- "name": "EmitStatement",
- "src": "8153:42:5"
- }
- ],
- "id": 2883,
- "name": "Block",
- "src": "7897:305:5"
- }
- ],
- "id": 2884,
- "name": "FunctionDefinition",
- "src": "7832:370:5"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_burn",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."
- },
- "id": 2885,
- "name": "StructuredDocumentation",
- "src": "8208:309:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 2940,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2886,
- "name": "ElementaryTypeName",
- "src": "8537:7:5"
- }
- ],
- "id": 2887,
- "name": "VariableDeclaration",
- "src": "8537:15:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2940,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2888,
- "name": "ElementaryTypeName",
- "src": "8554:7:5"
- }
- ],
- "id": 2889,
- "name": "VariableDeclaration",
- "src": "8554:14:5"
- }
- ],
- "id": 2890,
- "name": "ParameterList",
- "src": "8536:33:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2891,
- "name": "ParameterList",
- "src": "8587:0:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f",
- "typeString": "literal_string \"ERC20: burn from the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2892,
- "name": "Identifier",
- "src": "8597:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2887,
- "type": "address",
- "value": "account"
- },
- "id": 2893,
- "name": "Identifier",
- "src": "8605:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2894,
- "name": "ElementaryTypeName",
- "src": "8616:7:5"
- }
- ],
- "id": 2895,
- "name": "ElementaryTypeNameExpression",
- "src": "8616:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2896,
- "name": "Literal",
- "src": "8624:1:5"
- }
- ],
- "id": 2897,
- "name": "FunctionCall",
- "src": "8616:10:5"
- }
- ],
- "id": 2898,
- "name": "BinaryOperation",
- "src": "8605:21:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: burn from the zero address\"",
- "value": "ERC20: burn from the zero address"
- },
- "id": 2899,
- "name": "Literal",
- "src": "8628:35:5"
- }
- ],
- "id": 2900,
- "name": "FunctionCall",
- "src": "8597:67:5"
- }
- ],
- "id": 2901,
- "name": "ExpressionStatement",
- "src": "8597:67:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3007,
- "type": "function (address,address,uint256)",
- "value": "_beforeTokenTransfer"
- },
- "id": 2902,
- "name": "Identifier",
- "src": "8675:20:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2887,
- "type": "address",
- "value": "account"
- },
- "id": 2903,
- "name": "Identifier",
- "src": "8696:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2904,
- "name": "ElementaryTypeName",
- "src": "8705:7:5"
- }
- ],
- "id": 2905,
- "name": "ElementaryTypeNameExpression",
- "src": "8705:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2906,
- "name": "Literal",
- "src": "8713:1:5"
- }
- ],
- "id": 2907,
- "name": "FunctionCall",
- "src": "8705:10:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2889,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2908,
- "name": "Identifier",
- "src": "8717:6:5"
- }
- ],
- "id": 2909,
- "name": "FunctionCall",
- "src": "8675:49:5"
- }
- ],
- "id": 2910,
- "name": "ExpressionStatement",
- "src": "8675:49:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2522,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2911,
- "name": "Identifier",
- "src": "8735:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2887,
- "type": "address",
- "value": "account"
- },
- "id": 2912,
- "name": "Identifier",
- "src": "8745:7:5"
- }
- ],
- "id": 2913,
- "name": "IndexAccess",
- "src": "8735:18:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd",
- "typeString": "literal_string \"ERC20: burn amount exceeds balance\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2456,
- "type": "function (uint256,uint256,string memory) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2522,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2914,
- "name": "Identifier",
- "src": "8756:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2887,
- "type": "address",
- "value": "account"
- },
- "id": 2915,
- "name": "Identifier",
- "src": "8766:7:5"
- }
- ],
- "id": 2916,
- "name": "IndexAccess",
- "src": "8756:18:5"
- }
- ],
- "id": 2917,
- "name": "MemberAccess",
- "src": "8756:22:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2889,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2918,
- "name": "Identifier",
- "src": "8779:6:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: burn amount exceeds balance\"",
- "value": "ERC20: burn amount exceeds balance"
- },
- "id": 2919,
- "name": "Literal",
- "src": "8787:36:5"
- }
- ],
- "id": 2920,
- "name": "FunctionCall",
- "src": "8756:68:5"
- }
- ],
- "id": 2921,
- "name": "Assignment",
- "src": "8735:89:5"
- }
- ],
- "id": 2922,
- "name": "ExpressionStatement",
- "src": "8735:89:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2530,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 2923,
- "name": "Identifier",
- "src": "8834:12:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2354,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2530,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 2924,
- "name": "Identifier",
- "src": "8849:12:5"
- }
- ],
- "id": 2925,
- "name": "MemberAccess",
- "src": "8849:16:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2889,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2926,
- "name": "Identifier",
- "src": "8866:6:5"
- }
- ],
- "id": 2927,
- "name": "FunctionCall",
- "src": "8849:24:5"
- }
- ],
- "id": 2928,
- "name": "Assignment",
- "src": "8834:39:5"
- }
- ],
- "id": 2929,
- "name": "ExpressionStatement",
- "src": "8834:39:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3076,
- "type": "function (address,address,uint256)",
- "value": "Transfer"
- },
- "id": 2930,
- "name": "Identifier",
- "src": "8888:8:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2887,
- "type": "address",
- "value": "account"
- },
- "id": 2931,
- "name": "Identifier",
- "src": "8897:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2932,
- "name": "ElementaryTypeName",
- "src": "8906:7:5"
- }
- ],
- "id": 2933,
- "name": "ElementaryTypeNameExpression",
- "src": "8906:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2934,
- "name": "Literal",
- "src": "8914:1:5"
- }
- ],
- "id": 2935,
- "name": "FunctionCall",
- "src": "8906:10:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2889,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2936,
- "name": "Identifier",
- "src": "8918:6:5"
- }
- ],
- "id": 2937,
- "name": "FunctionCall",
- "src": "8888:37:5"
- }
- ],
- "id": 2938,
- "name": "EmitStatement",
- "src": "8883:42:5"
- }
- ],
- "id": 2939,
- "name": "Block",
- "src": "8587:345:5"
- }
- ],
- "id": 2940,
- "name": "FunctionDefinition",
- "src": "8522:410:5"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_approve",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."
- },
- "id": 2941,
- "name": "StructuredDocumentation",
- "src": "8938:412:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "owner",
- "overrides": null,
- "scope": 2985,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2942,
- "name": "ElementaryTypeName",
- "src": "9373:7:5"
- }
- ],
- "id": 2943,
- "name": "VariableDeclaration",
- "src": "9373:13:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 2985,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2944,
- "name": "ElementaryTypeName",
- "src": "9388:7:5"
- }
- ],
- "id": 2945,
- "name": "VariableDeclaration",
- "src": "9388:15:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2985,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2946,
- "name": "ElementaryTypeName",
- "src": "9405:7:5"
- }
- ],
- "id": 2947,
- "name": "VariableDeclaration",
- "src": "9405:14:5"
- }
- ],
- "id": 2948,
- "name": "ParameterList",
- "src": "9372:48:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2949,
- "name": "ParameterList",
- "src": "9438:0:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208",
- "typeString": "literal_string \"ERC20: approve from the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2950,
- "name": "Identifier",
- "src": "9448:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2943,
- "type": "address",
- "value": "owner"
- },
- "id": 2951,
- "name": "Identifier",
- "src": "9456:5:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2952,
- "name": "ElementaryTypeName",
- "src": "9465:7:5"
- }
- ],
- "id": 2953,
- "name": "ElementaryTypeNameExpression",
- "src": "9465:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2954,
- "name": "Literal",
- "src": "9473:1:5"
- }
- ],
- "id": 2955,
- "name": "FunctionCall",
- "src": "9465:10:5"
- }
- ],
- "id": 2956,
- "name": "BinaryOperation",
- "src": "9456:19:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: approve from the zero address\"",
- "value": "ERC20: approve from the zero address"
- },
- "id": 2957,
- "name": "Literal",
- "src": "9477:38:5"
- }
- ],
- "id": 2958,
- "name": "FunctionCall",
- "src": "9448:68:5"
- }
- ],
- "id": 2959,
- "name": "ExpressionStatement",
- "src": "9448:68:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029",
- "typeString": "literal_string \"ERC20: approve to the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2960,
- "name": "Identifier",
- "src": "9526:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2945,
- "type": "address",
- "value": "spender"
- },
- "id": 2961,
- "name": "Identifier",
- "src": "9534:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2962,
- "name": "ElementaryTypeName",
- "src": "9545:7:5"
- }
- ],
- "id": 2963,
- "name": "ElementaryTypeNameExpression",
- "src": "9545:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2964,
- "name": "Literal",
- "src": "9553:1:5"
- }
- ],
- "id": 2965,
- "name": "FunctionCall",
- "src": "9545:10:5"
- }
- ],
- "id": 2966,
- "name": "BinaryOperation",
- "src": "9534:21:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: approve to the zero address\"",
- "value": "ERC20: approve to the zero address"
- },
- "id": 2967,
- "name": "Literal",
- "src": "9557:36:5"
- }
- ],
- "id": 2968,
- "name": "FunctionCall",
- "src": "9526:68:5"
- }
- ],
- "id": 2969,
- "name": "ExpressionStatement",
- "src": "9526:68:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2528,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 2970,
- "name": "Identifier",
- "src": "9605:11:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2943,
- "type": "address",
- "value": "owner"
- },
- "id": 2971,
- "name": "Identifier",
- "src": "9617:5:5"
- }
- ],
- "id": 2973,
- "name": "IndexAccess",
- "src": "9605:18:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2945,
- "type": "address",
- "value": "spender"
- },
- "id": 2972,
- "name": "Identifier",
- "src": "9624:7:5"
- }
- ],
- "id": 2974,
- "name": "IndexAccess",
- "src": "9605:27:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2947,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2975,
- "name": "Identifier",
- "src": "9635:6:5"
- }
- ],
- "id": 2976,
- "name": "Assignment",
- "src": "9605:36:5"
- }
- ],
- "id": 2977,
- "name": "ExpressionStatement",
- "src": "9605:36:5"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3085,
- "type": "function (address,address,uint256)",
- "value": "Approval"
- },
- "id": 2978,
- "name": "Identifier",
- "src": "9656:8:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2943,
- "type": "address",
- "value": "owner"
- },
- "id": 2979,
- "name": "Identifier",
- "src": "9665:5:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2945,
- "type": "address",
- "value": "spender"
- },
- "id": 2980,
- "name": "Identifier",
- "src": "9672:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2947,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2981,
- "name": "Identifier",
- "src": "9681:6:5"
- }
- ],
- "id": 2982,
- "name": "FunctionCall",
- "src": "9656:32:5"
- }
- ],
- "id": 2983,
- "name": "EmitStatement",
- "src": "9651:37:5"
- }
- ],
- "id": 2984,
- "name": "Block",
- "src": "9438:257:5"
- }
- ],
- "id": 2985,
- "name": "FunctionDefinition",
- "src": "9355:340:5"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_setupDecimals",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does."
- },
- "id": 2986,
- "name": "StructuredDocumentation",
- "src": "9701:312:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "decimals_",
- "overrides": null,
- "scope": 2996,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 2987,
- "name": "ElementaryTypeName",
- "src": "10042:5:5"
- }
- ],
- "id": 2988,
- "name": "VariableDeclaration",
- "src": "10042:15:5"
- }
- ],
- "id": 2989,
- "name": "ParameterList",
- "src": "10041:17:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2990,
- "name": "ParameterList",
- "src": "10076:0:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2536,
- "type": "uint8",
- "value": "_decimals"
- },
- "id": 2991,
- "name": "Identifier",
- "src": "10086:9:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2988,
- "type": "uint8",
- "value": "decimals_"
- },
- "id": 2992,
- "name": "Identifier",
- "src": "10098:9:5"
- }
- ],
- "id": 2993,
- "name": "Assignment",
- "src": "10086:21:5"
- }
- ],
- "id": 2994,
- "name": "ExpressionStatement",
- "src": "10086:21:5"
- }
- ],
- "id": 2995,
- "name": "Block",
- "src": "10076:38:5"
- }
- ],
- "id": 2996,
- "name": "FunctionDefinition",
- "src": "10018:96:5"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_beforeTokenTransfer",
- "overrides": null,
- "scope": 3008,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be to transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."
- },
- "id": 2997,
- "name": "StructuredDocumentation",
- "src": "10120:576:5"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "from",
- "overrides": null,
- "scope": 3007,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2998,
- "name": "ElementaryTypeName",
- "src": "10731:7:5"
- }
- ],
- "id": 2999,
- "name": "VariableDeclaration",
- "src": "10731:12:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "to",
- "overrides": null,
- "scope": 3007,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3000,
- "name": "ElementaryTypeName",
- "src": "10745:7:5"
- }
- ],
- "id": 3001,
- "name": "VariableDeclaration",
- "src": "10745:10:5"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 3007,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3002,
- "name": "ElementaryTypeName",
- "src": "10757:7:5"
- }
- ],
- "id": 3003,
- "name": "VariableDeclaration",
- "src": "10757:14:5"
- }
- ],
- "id": 3004,
- "name": "ParameterList",
- "src": "10730:42:5"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3005,
- "name": "ParameterList",
- "src": "10790:0:5"
- },
- {
- "attributes": {
- "statements": [null]
- },
- "children": [],
- "id": 3006,
- "name": "Block",
- "src": "10790:3:5"
- }
- ],
- "id": 3007,
- "name": "FunctionDefinition",
- "src": "10701:92:5"
- }
- ],
- "id": 3008,
- "name": "ContractDefinition",
- "src": "1321:9474:5"
- }
- ],
- "id": 3009,
- "name": "SourceUnit",
- "src": "33:10763:5"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.919Z",
- "devdoc": {
- "details": "Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.",
- "kind": "dev",
- "methods": {
- "allowance(address,address)": {
- "details": "See {IERC20-allowance}."
- },
- "approve(address,uint256)": {
- "details": "See {IERC20-approve}. Requirements: - `spender` cannot be the zero address."
- },
- "balanceOf(address)": {
- "details": "See {IERC20-balanceOf}."
- },
- "constructor": {
- "details": "Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 18. To select a different value for {decimals}, use {_setupDecimals}. All three of these values are immutable: they can only be set once during construction."
- },
- "decimals()": {
- "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
- },
- "decreaseAllowance(address,uint256)": {
- "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."
- },
- "increaseAllowance(address,uint256)": {
- "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."
- },
- "name()": {
- "details": "Returns the name of the token."
- },
- "symbol()": {
- "details": "Returns the symbol of the token, usually a shorter version of the name."
- },
- "totalSupply()": {
- "details": "See {IERC20-totalSupply}."
- },
- "transfer(address,uint256)": {
- "details": "See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."
- },
- "transferFrom(address,address,uint256)": {
- "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`."
- }
- },
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/IERC20.json b/packages/bridge-sdk/contracts/IERC20.json
deleted file mode 100644
index 34af045..0000000
--- a/packages/bridge-sdk/contracts/IERC20.json
+++ /dev/null
@@ -1,2160 +0,0 @@
-{
- "contractName": "IERC20",
- "abi": [
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "sender",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]}},\"version\":1}",
- "bytecode": "0x",
- "deployedBytecode": "0x",
- "immutableReferences": {},
- "sourceMap": "",
- "deployedSourceMap": "",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n}\n",
- "sourcePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "ast": {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "exportedSymbols": {
- "IERC20": [3086]
- },
- "id": 3087,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 3010,
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"],
- "nodeType": "PragmaDirective",
- "src": "33:31:6"
- },
- {
- "abstract": false,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "interface",
- "documentation": {
- "id": 3011,
- "nodeType": "StructuredDocumentation",
- "src": "66:70:6",
- "text": " @dev Interface of the ERC20 standard as defined in the EIP."
- },
- "fullyImplemented": false,
- "id": 3086,
- "linearizedBaseContracts": [3086],
- "name": "IERC20",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": null,
- "documentation": {
- "id": 3012,
- "nodeType": "StructuredDocumentation",
- "src": "160:66:6",
- "text": " @dev Returns the amount of tokens in existence."
- },
- "functionSelector": "18160ddd",
- "id": 3017,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "totalSupply",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3013,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "251:2:6"
- },
- "returnParameters": {
- "id": 3016,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3015,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3017,
- "src": "277:7:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3014,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "277:7:6",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "276:9:6"
- },
- "scope": 3086,
- "src": "231:55:6",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 3018,
- "nodeType": "StructuredDocumentation",
- "src": "292:72:6",
- "text": " @dev Returns the amount of tokens owned by `account`."
- },
- "functionSelector": "70a08231",
- "id": 3025,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "balanceOf",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3021,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3020,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3025,
- "src": "388:15:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3019,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "388:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "387:17:6"
- },
- "returnParameters": {
- "id": 3024,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3023,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3025,
- "src": "428:7:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3022,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "428:7:6",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "427:9:6"
- },
- "scope": 3086,
- "src": "369:68:6",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 3026,
- "nodeType": "StructuredDocumentation",
- "src": "443:209:6",
- "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
- },
- "functionSelector": "a9059cbb",
- "id": 3035,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "transfer",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3031,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3028,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3035,
- "src": "675:17:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3027,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "675:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3030,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3035,
- "src": "694:14:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3029,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "694:7:6",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "674:35:6"
- },
- "returnParameters": {
- "id": 3034,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3033,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3035,
- "src": "728:4:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 3032,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "728:4:6",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "727:6:6"
- },
- "scope": 3086,
- "src": "657:77:6",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 3036,
- "nodeType": "StructuredDocumentation",
- "src": "740:264:6",
- "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
- },
- "functionSelector": "dd62ed3e",
- "id": 3045,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "allowance",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3041,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3038,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3045,
- "src": "1028:13:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3037,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1028:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3040,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3045,
- "src": "1043:15:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3039,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1043:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1027:32:6"
- },
- "returnParameters": {
- "id": 3044,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3043,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3045,
- "src": "1083:7:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3042,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1083:7:6",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1082:9:6"
- },
- "scope": 3086,
- "src": "1009:83:6",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 3046,
- "nodeType": "StructuredDocumentation",
- "src": "1098:642:6",
- "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
- },
- "functionSelector": "095ea7b3",
- "id": 3055,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "approve",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3051,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3048,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3055,
- "src": "1762:15:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3047,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1762:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3050,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3055,
- "src": "1779:14:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3049,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1779:7:6",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1761:33:6"
- },
- "returnParameters": {
- "id": 3054,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3053,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3055,
- "src": "1813:4:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 3052,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "1813:4:6",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1812:6:6"
- },
- "scope": 3086,
- "src": "1745:74:6",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 3056,
- "nodeType": "StructuredDocumentation",
- "src": "1825:296:6",
- "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
- },
- "functionSelector": "23b872dd",
- "id": 3067,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "transferFrom",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3063,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3058,
- "mutability": "mutable",
- "name": "sender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3067,
- "src": "2148:14:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3057,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2148:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3060,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3067,
- "src": "2164:17:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3059,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2164:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3062,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3067,
- "src": "2183:14:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3061,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2183:7:6",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2147:51:6"
- },
- "returnParameters": {
- "id": 3066,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3065,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3067,
- "src": "2217:4:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 3064,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "2217:4:6",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2216:6:6"
- },
- "scope": 3086,
- "src": "2126:97:6",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "anonymous": false,
- "documentation": {
- "id": 3068,
- "nodeType": "StructuredDocumentation",
- "src": "2229:158:6",
- "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
- },
- "id": 3076,
- "name": "Transfer",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 3075,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3070,
- "indexed": true,
- "mutability": "mutable",
- "name": "from",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3076,
- "src": "2407:20:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3069,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2407:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3072,
- "indexed": true,
- "mutability": "mutable",
- "name": "to",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3076,
- "src": "2429:18:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3071,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2429:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3074,
- "indexed": false,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3076,
- "src": "2449:13:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3073,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2449:7:6",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2406:57:6"
- },
- "src": "2392:72:6"
- },
- {
- "anonymous": false,
- "documentation": {
- "id": 3077,
- "nodeType": "StructuredDocumentation",
- "src": "2470:148:6",
- "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
- },
- "id": 3085,
- "name": "Approval",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 3084,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3079,
- "indexed": true,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3085,
- "src": "2638:21:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3078,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2638:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3081,
- "indexed": true,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3085,
- "src": "2661:23:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3080,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2661:7:6",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3083,
- "indexed": false,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3085,
- "src": "2686:13:6",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3082,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2686:7:6",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2637:63:6"
- },
- "src": "2623:78:6"
- }
- ],
- "scope": 3087,
- "src": "137:2566:6"
- }
- ],
- "src": "33:2671:6"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "exportedSymbols": {
- "IERC20": [3086]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"]
- },
- "id": 3010,
- "name": "PragmaDirective",
- "src": "33:31:6"
- },
- {
- "attributes": {
- "abstract": false,
- "baseContracts": [null],
- "contractDependencies": [null],
- "contractKind": "interface",
- "fullyImplemented": false,
- "linearizedBaseContracts": [3086],
- "name": "IERC20",
- "scope": 3087
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Interface of the ERC20 standard as defined in the EIP."
- },
- "id": 3011,
- "name": "StructuredDocumentation",
- "src": "66:70:6"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "18160ddd",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "totalSupply",
- "overrides": null,
- "scope": 3086,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the amount of tokens in existence."
- },
- "id": 3012,
- "name": "StructuredDocumentation",
- "src": "160:66:6"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3013,
- "name": "ParameterList",
- "src": "251:2:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3017,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3014,
- "name": "ElementaryTypeName",
- "src": "277:7:6"
- }
- ],
- "id": 3015,
- "name": "VariableDeclaration",
- "src": "277:7:6"
- }
- ],
- "id": 3016,
- "name": "ParameterList",
- "src": "276:9:6"
- }
- ],
- "id": 3017,
- "name": "FunctionDefinition",
- "src": "231:55:6"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "70a08231",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "balanceOf",
- "overrides": null,
- "scope": 3086,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the amount of tokens owned by `account`."
- },
- "id": 3018,
- "name": "StructuredDocumentation",
- "src": "292:72:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 3025,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3019,
- "name": "ElementaryTypeName",
- "src": "388:7:6"
- }
- ],
- "id": 3020,
- "name": "VariableDeclaration",
- "src": "388:15:6"
- }
- ],
- "id": 3021,
- "name": "ParameterList",
- "src": "387:17:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3025,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3022,
- "name": "ElementaryTypeName",
- "src": "428:7:6"
- }
- ],
- "id": 3023,
- "name": "VariableDeclaration",
- "src": "428:7:6"
- }
- ],
- "id": 3024,
- "name": "ParameterList",
- "src": "427:9:6"
- }
- ],
- "id": 3025,
- "name": "FunctionDefinition",
- "src": "369:68:6"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "a9059cbb",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "transfer",
- "overrides": null,
- "scope": 3086,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
- },
- "id": 3026,
- "name": "StructuredDocumentation",
- "src": "443:209:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 3035,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3027,
- "name": "ElementaryTypeName",
- "src": "675:7:6"
- }
- ],
- "id": 3028,
- "name": "VariableDeclaration",
- "src": "675:17:6"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 3035,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3029,
- "name": "ElementaryTypeName",
- "src": "694:7:6"
- }
- ],
- "id": 3030,
- "name": "VariableDeclaration",
- "src": "694:14:6"
- }
- ],
- "id": 3031,
- "name": "ParameterList",
- "src": "674:35:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3035,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 3032,
- "name": "ElementaryTypeName",
- "src": "728:4:6"
- }
- ],
- "id": 3033,
- "name": "VariableDeclaration",
- "src": "728:4:6"
- }
- ],
- "id": 3034,
- "name": "ParameterList",
- "src": "727:6:6"
- }
- ],
- "id": 3035,
- "name": "FunctionDefinition",
- "src": "657:77:6"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "dd62ed3e",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "allowance",
- "overrides": null,
- "scope": 3086,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
- },
- "id": 3036,
- "name": "StructuredDocumentation",
- "src": "740:264:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "owner",
- "overrides": null,
- "scope": 3045,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3037,
- "name": "ElementaryTypeName",
- "src": "1028:7:6"
- }
- ],
- "id": 3038,
- "name": "VariableDeclaration",
- "src": "1028:13:6"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 3045,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3039,
- "name": "ElementaryTypeName",
- "src": "1043:7:6"
- }
- ],
- "id": 3040,
- "name": "VariableDeclaration",
- "src": "1043:15:6"
- }
- ],
- "id": 3041,
- "name": "ParameterList",
- "src": "1027:32:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3045,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3042,
- "name": "ElementaryTypeName",
- "src": "1083:7:6"
- }
- ],
- "id": 3043,
- "name": "VariableDeclaration",
- "src": "1083:7:6"
- }
- ],
- "id": 3044,
- "name": "ParameterList",
- "src": "1082:9:6"
- }
- ],
- "id": 3045,
- "name": "FunctionDefinition",
- "src": "1009:83:6"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "095ea7b3",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "approve",
- "overrides": null,
- "scope": 3086,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
- },
- "id": 3046,
- "name": "StructuredDocumentation",
- "src": "1098:642:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 3055,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3047,
- "name": "ElementaryTypeName",
- "src": "1762:7:6"
- }
- ],
- "id": 3048,
- "name": "VariableDeclaration",
- "src": "1762:15:6"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 3055,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3049,
- "name": "ElementaryTypeName",
- "src": "1779:7:6"
- }
- ],
- "id": 3050,
- "name": "VariableDeclaration",
- "src": "1779:14:6"
- }
- ],
- "id": 3051,
- "name": "ParameterList",
- "src": "1761:33:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3055,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 3052,
- "name": "ElementaryTypeName",
- "src": "1813:4:6"
- }
- ],
- "id": 3053,
- "name": "VariableDeclaration",
- "src": "1813:4:6"
- }
- ],
- "id": 3054,
- "name": "ParameterList",
- "src": "1812:6:6"
- }
- ],
- "id": 3055,
- "name": "FunctionDefinition",
- "src": "1745:74:6"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "23b872dd",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "transferFrom",
- "overrides": null,
- "scope": 3086,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
- },
- "id": 3056,
- "name": "StructuredDocumentation",
- "src": "1825:296:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "sender",
- "overrides": null,
- "scope": 3067,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3057,
- "name": "ElementaryTypeName",
- "src": "2148:7:6"
- }
- ],
- "id": 3058,
- "name": "VariableDeclaration",
- "src": "2148:14:6"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 3067,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3059,
- "name": "ElementaryTypeName",
- "src": "2164:7:6"
- }
- ],
- "id": 3060,
- "name": "VariableDeclaration",
- "src": "2164:17:6"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 3067,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3061,
- "name": "ElementaryTypeName",
- "src": "2183:7:6"
- }
- ],
- "id": 3062,
- "name": "VariableDeclaration",
- "src": "2183:14:6"
- }
- ],
- "id": 3063,
- "name": "ParameterList",
- "src": "2147:51:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 3067,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 3064,
- "name": "ElementaryTypeName",
- "src": "2217:4:6"
- }
- ],
- "id": 3065,
- "name": "VariableDeclaration",
- "src": "2217:4:6"
- }
- ],
- "id": 3066,
- "name": "ParameterList",
- "src": "2216:6:6"
- }
- ],
- "id": 3067,
- "name": "FunctionDefinition",
- "src": "2126:97:6"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "Transfer"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
- },
- "id": 3068,
- "name": "StructuredDocumentation",
- "src": "2229:158:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "from",
- "overrides": null,
- "scope": 3076,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3069,
- "name": "ElementaryTypeName",
- "src": "2407:7:6"
- }
- ],
- "id": 3070,
- "name": "VariableDeclaration",
- "src": "2407:20:6"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "to",
- "overrides": null,
- "scope": 3076,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3071,
- "name": "ElementaryTypeName",
- "src": "2429:7:6"
- }
- ],
- "id": 3072,
- "name": "VariableDeclaration",
- "src": "2429:18:6"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 3076,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3073,
- "name": "ElementaryTypeName",
- "src": "2449:7:6"
- }
- ],
- "id": 3074,
- "name": "VariableDeclaration",
- "src": "2449:13:6"
- }
- ],
- "id": 3075,
- "name": "ParameterList",
- "src": "2406:57:6"
- }
- ],
- "id": 3076,
- "name": "EventDefinition",
- "src": "2392:72:6"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "Approval"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
- },
- "id": 3077,
- "name": "StructuredDocumentation",
- "src": "2470:148:6"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "owner",
- "overrides": null,
- "scope": 3085,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3078,
- "name": "ElementaryTypeName",
- "src": "2638:7:6"
- }
- ],
- "id": 3079,
- "name": "VariableDeclaration",
- "src": "2638:21:6"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 3085,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3080,
- "name": "ElementaryTypeName",
- "src": "2661:7:6"
- }
- ],
- "id": 3081,
- "name": "VariableDeclaration",
- "src": "2661:23:6"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 3085,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3082,
- "name": "ElementaryTypeName",
- "src": "2686:7:6"
- }
- ],
- "id": 3083,
- "name": "VariableDeclaration",
- "src": "2686:13:6"
- }
- ],
- "id": 3084,
- "name": "ParameterList",
- "src": "2637:63:6"
- }
- ],
- "id": 3085,
- "name": "EventDefinition",
- "src": "2623:78:6"
- }
- ],
- "id": 3086,
- "name": "ContractDefinition",
- "src": "137:2566:6"
- }
- ],
- "id": 3087,
- "name": "SourceUnit",
- "src": "33:2671:6"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.923Z",
- "devdoc": {
- "details": "Interface of the ERC20 standard as defined in the EIP.",
- "events": {
- "Approval(address,address,uint256)": {
- "details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
- },
- "Transfer(address,address,uint256)": {
- "details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
- }
- },
- "kind": "dev",
- "methods": {
- "allowance(address,address)": {
- "details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
- },
- "approve(address,uint256)": {
- "details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
- },
- "balanceOf(address)": {
- "details": "Returns the amount of tokens owned by `account`."
- },
- "totalSupply()": {
- "details": "Returns the amount of tokens in existence."
- },
- "transfer(address,uint256)": {
- "details": "Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
- },
- "transferFrom(address,address,uint256)": {
- "details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
- }
- },
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/ReentrancyGuard.json b/packages/bridge-sdk/contracts/ReentrancyGuard.json
deleted file mode 100644
index 6d868b3..0000000
--- a/packages/bridge-sdk/contracts/ReentrancyGuard.json
+++ /dev/null
@@ -1,1000 +0,0 @@
-{
- "contractName": "ReentrancyGuard",
- "abi": [],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x8bbbc2f5c10065ee272592ae0a7a6ceb23de2fbd81564ee0bb015ecf404d5f61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b95e56c1640d0ef789fc5c16269e141e992f6c8ac97cc6d377bd3825e9cab182\",\"dweb:/ipfs/QmVzaxJZY51EhagrcNnkxoU6Uq17RhATe7aHvtkC6wUkgK\"]}},\"version\":1}",
- "bytecode": "0x",
- "deployedBytecode": "0x",
- "immutableReferences": {},
- "sourceMap": "",
- "deployedSourceMap": "",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Contract module that helps prevent reentrant calls to a function.\n *\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n * available, which can be applied to functions to make sure there are no nested\n * (reentrant) calls to them.\n *\n * Note that because there is a single `nonReentrant` guard, functions marked as\n * `nonReentrant` may not call one another. This can be worked around by making\n * those functions `private`, and then adding `external` `nonReentrant` entry\n * points to them.\n *\n * TIP: If you would like to learn more about reentrancy and alternative ways\n * to protect against it, check out our blog post\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\n */\nabstract contract ReentrancyGuard {\n // Booleans are more expensive than uint256 or any type that takes up a full\n // word because each write operation emits an extra SLOAD to first read the\n // slot's contents, replace the bits taken up by the boolean, and then write\n // back. This is the compiler's defense against contract upgrades and\n // pointer aliasing, and it cannot be disabled.\n\n // The values being non-zero value makes deployment a bit more expensive,\n // but in exchange the refund on every call to nonReentrant will be lower in\n // amount. Since refunds are capped to a percentage of the total\n // transaction's gas, it is best to keep them low in cases like this one, to\n // increase the likelihood of the full refund coming into effect.\n uint256 private constant _NOT_ENTERED = 1;\n uint256 private constant _ENTERED = 2;\n\n uint256 private _status;\n\n constructor () internal {\n _status = _NOT_ENTERED;\n }\n\n /**\n * @dev Prevents a contract from calling itself, directly or indirectly.\n * Calling a `nonReentrant` function from another `nonReentrant`\n * function is not supported. It is possible to prevent this from happening\n * by making the `nonReentrant` function external, and make it call a\n * `private` function that does the actual work.\n */\n modifier nonReentrant() {\n // On the first call to nonReentrant, _notEntered will be true\n require(_status != _ENTERED, \"ReentrancyGuard: reentrant call\");\n\n // Any calls to nonReentrant after this point will fail\n _status = _ENTERED;\n\n _;\n\n // By storing the original value once again, a refund is triggered (see\n // https://eips.ethereum.org/EIPS/eip-2200)\n _status = _NOT_ENTERED;\n }\n}\n",
- "sourcePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "ast": {
- "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "exportedSymbols": {
- "ReentrancyGuard": [3658]
- },
- "id": 3659,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 3620,
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"],
- "nodeType": "PragmaDirective",
- "src": "33:31:10"
- },
- {
- "abstract": true,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "contract",
- "documentation": {
- "id": 3621,
- "nodeType": "StructuredDocumentation",
- "src": "66:750:10",
- "text": " @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."
- },
- "fullyImplemented": true,
- "id": 3658,
- "linearizedBaseContracts": [3658],
- "name": "ReentrancyGuard",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "constant": true,
- "id": 3624,
- "mutability": "constant",
- "name": "_NOT_ENTERED",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3658,
- "src": "1605:41:10",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3622,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1605:7:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 3623,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1645:1:10",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "visibility": "private"
- },
- {
- "constant": true,
- "id": 3627,
- "mutability": "constant",
- "name": "_ENTERED",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3658,
- "src": "1652:37:10",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3625,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1652:7:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 3626,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1688:1:10",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 3629,
- "mutability": "mutable",
- "name": "_status",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3658,
- "src": "1696:23:10",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3628,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1696:7:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "body": {
- "id": 3636,
- "nodeType": "Block",
- "src": "1750:39:10",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 3634,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 3632,
- "name": "_status",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3629,
- "src": "1760:7:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 3633,
- "name": "_NOT_ENTERED",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3624,
- "src": "1770:12:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1760:22:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 3635,
- "nodeType": "ExpressionStatement",
- "src": "1760:22:10"
- }
- ]
- },
- "documentation": null,
- "id": 3637,
- "implemented": true,
- "kind": "constructor",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3630,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1738:2:10"
- },
- "returnParameters": {
- "id": 3631,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1750:0:10"
- },
- "scope": 3658,
- "src": "1726:63:10",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3656,
- "nodeType": "Block",
- "src": "2188:421:10",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 3643,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 3641,
- "name": "_status",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3629,
- "src": "2277:7:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 3642,
- "name": "_ENTERED",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3627,
- "src": "2288:8:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2277:19:10",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c",
- "id": 3644,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2298:33:10",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619",
- "typeString": "literal_string \"ReentrancyGuard: reentrant call\""
- },
- "value": "ReentrancyGuard: reentrant call"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619",
- "typeString": "literal_string \"ReentrancyGuard: reentrant call\""
- }
- ],
- "id": 3640,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "2269:7:10",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 3645,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2269:63:10",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3646,
- "nodeType": "ExpressionStatement",
- "src": "2269:63:10"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 3649,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 3647,
- "name": "_status",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3629,
- "src": "2407:7:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 3648,
- "name": "_ENTERED",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3627,
- "src": "2417:8:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2407:18:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 3650,
- "nodeType": "ExpressionStatement",
- "src": "2407:18:10"
- },
- {
- "id": 3651,
- "nodeType": "PlaceholderStatement",
- "src": "2436:1:10"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 3654,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 3652,
- "name": "_status",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3629,
- "src": "2580:7:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 3653,
- "name": "_NOT_ENTERED",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3624,
- "src": "2590:12:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2580:22:10",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 3655,
- "nodeType": "ExpressionStatement",
- "src": "2580:22:10"
- }
- ]
- },
- "documentation": {
- "id": 3638,
- "nodeType": "StructuredDocumentation",
- "src": "1795:364:10",
- "text": " @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and make it call a\n `private` function that does the actual work."
- },
- "id": 3657,
- "name": "nonReentrant",
- "nodeType": "ModifierDefinition",
- "overrides": null,
- "parameters": {
- "id": 3639,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2185:2:10"
- },
- "src": "2164:445:10",
- "virtual": false,
- "visibility": "internal"
- }
- ],
- "scope": 3659,
- "src": "817:1794:10"
- }
- ],
- "src": "33:2579:10"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "exportedSymbols": {
- "ReentrancyGuard": [3658]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"]
- },
- "id": 3620,
- "name": "PragmaDirective",
- "src": "33:31:10"
- },
- {
- "attributes": {
- "abstract": true,
- "baseContracts": [null],
- "contractDependencies": [null],
- "contractKind": "contract",
- "fullyImplemented": true,
- "linearizedBaseContracts": [3658],
- "name": "ReentrancyGuard",
- "scope": 3659
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Contract module that helps prevent reentrant calls to a function.\n Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\n available, which can be applied to functions to make sure there are no nested\n (reentrant) calls to them.\n Note that because there is a single `nonReentrant` guard, functions marked as\n `nonReentrant` may not call one another. This can be worked around by making\n those functions `private`, and then adding `external` `nonReentrant` entry\n points to them.\n TIP: If you would like to learn more about reentrancy and alternative ways\n to protect against it, check out our blog post\n https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]."
- },
- "id": 3621,
- "name": "StructuredDocumentation",
- "src": "66:750:10"
- },
- {
- "attributes": {
- "constant": true,
- "mutability": "constant",
- "name": "_NOT_ENTERED",
- "overrides": null,
- "scope": 3658,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3622,
- "name": "ElementaryTypeName",
- "src": "1605:7:10"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 3623,
- "name": "Literal",
- "src": "1645:1:10"
- }
- ],
- "id": 3624,
- "name": "VariableDeclaration",
- "src": "1605:41:10"
- },
- {
- "attributes": {
- "constant": true,
- "mutability": "constant",
- "name": "_ENTERED",
- "overrides": null,
- "scope": 3658,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3625,
- "name": "ElementaryTypeName",
- "src": "1652:7:10"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 3626,
- "name": "Literal",
- "src": "1688:1:10"
- }
- ],
- "id": 3627,
- "name": "VariableDeclaration",
- "src": "1652:37:10"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_status",
- "overrides": null,
- "scope": 3658,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3628,
- "name": "ElementaryTypeName",
- "src": "1696:7:10"
- }
- ],
- "id": 3629,
- "name": "VariableDeclaration",
- "src": "1696:23:10"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": true,
- "kind": "constructor",
- "modifiers": [null],
- "name": "",
- "overrides": null,
- "scope": 3658,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3630,
- "name": "ParameterList",
- "src": "1738:2:10"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3631,
- "name": "ParameterList",
- "src": "1750:0:10"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3629,
- "type": "uint256",
- "value": "_status"
- },
- "id": 3632,
- "name": "Identifier",
- "src": "1760:7:10"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3624,
- "type": "uint256",
- "value": "_NOT_ENTERED"
- },
- "id": 3633,
- "name": "Identifier",
- "src": "1770:12:10"
- }
- ],
- "id": 3634,
- "name": "Assignment",
- "src": "1760:22:10"
- }
- ],
- "id": 3635,
- "name": "ExpressionStatement",
- "src": "1760:22:10"
- }
- ],
- "id": 3636,
- "name": "Block",
- "src": "1750:39:10"
- }
- ],
- "id": 3637,
- "name": "FunctionDefinition",
- "src": "1726:63:10"
- },
- {
- "attributes": {
- "name": "nonReentrant",
- "overrides": null,
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Prevents a contract from calling itself, directly or indirectly.\n Calling a `nonReentrant` function from another `nonReentrant`\n function is not supported. It is possible to prevent this from happening\n by making the `nonReentrant` function external, and make it call a\n `private` function that does the actual work."
- },
- "id": 3638,
- "name": "StructuredDocumentation",
- "src": "1795:364:10"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3639,
- "name": "ParameterList",
- "src": "2185:2:10"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619",
- "typeString": "literal_string \"ReentrancyGuard: reentrant call\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 3640,
- "name": "Identifier",
- "src": "2269:7:10"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3629,
- "type": "uint256",
- "value": "_status"
- },
- "id": 3641,
- "name": "Identifier",
- "src": "2277:7:10"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3627,
- "type": "uint256",
- "value": "_ENTERED"
- },
- "id": 3642,
- "name": "Identifier",
- "src": "2288:8:10"
- }
- ],
- "id": 3643,
- "name": "BinaryOperation",
- "src": "2277:19:10"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ReentrancyGuard: reentrant call\"",
- "value": "ReentrancyGuard: reentrant call"
- },
- "id": 3644,
- "name": "Literal",
- "src": "2298:33:10"
- }
- ],
- "id": 3645,
- "name": "FunctionCall",
- "src": "2269:63:10"
- }
- ],
- "id": 3646,
- "name": "ExpressionStatement",
- "src": "2269:63:10"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3629,
- "type": "uint256",
- "value": "_status"
- },
- "id": 3647,
- "name": "Identifier",
- "src": "2407:7:10"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3627,
- "type": "uint256",
- "value": "_ENTERED"
- },
- "id": 3648,
- "name": "Identifier",
- "src": "2417:8:10"
- }
- ],
- "id": 3649,
- "name": "Assignment",
- "src": "2407:18:10"
- }
- ],
- "id": 3650,
- "name": "ExpressionStatement",
- "src": "2407:18:10"
- },
- {
- "id": 3651,
- "name": "PlaceholderStatement",
- "src": "2436:1:10"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3629,
- "type": "uint256",
- "value": "_status"
- },
- "id": 3652,
- "name": "Identifier",
- "src": "2580:7:10"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3624,
- "type": "uint256",
- "value": "_NOT_ENTERED"
- },
- "id": 3653,
- "name": "Identifier",
- "src": "2590:12:10"
- }
- ],
- "id": 3654,
- "name": "Assignment",
- "src": "2580:22:10"
- }
- ],
- "id": 3655,
- "name": "ExpressionStatement",
- "src": "2580:22:10"
- }
- ],
- "id": 3656,
- "name": "Block",
- "src": "2188:421:10"
- }
- ],
- "id": 3657,
- "name": "ModifierDefinition",
- "src": "2164:445:10"
- }
- ],
- "id": 3658,
- "name": "ContractDefinition",
- "src": "817:1794:10"
- }
- ],
- "id": 3659,
- "name": "SourceUnit",
- "src": "33:2579:10"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.930Z",
- "devdoc": {
- "details": "Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].",
- "kind": "dev",
- "methods": {},
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/SafeERC20.json b/packages/bridge-sdk/contracts/SafeERC20.json
deleted file mode 100644
index e984cbc..0000000
--- a/packages/bridge-sdk/contracts/SafeERC20.json
+++ /dev/null
@@ -1,6220 +0,0 @@
-{
- "contractName": "SafeERC20",
- "abi": [],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf12dfbe97e6276980b83d2830bb0eb75e0cf4f3e626c2471137f82158ae6a0fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a849c2d95e85463909e5b5c920b13e7a11216ca14127085e16d22b9379d52a\",\"dweb:/ipfs/QmUg3CZDbCCcQdroEpexBy5ZFd5vD1UWijWQq9qHZjtJNQ\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]}},\"version\":1}",
- "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203547b9b3fa28635bb2f7e9937a35aaddcc8be9819cfe05f6d4ebbf41896ee60164736f6c634300060c0033",
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203547b9b3fa28635bb2f7e9937a35aaddcc8be9819cfe05f6d4ebbf41896ee60164736f6c634300060c0033",
- "immutableReferences": {},
- "sourceMap": "616:3104:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
- "deployedSourceMap": "616:3104:7:-:0;;;;;;;;",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\nimport \"../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using SafeMath for uint256;\n using Address for address;\n\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(IERC20 token, address spender, uint256 value) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n // solhint-disable-next-line max-line-length\n require((value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n uint256 newAllowance = token.allowance(address(this), spender).add(value);\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n uint256 newAllowance = token.allowance(address(this), spender).sub(value, \"SafeERC20: decreased allowance below zero\");\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) { // Return data is optional\n // solhint-disable-next-line max-line-length\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n",
- "sourcePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "ast": {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "exportedSymbols": {
- "SafeERC20": [3299]
- },
- "id": 3300,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 3088,
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"],
- "nodeType": "PragmaDirective",
- "src": "33:31:7"
- },
- {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "./IERC20.sol",
- "id": 3089,
- "nodeType": "ImportDirective",
- "scope": 3300,
- "sourceUnit": 3087,
- "src": "66:22:7",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "../../math/SafeMath.sol",
- "id": 3090,
- "nodeType": "ImportDirective",
- "scope": 3300,
- "sourceUnit": 2506,
- "src": "89:33:7",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/utils/Address.sol",
- "file": "../../utils/Address.sol",
- "id": 3091,
- "nodeType": "ImportDirective",
- "scope": 3300,
- "sourceUnit": 3596,
- "src": "123:33:7",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "abstract": false,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "library",
- "documentation": {
- "id": 3092,
- "nodeType": "StructuredDocumentation",
- "src": "158:457:7",
- "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."
- },
- "fullyImplemented": true,
- "id": 3299,
- "linearizedBaseContracts": [3299],
- "name": "SafeERC20",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "id": 3095,
- "libraryName": {
- "contractScope": null,
- "id": 3093,
- "name": "SafeMath",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 2505,
- "src": "646:8:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeMath_$2505",
- "typeString": "library SafeMath"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "640:27:7",
- "typeName": {
- "id": 3094,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "659:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- {
- "id": 3098,
- "libraryName": {
- "contractScope": null,
- "id": 3096,
- "name": "Address",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3595,
- "src": "678:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Address_$3595",
- "typeString": "library Address"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "672:26:7",
- "typeName": {
- "id": 3097,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "690:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- },
- {
- "body": {
- "id": 3119,
- "nodeType": "Block",
- "src": "776:103:7",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3108,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3100,
- "src": "806:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 3111,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3100,
- "src": "836:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 3112,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "transfer",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3035,
- "src": "836:14:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
- "typeString": "function (address,uint256) external returns (bool)"
- }
- },
- "id": 3113,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "selector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "836:23:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- }
- },
- {
- "argumentTypes": null,
- "id": 3114,
- "name": "to",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3102,
- "src": "861:2:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3115,
- "name": "value",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3104,
- "src": "865:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3109,
- "name": "abi",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -1,
- "src": "813:3:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_abi",
- "typeString": "abi"
- }
- },
- "id": 3110,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "memberName": "encodeWithSelector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "813:22:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes4) pure returns (bytes memory)"
- }
- },
- "id": 3116,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "813:58:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 3107,
- "name": "_callOptionalReturn",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3298,
- "src": "786:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_bytes_memory_ptr_$returns$__$",
- "typeString": "function (contract IERC20,bytes memory)"
- }
- },
- "id": 3117,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "786:86:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3118,
- "nodeType": "ExpressionStatement",
- "src": "786:86:7"
- }
- ]
- },
- "documentation": null,
- "id": 3120,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "safeTransfer",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3105,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3100,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3120,
- "src": "726:12:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- "typeName": {
- "contractScope": null,
- "id": 3099,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "726:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3102,
- "mutability": "mutable",
- "name": "to",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3120,
- "src": "740:10:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3101,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "740:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3104,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3120,
- "src": "752:13:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3103,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "752:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "725:41:7"
- },
- "returnParameters": {
- "id": 3106,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "776:0:7"
- },
- "scope": 3299,
- "src": "704:175:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3144,
- "nodeType": "Block",
- "src": "975:113:7",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3132,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3122,
- "src": "1005:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 3135,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3122,
- "src": "1035:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 3136,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "transferFrom",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3067,
- "src": "1035:18:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
- "typeString": "function (address,address,uint256) external returns (bool)"
- }
- },
- "id": 3137,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "selector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "1035:27:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- }
- },
- {
- "argumentTypes": null,
- "id": 3138,
- "name": "from",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3124,
- "src": "1064:4:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3139,
- "name": "to",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3126,
- "src": "1070:2:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3140,
- "name": "value",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3128,
- "src": "1074:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3133,
- "name": "abi",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -1,
- "src": "1012:3:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_abi",
- "typeString": "abi"
- }
- },
- "id": 3134,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "memberName": "encodeWithSelector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "1012:22:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes4) pure returns (bytes memory)"
- }
- },
- "id": 3141,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1012:68:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 3131,
- "name": "_callOptionalReturn",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3298,
- "src": "985:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_bytes_memory_ptr_$returns$__$",
- "typeString": "function (contract IERC20,bytes memory)"
- }
- },
- "id": 3142,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "985:96:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3143,
- "nodeType": "ExpressionStatement",
- "src": "985:96:7"
- }
- ]
- },
- "documentation": null,
- "id": 3145,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "safeTransferFrom",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3129,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3122,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3145,
- "src": "911:12:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- "typeName": {
- "contractScope": null,
- "id": 3121,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "911:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3124,
- "mutability": "mutable",
- "name": "from",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3145,
- "src": "925:12:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3123,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "925:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3126,
- "mutability": "mutable",
- "name": "to",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3145,
- "src": "939:10:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3125,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "939:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3128,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3145,
- "src": "951:13:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3127,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "951:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "910:55:7"
- },
- "returnParameters": {
- "id": 3130,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "975:0:7"
- },
- "scope": 3299,
- "src": "885:203:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3187,
- "nodeType": "Block",
- "src": "1424:537:7",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "id": 3171,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 3158,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 3156,
- "name": "value",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3152,
- "src": "1713:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 3157,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1722:1:7",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1713:10:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- ],
- "id": 3159,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1712:12:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "||",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 3169,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3164,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "1753:4:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- ],
- "id": 3163,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "1745:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 3162,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1745:7:7",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 3165,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1745:13:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3166,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3150,
- "src": "1760:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3160,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3148,
- "src": "1729:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 3161,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "allowance",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3045,
- "src": "1729:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
- "typeString": "function (address,address) view external returns (uint256)"
- }
- },
- "id": 3167,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1729:39:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 3168,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1772:1:7",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1729:44:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- ],
- "id": 3170,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1728:46:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "src": "1712:62:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365",
- "id": 3172,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1788:56:7",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25",
- "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""
- },
- "value": "SafeERC20: approve from non-zero to non-zero allowance"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25",
- "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""
- }
- ],
- "id": 3155,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "1704:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 3173,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1704:150:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3174,
- "nodeType": "ExpressionStatement",
- "src": "1704:150:7"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3176,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3148,
- "src": "1884:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 3179,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3148,
- "src": "1914:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 3180,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "approve",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3055,
- "src": "1914:13:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
- "typeString": "function (address,uint256) external returns (bool)"
- }
- },
- "id": 3181,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "selector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "1914:22:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- }
- },
- {
- "argumentTypes": null,
- "id": 3182,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3150,
- "src": "1938:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3183,
- "name": "value",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3152,
- "src": "1947:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3177,
- "name": "abi",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -1,
- "src": "1891:3:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_abi",
- "typeString": "abi"
- }
- },
- "id": 3178,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "memberName": "encodeWithSelector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "1891:22:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes4) pure returns (bytes memory)"
- }
- },
- "id": 3184,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1891:62:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 3175,
- "name": "_callOptionalReturn",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3298,
- "src": "1864:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_bytes_memory_ptr_$returns$__$",
- "typeString": "function (contract IERC20,bytes memory)"
- }
- },
- "id": 3185,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1864:90:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3186,
- "nodeType": "ExpressionStatement",
- "src": "1864:90:7"
- }
- ]
- },
- "documentation": {
- "id": 3146,
- "nodeType": "StructuredDocumentation",
- "src": "1094:249:7",
- "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."
- },
- "id": 3188,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "safeApprove",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3153,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3148,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3188,
- "src": "1369:12:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- "typeName": {
- "contractScope": null,
- "id": 3147,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "1369:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3150,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3188,
- "src": "1383:15:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3149,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1383:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3152,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3188,
- "src": "1400:13:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3151,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1400:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1368:46:7"
- },
- "returnParameters": {
- "id": 3154,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1424:0:7"
- },
- "scope": 3299,
- "src": "1348:613:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3223,
- "nodeType": "Block",
- "src": "2053:197:7",
- "statements": [
- {
- "assignments": [3198],
- "declarations": [
- {
- "constant": false,
- "id": 3198,
- "mutability": "mutable",
- "name": "newAllowance",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3223,
- "src": "2063:20:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3197,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2063:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 3210,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3208,
- "name": "value",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3194,
- "src": "2130:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3203,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "2110:4:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- ],
- "id": 3202,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2102:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 3201,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2102:7:7",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 3204,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2102:13:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3205,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3192,
- "src": "2117:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3199,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3190,
- "src": "2086:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 3200,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "allowance",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3045,
- "src": "2086:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
- "typeString": "function (address,address) view external returns (uint256)"
- }
- },
- "id": 3206,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2086:39:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 3207,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2332,
- "src": "2086:43:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 3209,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2086:50:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2063:73:7"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3212,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3190,
- "src": "2166:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 3215,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3190,
- "src": "2196:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 3216,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "approve",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3055,
- "src": "2196:13:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
- "typeString": "function (address,uint256) external returns (bool)"
- }
- },
- "id": 3217,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "selector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "2196:22:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- }
- },
- {
- "argumentTypes": null,
- "id": 3218,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3192,
- "src": "2220:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3219,
- "name": "newAllowance",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3198,
- "src": "2229:12:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3213,
- "name": "abi",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -1,
- "src": "2173:3:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_abi",
- "typeString": "abi"
- }
- },
- "id": 3214,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "memberName": "encodeWithSelector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "2173:22:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes4) pure returns (bytes memory)"
- }
- },
- "id": 3220,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2173:69:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 3211,
- "name": "_callOptionalReturn",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3298,
- "src": "2146:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_bytes_memory_ptr_$returns$__$",
- "typeString": "function (contract IERC20,bytes memory)"
- }
- },
- "id": 3221,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2146:97:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3222,
- "nodeType": "ExpressionStatement",
- "src": "2146:97:7"
- }
- ]
- },
- "documentation": null,
- "id": 3224,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "safeIncreaseAllowance",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3195,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3190,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3224,
- "src": "1998:12:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- "typeName": {
- "contractScope": null,
- "id": 3189,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "1998:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3192,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3224,
- "src": "2012:15:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3191,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2012:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3194,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3224,
- "src": "2029:13:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3193,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2029:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1997:46:7"
- },
- "returnParameters": {
- "id": 3196,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2053:0:7"
- },
- "scope": 3299,
- "src": "1967:283:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3260,
- "nodeType": "Block",
- "src": "2342:242:7",
- "statements": [
- {
- "assignments": [3234],
- "declarations": [
- {
- "constant": false,
- "id": 3234,
- "mutability": "mutable",
- "name": "newAllowance",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3260,
- "src": "2352:20:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3233,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2352:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 3247,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3244,
- "name": "value",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3230,
- "src": "2419:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
- "id": 3245,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2426:43:7",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a",
- "typeString": "literal_string \"SafeERC20: decreased allowance below zero\""
- },
- "value": "SafeERC20: decreased allowance below zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a",
- "typeString": "literal_string \"SafeERC20: decreased allowance below zero\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3239,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "2399:4:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- ],
- "id": 3238,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2391:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 3237,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2391:7:7",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 3240,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2391:13:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3241,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3228,
- "src": "2406:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3235,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3226,
- "src": "2375:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 3236,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "allowance",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3045,
- "src": "2375:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
- "typeString": "function (address,address) view external returns (uint256)"
- }
- },
- "id": 3242,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2375:39:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 3243,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2456,
- "src": "2375:43:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
- }
- },
- "id": 3246,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2375:95:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2352:118:7"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3249,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3226,
- "src": "2500:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 3252,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3226,
- "src": "2530:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 3253,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "approve",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3055,
- "src": "2530:13:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
- "typeString": "function (address,uint256) external returns (bool)"
- }
- },
- "id": 3254,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "selector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "2530:22:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- }
- },
- {
- "argumentTypes": null,
- "id": 3255,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3228,
- "src": "2554:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 3256,
- "name": "newAllowance",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3234,
- "src": "2563:12:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3250,
- "name": "abi",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -1,
- "src": "2507:3:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_abi",
- "typeString": "abi"
- }
- },
- "id": 3251,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "memberName": "encodeWithSelector",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "2507:22:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes4) pure returns (bytes memory)"
- }
- },
- "id": 3257,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2507:69:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 3248,
- "name": "_callOptionalReturn",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3298,
- "src": "2480:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_bytes_memory_ptr_$returns$__$",
- "typeString": "function (contract IERC20,bytes memory)"
- }
- },
- "id": 3258,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2480:97:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3259,
- "nodeType": "ExpressionStatement",
- "src": "2480:97:7"
- }
- ]
- },
- "documentation": null,
- "id": 3261,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "safeDecreaseAllowance",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3231,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3226,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3261,
- "src": "2287:12:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- "typeName": {
- "contractScope": null,
- "id": 3225,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "2287:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3228,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3261,
- "src": "2301:15:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 3227,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2301:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3230,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3261,
- "src": "2318:13:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 3229,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2318:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2286:46:7"
- },
- "returnParameters": {
- "id": 3232,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2342:0:7"
- },
- "scope": 3299,
- "src": "2256:328:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 3297,
- "nodeType": "Block",
- "src": "3037:681:7",
- "statements": [
- {
- "assignments": [3270],
- "declarations": [
- {
- "constant": false,
- "id": 3270,
- "mutability": "mutable",
- "name": "returndata",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3297,
- "src": "3386:23:7",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3269,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3386:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 3279,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3276,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3266,
- "src": "3440:4:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564",
- "id": 3277,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3446:34:7",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b",
- "typeString": "literal_string \"SafeERC20: low-level call failed\""
- },
- "value": "SafeERC20: low-level call failed"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b",
- "typeString": "literal_string \"SafeERC20: low-level call failed\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3273,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3264,
- "src": "3420:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- ],
- "id": 3272,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "3412:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 3271,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "3412:7:7",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 3274,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3412:14:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 3275,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "functionCall",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3390,
- "src": "3412:27:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$",
- "typeString": "function (address,bytes memory,string memory) returns (bytes memory)"
- }
- },
- "id": 3278,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3412:69:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "3386:95:7"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 3283,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 3280,
- "name": "returndata",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3270,
- "src": "3495:10:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 3281,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "3495:17:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 3282,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3515:1:7",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "3495:21:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 3296,
- "nodeType": "IfStatement",
- "src": "3491:221:7",
- "trueBody": {
- "id": 3295,
- "nodeType": "Block",
- "src": "3518:194:7",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 3287,
- "name": "returndata",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3270,
- "src": "3635:10:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "id": 3289,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "3648:4:7",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bool_$",
- "typeString": "type(bool)"
- },
- "typeName": {
- "id": 3288,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "3648:4:7",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- }
- ],
- "id": 3290,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "3647:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bool_$",
- "typeString": "type(bool)"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_type$_t_bool_$",
- "typeString": "type(bool)"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 3285,
- "name": "abi",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -1,
- "src": "3624:3:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_abi",
- "typeString": "abi"
- }
- },
- "id": 3286,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "memberName": "decode",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "3624:10:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
- "typeString": "function () pure"
- }
- },
- "id": 3291,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3624:30:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564",
- "id": 3292,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3656:44:7",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd",
- "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\""
- },
- "value": "SafeERC20: ERC20 operation did not succeed"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd",
- "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\""
- }
- ],
- "id": 3284,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "3616:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 3293,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3616:85:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 3294,
- "nodeType": "ExpressionStatement",
- "src": "3616:85:7"
- }
- ]
- }
- }
- ]
- },
- "documentation": {
- "id": 3262,
- "nodeType": "StructuredDocumentation",
- "src": "2590:372:7",
- "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."
- },
- "id": 3298,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_callOptionalReturn",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 3267,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 3264,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3298,
- "src": "2996:12:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- "typeName": {
- "contractScope": null,
- "id": 3263,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "2996:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 3266,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 3298,
- "src": "3010:17:7",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 3265,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3010:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2995:33:7"
- },
- "returnParameters": {
- "id": 3268,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "3037:0:7"
- },
- "scope": 3299,
- "src": "2967:751:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- }
- ],
- "scope": 3300,
- "src": "616:3104:7"
- }
- ],
- "src": "33:3688:7"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "exportedSymbols": {
- "SafeERC20": [3299]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"]
- },
- "id": 3088,
- "name": "PragmaDirective",
- "src": "33:31:7"
- },
- {
- "attributes": {
- "SourceUnit": 3087,
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "./IERC20.sol",
- "scope": 3300,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 3089,
- "name": "ImportDirective",
- "src": "66:22:7"
- },
- {
- "attributes": {
- "SourceUnit": 2506,
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "../../math/SafeMath.sol",
- "scope": 3300,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 3090,
- "name": "ImportDirective",
- "src": "89:33:7"
- },
- {
- "attributes": {
- "SourceUnit": 3596,
- "absolutePath": "@openzeppelin/contracts/utils/Address.sol",
- "file": "../../utils/Address.sol",
- "scope": 3300,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 3091,
- "name": "ImportDirective",
- "src": "123:33:7"
- },
- {
- "attributes": {
- "abstract": false,
- "baseContracts": [null],
- "contractDependencies": [null],
- "contractKind": "library",
- "fullyImplemented": true,
- "linearizedBaseContracts": [3299],
- "name": "SafeERC20",
- "scope": 3300
- },
- "children": [
- {
- "attributes": {
- "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."
- },
- "id": 3092,
- "name": "StructuredDocumentation",
- "src": "158:457:7"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "SafeMath",
- "referencedDeclaration": 2505,
- "type": "library SafeMath"
- },
- "id": 3093,
- "name": "UserDefinedTypeName",
- "src": "646:8:7"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3094,
- "name": "ElementaryTypeName",
- "src": "659:7:7"
- }
- ],
- "id": 3095,
- "name": "UsingForDirective",
- "src": "640:27:7"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "Address",
- "referencedDeclaration": 3595,
- "type": "library Address"
- },
- "id": 3096,
- "name": "UserDefinedTypeName",
- "src": "678:7:7"
- },
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3097,
- "name": "ElementaryTypeName",
- "src": "690:7:7"
- }
- ],
- "id": 3098,
- "name": "UsingForDirective",
- "src": "672:26:7"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "safeTransfer",
- "overrides": null,
- "scope": 3299,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token",
- "overrides": null,
- "scope": 3120,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "contract IERC20",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 3099,
- "name": "UserDefinedTypeName",
- "src": "726:6:7"
- }
- ],
- "id": 3100,
- "name": "VariableDeclaration",
- "src": "726:12:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "to",
- "overrides": null,
- "scope": 3120,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3101,
- "name": "ElementaryTypeName",
- "src": "740:7:7"
- }
- ],
- "id": 3102,
- "name": "VariableDeclaration",
- "src": "740:10:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 3120,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3103,
- "name": "ElementaryTypeName",
- "src": "752:7:7"
- }
- ],
- "id": 3104,
- "name": "VariableDeclaration",
- "src": "752:13:7"
- }
- ],
- "id": 3105,
- "name": "ParameterList",
- "src": "725:41:7"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3106,
- "name": "ParameterList",
- "src": "776:0:7"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3298,
- "type": "function (contract IERC20,bytes memory)",
- "value": "_callOptionalReturn"
- },
- "id": 3107,
- "name": "Identifier",
- "src": "786:19:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3100,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3108,
- "name": "Identifier",
- "src": "806:5:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "member_name": "encodeWithSelector",
- "referencedDeclaration": null,
- "type": "function (bytes4) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -1,
- "type": "abi",
- "value": "abi"
- },
- "id": 3109,
- "name": "Identifier",
- "src": "813:3:7"
- }
- ],
- "id": 3110,
- "name": "MemberAccess",
- "src": "813:22:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "selector",
- "referencedDeclaration": null,
- "type": "bytes4"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "transfer",
- "referencedDeclaration": 3035,
- "type": "function (address,uint256) external returns (bool)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3100,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3111,
- "name": "Identifier",
- "src": "836:5:7"
- }
- ],
- "id": 3112,
- "name": "MemberAccess",
- "src": "836:14:7"
- }
- ],
- "id": 3113,
- "name": "MemberAccess",
- "src": "836:23:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3102,
- "type": "address",
- "value": "to"
- },
- "id": 3114,
- "name": "Identifier",
- "src": "861:2:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3104,
- "type": "uint256",
- "value": "value"
- },
- "id": 3115,
- "name": "Identifier",
- "src": "865:5:7"
- }
- ],
- "id": 3116,
- "name": "FunctionCall",
- "src": "813:58:7"
- }
- ],
- "id": 3117,
- "name": "FunctionCall",
- "src": "786:86:7"
- }
- ],
- "id": 3118,
- "name": "ExpressionStatement",
- "src": "786:86:7"
- }
- ],
- "id": 3119,
- "name": "Block",
- "src": "776:103:7"
- }
- ],
- "id": 3120,
- "name": "FunctionDefinition",
- "src": "704:175:7"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "safeTransferFrom",
- "overrides": null,
- "scope": 3299,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token",
- "overrides": null,
- "scope": 3145,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "contract IERC20",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 3121,
- "name": "UserDefinedTypeName",
- "src": "911:6:7"
- }
- ],
- "id": 3122,
- "name": "VariableDeclaration",
- "src": "911:12:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "from",
- "overrides": null,
- "scope": 3145,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3123,
- "name": "ElementaryTypeName",
- "src": "925:7:7"
- }
- ],
- "id": 3124,
- "name": "VariableDeclaration",
- "src": "925:12:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "to",
- "overrides": null,
- "scope": 3145,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3125,
- "name": "ElementaryTypeName",
- "src": "939:7:7"
- }
- ],
- "id": 3126,
- "name": "VariableDeclaration",
- "src": "939:10:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 3145,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3127,
- "name": "ElementaryTypeName",
- "src": "951:7:7"
- }
- ],
- "id": 3128,
- "name": "VariableDeclaration",
- "src": "951:13:7"
- }
- ],
- "id": 3129,
- "name": "ParameterList",
- "src": "910:55:7"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3130,
- "name": "ParameterList",
- "src": "975:0:7"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3298,
- "type": "function (contract IERC20,bytes memory)",
- "value": "_callOptionalReturn"
- },
- "id": 3131,
- "name": "Identifier",
- "src": "985:19:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3122,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3132,
- "name": "Identifier",
- "src": "1005:5:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "member_name": "encodeWithSelector",
- "referencedDeclaration": null,
- "type": "function (bytes4) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -1,
- "type": "abi",
- "value": "abi"
- },
- "id": 3133,
- "name": "Identifier",
- "src": "1012:3:7"
- }
- ],
- "id": 3134,
- "name": "MemberAccess",
- "src": "1012:22:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "selector",
- "referencedDeclaration": null,
- "type": "bytes4"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "transferFrom",
- "referencedDeclaration": 3067,
- "type": "function (address,address,uint256) external returns (bool)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3122,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3135,
- "name": "Identifier",
- "src": "1035:5:7"
- }
- ],
- "id": 3136,
- "name": "MemberAccess",
- "src": "1035:18:7"
- }
- ],
- "id": 3137,
- "name": "MemberAccess",
- "src": "1035:27:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3124,
- "type": "address",
- "value": "from"
- },
- "id": 3138,
- "name": "Identifier",
- "src": "1064:4:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3126,
- "type": "address",
- "value": "to"
- },
- "id": 3139,
- "name": "Identifier",
- "src": "1070:2:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3128,
- "type": "uint256",
- "value": "value"
- },
- "id": 3140,
- "name": "Identifier",
- "src": "1074:5:7"
- }
- ],
- "id": 3141,
- "name": "FunctionCall",
- "src": "1012:68:7"
- }
- ],
- "id": 3142,
- "name": "FunctionCall",
- "src": "985:96:7"
- }
- ],
- "id": 3143,
- "name": "ExpressionStatement",
- "src": "985:96:7"
- }
- ],
- "id": 3144,
- "name": "Block",
- "src": "975:113:7"
- }
- ],
- "id": 3145,
- "name": "FunctionDefinition",
- "src": "885:203:7"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "safeApprove",
- "overrides": null,
- "scope": 3299,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."
- },
- "id": 3146,
- "name": "StructuredDocumentation",
- "src": "1094:249:7"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token",
- "overrides": null,
- "scope": 3188,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "contract IERC20",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 3147,
- "name": "UserDefinedTypeName",
- "src": "1369:6:7"
- }
- ],
- "id": 3148,
- "name": "VariableDeclaration",
- "src": "1369:12:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 3188,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3149,
- "name": "ElementaryTypeName",
- "src": "1383:7:7"
- }
- ],
- "id": 3150,
- "name": "VariableDeclaration",
- "src": "1383:15:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 3188,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3151,
- "name": "ElementaryTypeName",
- "src": "1400:7:7"
- }
- ],
- "id": 3152,
- "name": "VariableDeclaration",
- "src": "1400:13:7"
- }
- ],
- "id": 3153,
- "name": "ParameterList",
- "src": "1368:46:7"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3154,
- "name": "ParameterList",
- "src": "1424:0:7"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25",
- "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 3155,
- "name": "Identifier",
- "src": "1704:7:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "||",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3152,
- "type": "uint256",
- "value": "value"
- },
- "id": 3156,
- "name": "Identifier",
- "src": "1713:5:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 3157,
- "name": "Literal",
- "src": "1722:1:7"
- }
- ],
- "id": 3158,
- "name": "BinaryOperation",
- "src": "1713:10:7"
- }
- ],
- "id": 3159,
- "name": "TupleExpression",
- "src": "1712:12:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "allowance",
- "referencedDeclaration": 3045,
- "type": "function (address,address) view external returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 3148,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3160,
- "name": "Identifier",
- "src": "1729:5:7"
- }
- ],
- "id": 3161,
- "name": "MemberAccess",
- "src": "1729:15:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 3162,
- "name": "ElementaryTypeName",
- "src": "1745:7:7"
- }
- ],
- "id": 3163,
- "name": "ElementaryTypeNameExpression",
- "src": "1745:7:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": -28,
- "type": "library SafeERC20",
- "value": "this"
- },
- "id": 3164,
- "name": "Identifier",
- "src": "1753:4:7"
- }
- ],
- "id": 3165,
- "name": "FunctionCall",
- "src": "1745:13:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3150,
- "type": "address",
- "value": "spender"
- },
- "id": 3166,
- "name": "Identifier",
- "src": "1760:7:7"
- }
- ],
- "id": 3167,
- "name": "FunctionCall",
- "src": "1729:39:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 3168,
- "name": "Literal",
- "src": "1772:1:7"
- }
- ],
- "id": 3169,
- "name": "BinaryOperation",
- "src": "1729:44:7"
- }
- ],
- "id": 3170,
- "name": "TupleExpression",
- "src": "1728:46:7"
- }
- ],
- "id": 3171,
- "name": "BinaryOperation",
- "src": "1712:62:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"",
- "value": "SafeERC20: approve from non-zero to non-zero allowance"
- },
- "id": 3172,
- "name": "Literal",
- "src": "1788:56:7"
- }
- ],
- "id": 3173,
- "name": "FunctionCall",
- "src": "1704:150:7"
- }
- ],
- "id": 3174,
- "name": "ExpressionStatement",
- "src": "1704:150:7"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3298,
- "type": "function (contract IERC20,bytes memory)",
- "value": "_callOptionalReturn"
- },
- "id": 3175,
- "name": "Identifier",
- "src": "1864:19:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3148,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3176,
- "name": "Identifier",
- "src": "1884:5:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "member_name": "encodeWithSelector",
- "referencedDeclaration": null,
- "type": "function (bytes4) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -1,
- "type": "abi",
- "value": "abi"
- },
- "id": 3177,
- "name": "Identifier",
- "src": "1891:3:7"
- }
- ],
- "id": 3178,
- "name": "MemberAccess",
- "src": "1891:22:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "selector",
- "referencedDeclaration": null,
- "type": "bytes4"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "approve",
- "referencedDeclaration": 3055,
- "type": "function (address,uint256) external returns (bool)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3148,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3179,
- "name": "Identifier",
- "src": "1914:5:7"
- }
- ],
- "id": 3180,
- "name": "MemberAccess",
- "src": "1914:13:7"
- }
- ],
- "id": 3181,
- "name": "MemberAccess",
- "src": "1914:22:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3150,
- "type": "address",
- "value": "spender"
- },
- "id": 3182,
- "name": "Identifier",
- "src": "1938:7:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3152,
- "type": "uint256",
- "value": "value"
- },
- "id": 3183,
- "name": "Identifier",
- "src": "1947:5:7"
- }
- ],
- "id": 3184,
- "name": "FunctionCall",
- "src": "1891:62:7"
- }
- ],
- "id": 3185,
- "name": "FunctionCall",
- "src": "1864:90:7"
- }
- ],
- "id": 3186,
- "name": "ExpressionStatement",
- "src": "1864:90:7"
- }
- ],
- "id": 3187,
- "name": "Block",
- "src": "1424:537:7"
- }
- ],
- "id": 3188,
- "name": "FunctionDefinition",
- "src": "1348:613:7"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "safeIncreaseAllowance",
- "overrides": null,
- "scope": 3299,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token",
- "overrides": null,
- "scope": 3224,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "contract IERC20",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 3189,
- "name": "UserDefinedTypeName",
- "src": "1998:6:7"
- }
- ],
- "id": 3190,
- "name": "VariableDeclaration",
- "src": "1998:12:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 3224,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3191,
- "name": "ElementaryTypeName",
- "src": "2012:7:7"
- }
- ],
- "id": 3192,
- "name": "VariableDeclaration",
- "src": "2012:15:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 3224,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3193,
- "name": "ElementaryTypeName",
- "src": "2029:7:7"
- }
- ],
- "id": 3194,
- "name": "VariableDeclaration",
- "src": "2029:13:7"
- }
- ],
- "id": 3195,
- "name": "ParameterList",
- "src": "1997:46:7"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3196,
- "name": "ParameterList",
- "src": "2053:0:7"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [3198]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "newAllowance",
- "overrides": null,
- "scope": 3223,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3197,
- "name": "ElementaryTypeName",
- "src": "2063:7:7"
- }
- ],
- "id": 3198,
- "name": "VariableDeclaration",
- "src": "2063:20:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 2332,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "allowance",
- "referencedDeclaration": 3045,
- "type": "function (address,address) view external returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3190,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3199,
- "name": "Identifier",
- "src": "2086:5:7"
- }
- ],
- "id": 3200,
- "name": "MemberAccess",
- "src": "2086:15:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 3201,
- "name": "ElementaryTypeName",
- "src": "2102:7:7"
- }
- ],
- "id": 3202,
- "name": "ElementaryTypeNameExpression",
- "src": "2102:7:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "library SafeERC20",
- "value": "this"
- },
- "id": 3203,
- "name": "Identifier",
- "src": "2110:4:7"
- }
- ],
- "id": 3204,
- "name": "FunctionCall",
- "src": "2102:13:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3192,
- "type": "address",
- "value": "spender"
- },
- "id": 3205,
- "name": "Identifier",
- "src": "2117:7:7"
- }
- ],
- "id": 3206,
- "name": "FunctionCall",
- "src": "2086:39:7"
- }
- ],
- "id": 3207,
- "name": "MemberAccess",
- "src": "2086:43:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3194,
- "type": "uint256",
- "value": "value"
- },
- "id": 3208,
- "name": "Identifier",
- "src": "2130:5:7"
- }
- ],
- "id": 3209,
- "name": "FunctionCall",
- "src": "2086:50:7"
- }
- ],
- "id": 3210,
- "name": "VariableDeclarationStatement",
- "src": "2063:73:7"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3298,
- "type": "function (contract IERC20,bytes memory)",
- "value": "_callOptionalReturn"
- },
- "id": 3211,
- "name": "Identifier",
- "src": "2146:19:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3190,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3212,
- "name": "Identifier",
- "src": "2166:5:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "member_name": "encodeWithSelector",
- "referencedDeclaration": null,
- "type": "function (bytes4) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -1,
- "type": "abi",
- "value": "abi"
- },
- "id": 3213,
- "name": "Identifier",
- "src": "2173:3:7"
- }
- ],
- "id": 3214,
- "name": "MemberAccess",
- "src": "2173:22:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "selector",
- "referencedDeclaration": null,
- "type": "bytes4"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "approve",
- "referencedDeclaration": 3055,
- "type": "function (address,uint256) external returns (bool)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3190,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3215,
- "name": "Identifier",
- "src": "2196:5:7"
- }
- ],
- "id": 3216,
- "name": "MemberAccess",
- "src": "2196:13:7"
- }
- ],
- "id": 3217,
- "name": "MemberAccess",
- "src": "2196:22:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3192,
- "type": "address",
- "value": "spender"
- },
- "id": 3218,
- "name": "Identifier",
- "src": "2220:7:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3198,
- "type": "uint256",
- "value": "newAllowance"
- },
- "id": 3219,
- "name": "Identifier",
- "src": "2229:12:7"
- }
- ],
- "id": 3220,
- "name": "FunctionCall",
- "src": "2173:69:7"
- }
- ],
- "id": 3221,
- "name": "FunctionCall",
- "src": "2146:97:7"
- }
- ],
- "id": 3222,
- "name": "ExpressionStatement",
- "src": "2146:97:7"
- }
- ],
- "id": 3223,
- "name": "Block",
- "src": "2053:197:7"
- }
- ],
- "id": 3224,
- "name": "FunctionDefinition",
- "src": "1967:283:7"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "safeDecreaseAllowance",
- "overrides": null,
- "scope": 3299,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token",
- "overrides": null,
- "scope": 3261,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "contract IERC20",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 3225,
- "name": "UserDefinedTypeName",
- "src": "2287:6:7"
- }
- ],
- "id": 3226,
- "name": "VariableDeclaration",
- "src": "2287:12:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 3261,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 3227,
- "name": "ElementaryTypeName",
- "src": "2301:7:7"
- }
- ],
- "id": 3228,
- "name": "VariableDeclaration",
- "src": "2301:15:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 3261,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3229,
- "name": "ElementaryTypeName",
- "src": "2318:7:7"
- }
- ],
- "id": 3230,
- "name": "VariableDeclaration",
- "src": "2318:13:7"
- }
- ],
- "id": 3231,
- "name": "ParameterList",
- "src": "2286:46:7"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3232,
- "name": "ParameterList",
- "src": "2342:0:7"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [3234]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "newAllowance",
- "overrides": null,
- "scope": 3260,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 3233,
- "name": "ElementaryTypeName",
- "src": "2352:7:7"
- }
- ],
- "id": 3234,
- "name": "VariableDeclaration",
- "src": "2352:20:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a",
- "typeString": "literal_string \"SafeERC20: decreased allowance below zero\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2456,
- "type": "function (uint256,uint256,string memory) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "allowance",
- "referencedDeclaration": 3045,
- "type": "function (address,address) view external returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3226,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3235,
- "name": "Identifier",
- "src": "2375:5:7"
- }
- ],
- "id": 3236,
- "name": "MemberAccess",
- "src": "2375:15:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 3237,
- "name": "ElementaryTypeName",
- "src": "2391:7:7"
- }
- ],
- "id": 3238,
- "name": "ElementaryTypeNameExpression",
- "src": "2391:7:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "library SafeERC20",
- "value": "this"
- },
- "id": 3239,
- "name": "Identifier",
- "src": "2399:4:7"
- }
- ],
- "id": 3240,
- "name": "FunctionCall",
- "src": "2391:13:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3228,
- "type": "address",
- "value": "spender"
- },
- "id": 3241,
- "name": "Identifier",
- "src": "2406:7:7"
- }
- ],
- "id": 3242,
- "name": "FunctionCall",
- "src": "2375:39:7"
- }
- ],
- "id": 3243,
- "name": "MemberAccess",
- "src": "2375:43:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3230,
- "type": "uint256",
- "value": "value"
- },
- "id": 3244,
- "name": "Identifier",
- "src": "2419:5:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeERC20: decreased allowance below zero\"",
- "value": "SafeERC20: decreased allowance below zero"
- },
- "id": 3245,
- "name": "Literal",
- "src": "2426:43:7"
- }
- ],
- "id": 3246,
- "name": "FunctionCall",
- "src": "2375:95:7"
- }
- ],
- "id": 3247,
- "name": "VariableDeclarationStatement",
- "src": "2352:118:7"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- },
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3298,
- "type": "function (contract IERC20,bytes memory)",
- "value": "_callOptionalReturn"
- },
- "id": 3248,
- "name": "Identifier",
- "src": "2480:19:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3226,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3249,
- "name": "Identifier",
- "src": "2500:5:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes4",
- "typeString": "bytes4"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "member_name": "encodeWithSelector",
- "referencedDeclaration": null,
- "type": "function (bytes4) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -1,
- "type": "abi",
- "value": "abi"
- },
- "id": 3250,
- "name": "Identifier",
- "src": "2507:3:7"
- }
- ],
- "id": 3251,
- "name": "MemberAccess",
- "src": "2507:22:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "selector",
- "referencedDeclaration": null,
- "type": "bytes4"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "approve",
- "referencedDeclaration": 3055,
- "type": "function (address,uint256) external returns (bool)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3226,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3252,
- "name": "Identifier",
- "src": "2530:5:7"
- }
- ],
- "id": 3253,
- "name": "MemberAccess",
- "src": "2530:13:7"
- }
- ],
- "id": 3254,
- "name": "MemberAccess",
- "src": "2530:22:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3228,
- "type": "address",
- "value": "spender"
- },
- "id": 3255,
- "name": "Identifier",
- "src": "2554:7:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3234,
- "type": "uint256",
- "value": "newAllowance"
- },
- "id": 3256,
- "name": "Identifier",
- "src": "2563:12:7"
- }
- ],
- "id": 3257,
- "name": "FunctionCall",
- "src": "2507:69:7"
- }
- ],
- "id": 3258,
- "name": "FunctionCall",
- "src": "2480:97:7"
- }
- ],
- "id": 3259,
- "name": "ExpressionStatement",
- "src": "2480:97:7"
- }
- ],
- "id": 3260,
- "name": "Block",
- "src": "2342:242:7"
- }
- ],
- "id": 3261,
- "name": "FunctionDefinition",
- "src": "2256:328:7"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_callOptionalReturn",
- "overrides": null,
- "scope": 3299,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."
- },
- "id": 3262,
- "name": "StructuredDocumentation",
- "src": "2590:372:7"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token",
- "overrides": null,
- "scope": 3298,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "contract IERC20",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 3263,
- "name": "UserDefinedTypeName",
- "src": "2996:6:7"
- }
- ],
- "id": 3264,
- "name": "VariableDeclaration",
- "src": "2996:12:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 3298,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3265,
- "name": "ElementaryTypeName",
- "src": "3010:5:7"
- }
- ],
- "id": 3266,
- "name": "VariableDeclaration",
- "src": "3010:17:7"
- }
- ],
- "id": 3267,
- "name": "ParameterList",
- "src": "2995:33:7"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 3268,
- "name": "ParameterList",
- "src": "3037:0:7"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [3270]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "returndata",
- "overrides": null,
- "scope": 3297,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 3269,
- "name": "ElementaryTypeName",
- "src": "3386:5:7"
- }
- ],
- "id": 3270,
- "name": "VariableDeclaration",
- "src": "3386:23:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b",
- "typeString": "literal_string \"SafeERC20: low-level call failed\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "functionCall",
- "referencedDeclaration": 3390,
- "type": "function (address,bytes memory,string memory) returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 3271,
- "name": "ElementaryTypeName",
- "src": "3412:7:7"
- }
- ],
- "id": 3272,
- "name": "ElementaryTypeNameExpression",
- "src": "3412:7:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3264,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 3273,
- "name": "Identifier",
- "src": "3420:5:7"
- }
- ],
- "id": 3274,
- "name": "FunctionCall",
- "src": "3412:14:7"
- }
- ],
- "id": 3275,
- "name": "MemberAccess",
- "src": "3412:27:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3266,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 3276,
- "name": "Identifier",
- "src": "3440:4:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeERC20: low-level call failed\"",
- "value": "SafeERC20: low-level call failed"
- },
- "id": 3277,
- "name": "Literal",
- "src": "3446:34:7"
- }
- ],
- "id": 3278,
- "name": "FunctionCall",
- "src": "3412:69:7"
- }
- ],
- "id": 3279,
- "name": "VariableDeclarationStatement",
- "src": "3386:95:7"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3270,
- "type": "bytes memory",
- "value": "returndata"
- },
- "id": 3280,
- "name": "Identifier",
- "src": "3495:10:7"
- }
- ],
- "id": 3281,
- "name": "MemberAccess",
- "src": "3495:17:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 3282,
- "name": "Literal",
- "src": "3515:1:7"
- }
- ],
- "id": 3283,
- "name": "BinaryOperation",
- "src": "3495:21:7"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd",
- "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 3284,
- "name": "Identifier",
- "src": "3616:7:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bool",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- },
- {
- "typeIdentifier": "t_type$_t_bool_$",
- "typeString": "type(bool)"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "member_name": "decode",
- "referencedDeclaration": null,
- "type": "function () pure"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -1,
- "type": "abi",
- "value": "abi"
- },
- "id": 3285,
- "name": "Identifier",
- "src": "3624:3:7"
- }
- ],
- "id": 3286,
- "name": "MemberAccess",
- "src": "3624:10:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3270,
- "type": "bytes memory",
- "value": "returndata"
- },
- "id": 3287,
- "name": "Identifier",
- "src": "3635:10:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bool)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bool)"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": null
- },
- "id": 3288,
- "name": "ElementaryTypeName",
- "src": "3648:4:7"
- }
- ],
- "id": 3289,
- "name": "ElementaryTypeNameExpression",
- "src": "3648:4:7"
- }
- ],
- "id": 3290,
- "name": "TupleExpression",
- "src": "3647:6:7"
- }
- ],
- "id": 3291,
- "name": "FunctionCall",
- "src": "3624:30:7"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeERC20: ERC20 operation did not succeed\"",
- "value": "SafeERC20: ERC20 operation did not succeed"
- },
- "id": 3292,
- "name": "Literal",
- "src": "3656:44:7"
- }
- ],
- "id": 3293,
- "name": "FunctionCall",
- "src": "3616:85:7"
- }
- ],
- "id": 3294,
- "name": "ExpressionStatement",
- "src": "3616:85:7"
- }
- ],
- "id": 3295,
- "name": "Block",
- "src": "3518:194:7"
- }
- ],
- "id": 3296,
- "name": "IfStatement",
- "src": "3491:221:7"
- }
- ],
- "id": 3297,
- "name": "Block",
- "src": "3037:681:7"
- }
- ],
- "id": 3298,
- "name": "FunctionDefinition",
- "src": "2967:751:7"
- }
- ],
- "id": 3299,
- "name": "ContractDefinition",
- "src": "616:3104:7"
- }
- ],
- "id": 3300,
- "name": "SourceUnit",
- "src": "33:3688:7"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.924Z",
- "devdoc": {
- "details": "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.",
- "kind": "dev",
- "methods": {},
- "title": "SafeERC20",
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/SafeMath.json b/packages/bridge-sdk/contracts/SafeMath.json
deleted file mode 100644
index 8a23589..0000000
--- a/packages/bridge-sdk/contracts/SafeMath.json
+++ /dev/null
@@ -1,9420 +0,0 @@
-{
- "contractName": "SafeMath",
- "abi": [],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]}},\"version\":1}",
- "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122055f9260f387617f8a3c61d823235142789395d0039759e4f776f3b7674fd13ce64736f6c634300060c0033",
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122055f9260f387617f8a3c61d823235142789395d0039759e4f776f3b7674fd13ce64736f6c634300060c0033",
- "immutableReferences": {},
- "sourceMap": "630:6594:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
- "deployedSourceMap": "630:6594:4:-:0;;;;;;;;",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n",
- "sourcePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "ast": {
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "exportedSymbols": {
- "SafeMath": [2505]
- },
- "id": 2506,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 2152,
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"],
- "nodeType": "PragmaDirective",
- "src": "33:31:4"
- },
- {
- "abstract": false,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "library",
- "documentation": {
- "id": 2153,
- "nodeType": "StructuredDocumentation",
- "src": "66:563:4",
- "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."
- },
- "fullyImplemented": true,
- "id": 2505,
- "linearizedBaseContracts": [2505],
- "name": "SafeMath",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": {
- "id": 2183,
- "nodeType": "Block",
- "src": "865:98:4",
- "statements": [
- {
- "assignments": [2166],
- "declarations": [
- {
- "constant": false,
- "id": 2166,
- "mutability": "mutable",
- "name": "c",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2183,
- "src": "875:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2165,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "875:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 2170,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2169,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2167,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2156,
- "src": "887:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2168,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2158,
- "src": "891:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "887:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "875:17:4"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2173,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2171,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2166,
- "src": "906:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2172,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2156,
- "src": "910:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "906:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 2178,
- "nodeType": "IfStatement",
- "src": "902:28:4",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 2174,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "921:5:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2175,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "928:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 2176,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "920:10:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 2164,
- "id": 2177,
- "nodeType": "Return",
- "src": "913:17:4"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2179,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "948:4:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "id": 2180,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2166,
- "src": "954:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 2181,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "947:9:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 2164,
- "id": 2182,
- "nodeType": "Return",
- "src": "940:16:4"
- }
- ]
- },
- "documentation": {
- "id": 2154,
- "nodeType": "StructuredDocumentation",
- "src": "653:131:4",
- "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 2184,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "tryAdd",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2159,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2156,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2184,
- "src": "805:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2155,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "805:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2158,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2184,
- "src": "816:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2157,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "816:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "804:22:4"
- },
- "returnParameters": {
- "id": 2164,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2161,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2184,
- "src": "850:4:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2160,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "850:4:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2163,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2184,
- "src": "856:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2162,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "856:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "849:15:4"
- },
- "scope": 2505,
- "src": "789:174:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2210,
- "nodeType": "Block",
- "src": "1185:75:4",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2198,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2196,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2189,
- "src": "1199:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2197,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2187,
- "src": "1203:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1199:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 2203,
- "nodeType": "IfStatement",
- "src": "1195:28:4",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 2199,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1214:5:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2200,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1221:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 2201,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1213:10:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 2195,
- "id": 2202,
- "nodeType": "Return",
- "src": "1206:17:4"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2204,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1241:4:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2207,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2205,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2187,
- "src": "1247:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2206,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2189,
- "src": "1251:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1247:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 2208,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1240:13:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 2195,
- "id": 2209,
- "nodeType": "Return",
- "src": "1233:20:4"
- }
- ]
- },
- "documentation": {
- "id": 2185,
- "nodeType": "StructuredDocumentation",
- "src": "969:135:4",
- "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 2211,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "trySub",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2190,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2187,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2211,
- "src": "1125:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2186,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1125:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2189,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2211,
- "src": "1136:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2188,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1136:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1124:22:4"
- },
- "returnParameters": {
- "id": 2195,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2192,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2211,
- "src": "1170:4:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2191,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "1170:4:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2194,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2211,
- "src": "1176:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2193,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1176:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1169:15:4"
- },
- "scope": 2505,
- "src": "1109:151:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2251,
- "nodeType": "Block",
- "src": "1484:359:4",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2225,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2223,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2214,
- "src": "1716:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2224,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1721:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1716:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 2230,
- "nodeType": "IfStatement",
- "src": "1712:28:4",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2226,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1732:4:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2227,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1738:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 2228,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1731:9:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 2222,
- "id": 2229,
- "nodeType": "Return",
- "src": "1724:16:4"
- }
- },
- {
- "assignments": [2232],
- "declarations": [
- {
- "constant": false,
- "id": 2232,
- "mutability": "mutable",
- "name": "c",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2251,
- "src": "1750:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2231,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1750:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 2236,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2235,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2233,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2214,
- "src": "1762:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2234,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2216,
- "src": "1766:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1762:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "1750:17:4"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2241,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2239,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2237,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2232,
- "src": "1781:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2238,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2214,
- "src": "1785:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1781:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2240,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2216,
- "src": "1790:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1781:10:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 2246,
- "nodeType": "IfStatement",
- "src": "1777:33:4",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 2242,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1801:5:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2243,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1808:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 2244,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1800:10:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 2222,
- "id": 2245,
- "nodeType": "Return",
- "src": "1793:17:4"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2247,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1828:4:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "id": 2248,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2232,
- "src": "1834:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 2249,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1827:9:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 2222,
- "id": 2250,
- "nodeType": "Return",
- "src": "1820:16:4"
- }
- ]
- },
- "documentation": {
- "id": 2212,
- "nodeType": "StructuredDocumentation",
- "src": "1266:137:4",
- "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 2252,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "tryMul",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2217,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2214,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2252,
- "src": "1424:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2213,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1424:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2216,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2252,
- "src": "1435:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2215,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1435:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1423:22:4"
- },
- "returnParameters": {
- "id": 2222,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2219,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2252,
- "src": "1469:4:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2218,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "1469:4:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2221,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2252,
- "src": "1475:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2220,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1475:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1468:15:4"
- },
- "scope": 2505,
- "src": "1408:435:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2278,
- "nodeType": "Block",
- "src": "2068:76:4",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2266,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2264,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2257,
- "src": "2082:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2265,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2087:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2082:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 2271,
- "nodeType": "IfStatement",
- "src": "2078:29:4",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 2267,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2098:5:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2268,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2105:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 2269,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "2097:10:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 2263,
- "id": 2270,
- "nodeType": "Return",
- "src": "2090:17:4"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2272,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2125:4:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2275,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2273,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2255,
- "src": "2131:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2274,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2257,
- "src": "2135:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2131:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 2276,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "2124:13:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 2263,
- "id": 2277,
- "nodeType": "Return",
- "src": "2117:20:4"
- }
- ]
- },
- "documentation": {
- "id": 2253,
- "nodeType": "StructuredDocumentation",
- "src": "1849:138:4",
- "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"
- },
- "id": 2279,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "tryDiv",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2258,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2255,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2279,
- "src": "2008:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2254,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2008:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2257,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2279,
- "src": "2019:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2256,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2019:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2007:22:4"
- },
- "returnParameters": {
- "id": 2263,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2260,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2279,
- "src": "2053:4:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2259,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "2053:4:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2262,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2279,
- "src": "2059:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2261,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2059:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2052:15:4"
- },
- "scope": 2505,
- "src": "1992:152:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2305,
- "nodeType": "Block",
- "src": "2379:76:4",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2293,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2291,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2284,
- "src": "2393:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2292,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2398:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2393:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 2298,
- "nodeType": "IfStatement",
- "src": "2389:29:4",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 2294,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2409:5:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2295,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2416:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 2296,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "2408:10:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 2290,
- "id": 2297,
- "nodeType": "Return",
- "src": "2401:17:4"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 2299,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2436:4:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2302,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2300,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2282,
- "src": "2442:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "%",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2301,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2284,
- "src": "2446:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2442:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 2303,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "2435:13:4",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 2290,
- "id": 2304,
- "nodeType": "Return",
- "src": "2428:20:4"
- }
- ]
- },
- "documentation": {
- "id": 2280,
- "nodeType": "StructuredDocumentation",
- "src": "2150:148:4",
- "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"
- },
- "id": 2306,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "tryMod",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2285,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2282,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2306,
- "src": "2319:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2281,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2319:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2284,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2306,
- "src": "2330:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2283,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2330:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2318:22:4"
- },
- "returnParameters": {
- "id": 2290,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2287,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2306,
- "src": "2364:4:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 2286,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "2364:4:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2289,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2306,
- "src": "2370:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2288,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2370:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2363:15:4"
- },
- "scope": 2505,
- "src": "2303:152:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2331,
- "nodeType": "Block",
- "src": "2757:108:4",
- "statements": [
- {
- "assignments": [2317],
- "declarations": [
- {
- "constant": false,
- "id": 2317,
- "mutability": "mutable",
- "name": "c",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2331,
- "src": "2767:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2316,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2767:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 2321,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2320,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2318,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2309,
- "src": "2779:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2319,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2311,
- "src": "2783:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2779:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2767:17:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2325,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2323,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2317,
- "src": "2802:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2324,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2309,
- "src": "2807:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2802:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77",
- "id": 2326,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2810:29:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a",
- "typeString": "literal_string \"SafeMath: addition overflow\""
- },
- "value": "SafeMath: addition overflow"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a",
- "typeString": "literal_string \"SafeMath: addition overflow\""
- }
- ],
- "id": 2322,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "2794:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2327,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2794:46:4",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2328,
- "nodeType": "ExpressionStatement",
- "src": "2794:46:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2329,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2317,
- "src": "2857:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2315,
- "id": 2330,
- "nodeType": "Return",
- "src": "2850:8:4"
- }
- ]
- },
- "documentation": {
- "id": 2307,
- "nodeType": "StructuredDocumentation",
- "src": "2461:224:4",
- "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."
- },
- "id": 2332,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "add",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2312,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2309,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2332,
- "src": "2703:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2308,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2703:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2311,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2332,
- "src": "2714:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2310,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2714:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2702:22:4"
- },
- "returnParameters": {
- "id": 2315,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2314,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2332,
- "src": "2748:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2313,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2748:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2747:9:4"
- },
- "scope": 2505,
- "src": "2690:175:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2353,
- "nodeType": "Block",
- "src": "3203:88:4",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2345,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2343,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2337,
- "src": "3221:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2344,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2335,
- "src": "3226:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3221:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77",
- "id": 2346,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3229:32:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862",
- "typeString": "literal_string \"SafeMath: subtraction overflow\""
- },
- "value": "SafeMath: subtraction overflow"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862",
- "typeString": "literal_string \"SafeMath: subtraction overflow\""
- }
- ],
- "id": 2342,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "3213:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2347,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3213:49:4",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2348,
- "nodeType": "ExpressionStatement",
- "src": "3213:49:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2351,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2349,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2335,
- "src": "3279:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2350,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2337,
- "src": "3283:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3279:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2341,
- "id": 2352,
- "nodeType": "Return",
- "src": "3272:12:4"
- }
- ]
- },
- "documentation": {
- "id": 2333,
- "nodeType": "StructuredDocumentation",
- "src": "2871:260:4",
- "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."
- },
- "id": 2354,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "sub",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2338,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2335,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2354,
- "src": "3149:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2334,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3149:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2337,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2354,
- "src": "3160:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2336,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3160:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3148:22:4"
- },
- "returnParameters": {
- "id": 2341,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2340,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2354,
- "src": "3194:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2339,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3194:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3193:9:4"
- },
- "scope": 2505,
- "src": "3136:155:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2387,
- "nodeType": "Block",
- "src": "3605:148:4",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2366,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2364,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2357,
- "src": "3619:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2365,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3624:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "3619:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 2369,
- "nodeType": "IfStatement",
- "src": "3615:20:4",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2367,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3634:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "functionReturnParameters": 2363,
- "id": 2368,
- "nodeType": "Return",
- "src": "3627:8:4"
- }
- },
- {
- "assignments": [2371],
- "declarations": [
- {
- "constant": false,
- "id": 2371,
- "mutability": "mutable",
- "name": "c",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2387,
- "src": "3645:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2370,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3645:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 2375,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2374,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2372,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2357,
- "src": "3657:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2373,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2359,
- "src": "3661:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3657:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "3645:17:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2381,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2379,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2377,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2371,
- "src": "3680:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2378,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2357,
- "src": "3684:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3680:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2380,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2359,
- "src": "3689:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3680:10:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77",
- "id": 2382,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3692:35:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3",
- "typeString": "literal_string \"SafeMath: multiplication overflow\""
- },
- "value": "SafeMath: multiplication overflow"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3",
- "typeString": "literal_string \"SafeMath: multiplication overflow\""
- }
- ],
- "id": 2376,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "3672:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2383,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3672:56:4",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2384,
- "nodeType": "ExpressionStatement",
- "src": "3672:56:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2385,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2371,
- "src": "3745:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2363,
- "id": 2386,
- "nodeType": "Return",
- "src": "3738:8:4"
- }
- ]
- },
- "documentation": {
- "id": 2355,
- "nodeType": "StructuredDocumentation",
- "src": "3297:236:4",
- "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."
- },
- "id": 2388,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "mul",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2360,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2357,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2388,
- "src": "3551:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2356,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3551:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2359,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2388,
- "src": "3562:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2358,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3562:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3550:22:4"
- },
- "returnParameters": {
- "id": 2363,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2362,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2388,
- "src": "3596:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2361,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3596:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3595:9:4"
- },
- "scope": 2505,
- "src": "3538:215:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2409,
- "nodeType": "Block",
- "src": "4284:83:4",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2401,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2399,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2393,
- "src": "4302:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2400,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4306:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "4302:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f",
- "id": 2402,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4309:28:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f",
- "typeString": "literal_string \"SafeMath: division by zero\""
- },
- "value": "SafeMath: division by zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f",
- "typeString": "literal_string \"SafeMath: division by zero\""
- }
- ],
- "id": 2398,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4294:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2403,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4294:44:4",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2404,
- "nodeType": "ExpressionStatement",
- "src": "4294:44:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2407,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2405,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2391,
- "src": "4355:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2406,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2393,
- "src": "4359:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4355:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2397,
- "id": 2408,
- "nodeType": "Return",
- "src": "4348:12:4"
- }
- ]
- },
- "documentation": {
- "id": 2389,
- "nodeType": "StructuredDocumentation",
- "src": "3759:453:4",
- "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 2410,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "div",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2394,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2391,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2410,
- "src": "4230:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2390,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4230:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2393,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2410,
- "src": "4241:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2392,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4241:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4229:22:4"
- },
- "returnParameters": {
- "id": 2397,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2396,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2410,
- "src": "4275:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2395,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4275:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4274:9:4"
- },
- "scope": 2505,
- "src": "4217:150:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2431,
- "nodeType": "Block",
- "src": "4887:81:4",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2423,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2421,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2415,
- "src": "4905:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2422,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4909:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "4905:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f",
- "id": 2424,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4912:26:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832",
- "typeString": "literal_string \"SafeMath: modulo by zero\""
- },
- "value": "SafeMath: modulo by zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832",
- "typeString": "literal_string \"SafeMath: modulo by zero\""
- }
- ],
- "id": 2420,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4897:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2425,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4897:42:4",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2426,
- "nodeType": "ExpressionStatement",
- "src": "4897:42:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2429,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2427,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2413,
- "src": "4956:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "%",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2428,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2415,
- "src": "4960:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4956:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2419,
- "id": 2430,
- "nodeType": "Return",
- "src": "4949:12:4"
- }
- ]
- },
- "documentation": {
- "id": 2411,
- "nodeType": "StructuredDocumentation",
- "src": "4373:442:4",
- "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 2432,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "mod",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2416,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2413,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2432,
- "src": "4833:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2412,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4833:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2415,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2432,
- "src": "4844:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2414,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4844:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4832:22:4"
- },
- "returnParameters": {
- "id": 2419,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2418,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2432,
- "src": "4878:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2417,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4878:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4877:9:4"
- },
- "scope": 2505,
- "src": "4820:148:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2455,
- "nodeType": "Block",
- "src": "5527:68:4",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2447,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2445,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2437,
- "src": "5545:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2446,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2435,
- "src": "5550:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5545:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "id": 2448,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2439,
- "src": "5553:12:4",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 2444,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "5537:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2449,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5537:29:4",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2450,
- "nodeType": "ExpressionStatement",
- "src": "5537:29:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2453,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2451,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2435,
- "src": "5583:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2452,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2437,
- "src": "5587:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5583:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2443,
- "id": 2454,
- "nodeType": "Return",
- "src": "5576:12:4"
- }
- ]
- },
- "documentation": {
- "id": 2433,
- "nodeType": "StructuredDocumentation",
- "src": "4974:453:4",
- "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."
- },
- "id": 2456,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "sub",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2440,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2435,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2456,
- "src": "5445:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2434,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "5445:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2437,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2456,
- "src": "5456:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2436,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "5456:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2439,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2456,
- "src": "5467:26:4",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 2438,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "5467:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5444:50:4"
- },
- "returnParameters": {
- "id": 2443,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2442,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2456,
- "src": "5518:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2441,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "5518:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5517:9:4"
- },
- "scope": 2505,
- "src": "5432:163:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2479,
- "nodeType": "Block",
- "src": "6347:67:4",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2471,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2469,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2461,
- "src": "6365:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2470,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6369:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "6365:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "id": 2472,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2463,
- "src": "6372:12:4",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 2468,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "6357:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2473,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6357:28:4",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2474,
- "nodeType": "ExpressionStatement",
- "src": "6357:28:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2477,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2475,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2459,
- "src": "6402:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2476,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2461,
- "src": "6406:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "6402:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2467,
- "id": 2478,
- "nodeType": "Return",
- "src": "6395:12:4"
- }
- ]
- },
- "documentation": {
- "id": 2457,
- "nodeType": "StructuredDocumentation",
- "src": "5601:646:4",
- "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 2480,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "div",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2464,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2459,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2480,
- "src": "6265:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2458,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6265:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2461,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2480,
- "src": "6276:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2460,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6276:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2463,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2480,
- "src": "6287:26:4",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 2462,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "6287:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6264:50:4"
- },
- "returnParameters": {
- "id": 2467,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2466,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2480,
- "src": "6338:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2465,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6338:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6337:9:4"
- },
- "scope": 2505,
- "src": "6252:162:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2503,
- "nodeType": "Block",
- "src": "7155:67:4",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2495,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2493,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2485,
- "src": "7173:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2494,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7177:1:4",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "7173:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "id": 2496,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2487,
- "src": "7180:12:4",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 2492,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "7165:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2497,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7165:28:4",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2498,
- "nodeType": "ExpressionStatement",
- "src": "7165:28:4"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 2501,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2499,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2483,
- "src": "7210:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "%",
- "rightExpression": {
- "argumentTypes": null,
- "id": 2500,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2485,
- "src": "7214:1:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7210:5:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 2491,
- "id": 2502,
- "nodeType": "Return",
- "src": "7203:12:4"
- }
- ]
- },
- "documentation": {
- "id": 2481,
- "nodeType": "StructuredDocumentation",
- "src": "6420:635:4",
- "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 2504,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "mod",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2488,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2483,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2504,
- "src": "7073:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2482,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7073:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2485,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2504,
- "src": "7084:9:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2484,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7084:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2487,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2504,
- "src": "7095:26:4",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 2486,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "7095:6:4",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7072:50:4"
- },
- "returnParameters": {
- "id": 2491,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2490,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2504,
- "src": "7146:7:4",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2489,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7146:7:4",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7145:9:4"
- },
- "scope": 2505,
- "src": "7060:162:4",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- }
- ],
- "scope": 2506,
- "src": "630:6594:4"
- }
- ],
- "src": "33:7192:4"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "exportedSymbols": {
- "SafeMath": [2505]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"]
- },
- "id": 2152,
- "name": "PragmaDirective",
- "src": "33:31:4"
- },
- {
- "attributes": {
- "abstract": false,
- "baseContracts": [null],
- "contractDependencies": [null],
- "contractKind": "library",
- "fullyImplemented": true,
- "linearizedBaseContracts": [2505],
- "name": "SafeMath",
- "scope": 2506
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."
- },
- "id": 2153,
- "name": "StructuredDocumentation",
- "src": "66:563:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "tryAdd",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 2154,
- "name": "StructuredDocumentation",
- "src": "653:131:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2184,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2155,
- "name": "ElementaryTypeName",
- "src": "805:7:4"
- }
- ],
- "id": 2156,
- "name": "VariableDeclaration",
- "src": "805:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2184,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2157,
- "name": "ElementaryTypeName",
- "src": "816:7:4"
- }
- ],
- "id": 2158,
- "name": "VariableDeclaration",
- "src": "816:9:4"
- }
- ],
- "id": 2159,
- "name": "ParameterList",
- "src": "804:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2184,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2160,
- "name": "ElementaryTypeName",
- "src": "850:4:4"
- }
- ],
- "id": 2161,
- "name": "VariableDeclaration",
- "src": "850:4:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2184,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2162,
- "name": "ElementaryTypeName",
- "src": "856:7:4"
- }
- ],
- "id": 2163,
- "name": "VariableDeclaration",
- "src": "856:7:4"
- }
- ],
- "id": 2164,
- "name": "ParameterList",
- "src": "849:15:4"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [2166]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "c",
- "overrides": null,
- "scope": 2183,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2165,
- "name": "ElementaryTypeName",
- "src": "875:7:4"
- }
- ],
- "id": 2166,
- "name": "VariableDeclaration",
- "src": "875:9:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2156,
- "type": "uint256",
- "value": "a"
- },
- "id": 2167,
- "name": "Identifier",
- "src": "887:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2158,
- "type": "uint256",
- "value": "b"
- },
- "id": 2168,
- "name": "Identifier",
- "src": "891:1:4"
- }
- ],
- "id": 2169,
- "name": "BinaryOperation",
- "src": "887:5:4"
- }
- ],
- "id": 2170,
- "name": "VariableDeclarationStatement",
- "src": "875:17:4"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2166,
- "type": "uint256",
- "value": "c"
- },
- "id": 2171,
- "name": "Identifier",
- "src": "906:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2156,
- "type": "uint256",
- "value": "a"
- },
- "id": 2172,
- "name": "Identifier",
- "src": "910:1:4"
- }
- ],
- "id": 2173,
- "name": "BinaryOperation",
- "src": "906:5:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2164
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 2174,
- "name": "Literal",
- "src": "921:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2175,
- "name": "Literal",
- "src": "928:1:4"
- }
- ],
- "id": 2176,
- "name": "TupleExpression",
- "src": "920:10:4"
- }
- ],
- "id": 2177,
- "name": "Return",
- "src": "913:17:4"
- }
- ],
- "id": 2178,
- "name": "IfStatement",
- "src": "902:28:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2164
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2179,
- "name": "Literal",
- "src": "948:4:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2166,
- "type": "uint256",
- "value": "c"
- },
- "id": 2180,
- "name": "Identifier",
- "src": "954:1:4"
- }
- ],
- "id": 2181,
- "name": "TupleExpression",
- "src": "947:9:4"
- }
- ],
- "id": 2182,
- "name": "Return",
- "src": "940:16:4"
- }
- ],
- "id": 2183,
- "name": "Block",
- "src": "865:98:4"
- }
- ],
- "id": 2184,
- "name": "FunctionDefinition",
- "src": "789:174:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "trySub",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 2185,
- "name": "StructuredDocumentation",
- "src": "969:135:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2211,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2186,
- "name": "ElementaryTypeName",
- "src": "1125:7:4"
- }
- ],
- "id": 2187,
- "name": "VariableDeclaration",
- "src": "1125:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2211,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2188,
- "name": "ElementaryTypeName",
- "src": "1136:7:4"
- }
- ],
- "id": 2189,
- "name": "VariableDeclaration",
- "src": "1136:9:4"
- }
- ],
- "id": 2190,
- "name": "ParameterList",
- "src": "1124:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2211,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2191,
- "name": "ElementaryTypeName",
- "src": "1170:4:4"
- }
- ],
- "id": 2192,
- "name": "VariableDeclaration",
- "src": "1170:4:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2211,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2193,
- "name": "ElementaryTypeName",
- "src": "1176:7:4"
- }
- ],
- "id": 2194,
- "name": "VariableDeclaration",
- "src": "1176:7:4"
- }
- ],
- "id": 2195,
- "name": "ParameterList",
- "src": "1169:15:4"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2189,
- "type": "uint256",
- "value": "b"
- },
- "id": 2196,
- "name": "Identifier",
- "src": "1199:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2187,
- "type": "uint256",
- "value": "a"
- },
- "id": 2197,
- "name": "Identifier",
- "src": "1203:1:4"
- }
- ],
- "id": 2198,
- "name": "BinaryOperation",
- "src": "1199:5:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2195
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 2199,
- "name": "Literal",
- "src": "1214:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2200,
- "name": "Literal",
- "src": "1221:1:4"
- }
- ],
- "id": 2201,
- "name": "TupleExpression",
- "src": "1213:10:4"
- }
- ],
- "id": 2202,
- "name": "Return",
- "src": "1206:17:4"
- }
- ],
- "id": 2203,
- "name": "IfStatement",
- "src": "1195:28:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2195
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2204,
- "name": "Literal",
- "src": "1241:4:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2187,
- "type": "uint256",
- "value": "a"
- },
- "id": 2205,
- "name": "Identifier",
- "src": "1247:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2189,
- "type": "uint256",
- "value": "b"
- },
- "id": 2206,
- "name": "Identifier",
- "src": "1251:1:4"
- }
- ],
- "id": 2207,
- "name": "BinaryOperation",
- "src": "1247:5:4"
- }
- ],
- "id": 2208,
- "name": "TupleExpression",
- "src": "1240:13:4"
- }
- ],
- "id": 2209,
- "name": "Return",
- "src": "1233:20:4"
- }
- ],
- "id": 2210,
- "name": "Block",
- "src": "1185:75:4"
- }
- ],
- "id": 2211,
- "name": "FunctionDefinition",
- "src": "1109:151:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "tryMul",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 2212,
- "name": "StructuredDocumentation",
- "src": "1266:137:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2252,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2213,
- "name": "ElementaryTypeName",
- "src": "1424:7:4"
- }
- ],
- "id": 2214,
- "name": "VariableDeclaration",
- "src": "1424:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2252,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2215,
- "name": "ElementaryTypeName",
- "src": "1435:7:4"
- }
- ],
- "id": 2216,
- "name": "VariableDeclaration",
- "src": "1435:9:4"
- }
- ],
- "id": 2217,
- "name": "ParameterList",
- "src": "1423:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2252,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2218,
- "name": "ElementaryTypeName",
- "src": "1469:4:4"
- }
- ],
- "id": 2219,
- "name": "VariableDeclaration",
- "src": "1469:4:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2252,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2220,
- "name": "ElementaryTypeName",
- "src": "1475:7:4"
- }
- ],
- "id": 2221,
- "name": "VariableDeclaration",
- "src": "1475:7:4"
- }
- ],
- "id": 2222,
- "name": "ParameterList",
- "src": "1468:15:4"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2214,
- "type": "uint256",
- "value": "a"
- },
- "id": 2223,
- "name": "Identifier",
- "src": "1716:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2224,
- "name": "Literal",
- "src": "1721:1:4"
- }
- ],
- "id": 2225,
- "name": "BinaryOperation",
- "src": "1716:6:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2222
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2226,
- "name": "Literal",
- "src": "1732:4:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2227,
- "name": "Literal",
- "src": "1738:1:4"
- }
- ],
- "id": 2228,
- "name": "TupleExpression",
- "src": "1731:9:4"
- }
- ],
- "id": 2229,
- "name": "Return",
- "src": "1724:16:4"
- }
- ],
- "id": 2230,
- "name": "IfStatement",
- "src": "1712:28:4"
- },
- {
- "attributes": {
- "assignments": [2232]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "c",
- "overrides": null,
- "scope": 2251,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2231,
- "name": "ElementaryTypeName",
- "src": "1750:7:4"
- }
- ],
- "id": 2232,
- "name": "VariableDeclaration",
- "src": "1750:9:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2214,
- "type": "uint256",
- "value": "a"
- },
- "id": 2233,
- "name": "Identifier",
- "src": "1762:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2216,
- "type": "uint256",
- "value": "b"
- },
- "id": 2234,
- "name": "Identifier",
- "src": "1766:1:4"
- }
- ],
- "id": 2235,
- "name": "BinaryOperation",
- "src": "1762:5:4"
- }
- ],
- "id": 2236,
- "name": "VariableDeclarationStatement",
- "src": "1750:17:4"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2232,
- "type": "uint256",
- "value": "c"
- },
- "id": 2237,
- "name": "Identifier",
- "src": "1781:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2214,
- "type": "uint256",
- "value": "a"
- },
- "id": 2238,
- "name": "Identifier",
- "src": "1785:1:4"
- }
- ],
- "id": 2239,
- "name": "BinaryOperation",
- "src": "1781:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2216,
- "type": "uint256",
- "value": "b"
- },
- "id": 2240,
- "name": "Identifier",
- "src": "1790:1:4"
- }
- ],
- "id": 2241,
- "name": "BinaryOperation",
- "src": "1781:10:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2222
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 2242,
- "name": "Literal",
- "src": "1801:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2243,
- "name": "Literal",
- "src": "1808:1:4"
- }
- ],
- "id": 2244,
- "name": "TupleExpression",
- "src": "1800:10:4"
- }
- ],
- "id": 2245,
- "name": "Return",
- "src": "1793:17:4"
- }
- ],
- "id": 2246,
- "name": "IfStatement",
- "src": "1777:33:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2222
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2247,
- "name": "Literal",
- "src": "1828:4:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2232,
- "type": "uint256",
- "value": "c"
- },
- "id": 2248,
- "name": "Identifier",
- "src": "1834:1:4"
- }
- ],
- "id": 2249,
- "name": "TupleExpression",
- "src": "1827:9:4"
- }
- ],
- "id": 2250,
- "name": "Return",
- "src": "1820:16:4"
- }
- ],
- "id": 2251,
- "name": "Block",
- "src": "1484:359:4"
- }
- ],
- "id": 2252,
- "name": "FunctionDefinition",
- "src": "1408:435:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "tryDiv",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"
- },
- "id": 2253,
- "name": "StructuredDocumentation",
- "src": "1849:138:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2279,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2254,
- "name": "ElementaryTypeName",
- "src": "2008:7:4"
- }
- ],
- "id": 2255,
- "name": "VariableDeclaration",
- "src": "2008:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2279,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2256,
- "name": "ElementaryTypeName",
- "src": "2019:7:4"
- }
- ],
- "id": 2257,
- "name": "VariableDeclaration",
- "src": "2019:9:4"
- }
- ],
- "id": 2258,
- "name": "ParameterList",
- "src": "2007:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2279,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2259,
- "name": "ElementaryTypeName",
- "src": "2053:4:4"
- }
- ],
- "id": 2260,
- "name": "VariableDeclaration",
- "src": "2053:4:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2279,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2261,
- "name": "ElementaryTypeName",
- "src": "2059:7:4"
- }
- ],
- "id": 2262,
- "name": "VariableDeclaration",
- "src": "2059:7:4"
- }
- ],
- "id": 2263,
- "name": "ParameterList",
- "src": "2052:15:4"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2257,
- "type": "uint256",
- "value": "b"
- },
- "id": 2264,
- "name": "Identifier",
- "src": "2082:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2265,
- "name": "Literal",
- "src": "2087:1:4"
- }
- ],
- "id": 2266,
- "name": "BinaryOperation",
- "src": "2082:6:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2263
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 2267,
- "name": "Literal",
- "src": "2098:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2268,
- "name": "Literal",
- "src": "2105:1:4"
- }
- ],
- "id": 2269,
- "name": "TupleExpression",
- "src": "2097:10:4"
- }
- ],
- "id": 2270,
- "name": "Return",
- "src": "2090:17:4"
- }
- ],
- "id": 2271,
- "name": "IfStatement",
- "src": "2078:29:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2263
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2272,
- "name": "Literal",
- "src": "2125:4:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2255,
- "type": "uint256",
- "value": "a"
- },
- "id": 2273,
- "name": "Identifier",
- "src": "2131:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2257,
- "type": "uint256",
- "value": "b"
- },
- "id": 2274,
- "name": "Identifier",
- "src": "2135:1:4"
- }
- ],
- "id": 2275,
- "name": "BinaryOperation",
- "src": "2131:5:4"
- }
- ],
- "id": 2276,
- "name": "TupleExpression",
- "src": "2124:13:4"
- }
- ],
- "id": 2277,
- "name": "Return",
- "src": "2117:20:4"
- }
- ],
- "id": 2278,
- "name": "Block",
- "src": "2068:76:4"
- }
- ],
- "id": 2279,
- "name": "FunctionDefinition",
- "src": "1992:152:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "tryMod",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"
- },
- "id": 2280,
- "name": "StructuredDocumentation",
- "src": "2150:148:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2306,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2281,
- "name": "ElementaryTypeName",
- "src": "2319:7:4"
- }
- ],
- "id": 2282,
- "name": "VariableDeclaration",
- "src": "2319:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2306,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2283,
- "name": "ElementaryTypeName",
- "src": "2330:7:4"
- }
- ],
- "id": 2284,
- "name": "VariableDeclaration",
- "src": "2330:9:4"
- }
- ],
- "id": 2285,
- "name": "ParameterList",
- "src": "2318:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2306,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 2286,
- "name": "ElementaryTypeName",
- "src": "2364:4:4"
- }
- ],
- "id": 2287,
- "name": "VariableDeclaration",
- "src": "2364:4:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2306,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2288,
- "name": "ElementaryTypeName",
- "src": "2370:7:4"
- }
- ],
- "id": 2289,
- "name": "VariableDeclaration",
- "src": "2370:7:4"
- }
- ],
- "id": 2290,
- "name": "ParameterList",
- "src": "2363:15:4"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2284,
- "type": "uint256",
- "value": "b"
- },
- "id": 2291,
- "name": "Identifier",
- "src": "2393:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2292,
- "name": "Literal",
- "src": "2398:1:4"
- }
- ],
- "id": 2293,
- "name": "BinaryOperation",
- "src": "2393:6:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2290
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 2294,
- "name": "Literal",
- "src": "2409:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2295,
- "name": "Literal",
- "src": "2416:1:4"
- }
- ],
- "id": 2296,
- "name": "TupleExpression",
- "src": "2408:10:4"
- }
- ],
- "id": 2297,
- "name": "Return",
- "src": "2401:17:4"
- }
- ],
- "id": 2298,
- "name": "IfStatement",
- "src": "2389:29:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2290
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 2299,
- "name": "Literal",
- "src": "2436:4:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "%",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2282,
- "type": "uint256",
- "value": "a"
- },
- "id": 2300,
- "name": "Identifier",
- "src": "2442:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2284,
- "type": "uint256",
- "value": "b"
- },
- "id": 2301,
- "name": "Identifier",
- "src": "2446:1:4"
- }
- ],
- "id": 2302,
- "name": "BinaryOperation",
- "src": "2442:5:4"
- }
- ],
- "id": 2303,
- "name": "TupleExpression",
- "src": "2435:13:4"
- }
- ],
- "id": 2304,
- "name": "Return",
- "src": "2428:20:4"
- }
- ],
- "id": 2305,
- "name": "Block",
- "src": "2379:76:4"
- }
- ],
- "id": 2306,
- "name": "FunctionDefinition",
- "src": "2303:152:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "add",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."
- },
- "id": 2307,
- "name": "StructuredDocumentation",
- "src": "2461:224:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2332,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2308,
- "name": "ElementaryTypeName",
- "src": "2703:7:4"
- }
- ],
- "id": 2309,
- "name": "VariableDeclaration",
- "src": "2703:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2332,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2310,
- "name": "ElementaryTypeName",
- "src": "2714:7:4"
- }
- ],
- "id": 2311,
- "name": "VariableDeclaration",
- "src": "2714:9:4"
- }
- ],
- "id": 2312,
- "name": "ParameterList",
- "src": "2702:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2332,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2313,
- "name": "ElementaryTypeName",
- "src": "2748:7:4"
- }
- ],
- "id": 2314,
- "name": "VariableDeclaration",
- "src": "2748:7:4"
- }
- ],
- "id": 2315,
- "name": "ParameterList",
- "src": "2747:9:4"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [2317]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "c",
- "overrides": null,
- "scope": 2331,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2316,
- "name": "ElementaryTypeName",
- "src": "2767:7:4"
- }
- ],
- "id": 2317,
- "name": "VariableDeclaration",
- "src": "2767:9:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2309,
- "type": "uint256",
- "value": "a"
- },
- "id": 2318,
- "name": "Identifier",
- "src": "2779:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2311,
- "type": "uint256",
- "value": "b"
- },
- "id": 2319,
- "name": "Identifier",
- "src": "2783:1:4"
- }
- ],
- "id": 2320,
- "name": "BinaryOperation",
- "src": "2779:5:4"
- }
- ],
- "id": 2321,
- "name": "VariableDeclarationStatement",
- "src": "2767:17:4"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a",
- "typeString": "literal_string \"SafeMath: addition overflow\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2322,
- "name": "Identifier",
- "src": "2794:7:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2317,
- "type": "uint256",
- "value": "c"
- },
- "id": 2323,
- "name": "Identifier",
- "src": "2802:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2309,
- "type": "uint256",
- "value": "a"
- },
- "id": 2324,
- "name": "Identifier",
- "src": "2807:1:4"
- }
- ],
- "id": 2325,
- "name": "BinaryOperation",
- "src": "2802:6:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: addition overflow\"",
- "value": "SafeMath: addition overflow"
- },
- "id": 2326,
- "name": "Literal",
- "src": "2810:29:4"
- }
- ],
- "id": 2327,
- "name": "FunctionCall",
- "src": "2794:46:4"
- }
- ],
- "id": 2328,
- "name": "ExpressionStatement",
- "src": "2794:46:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2315
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2317,
- "type": "uint256",
- "value": "c"
- },
- "id": 2329,
- "name": "Identifier",
- "src": "2857:1:4"
- }
- ],
- "id": 2330,
- "name": "Return",
- "src": "2850:8:4"
- }
- ],
- "id": 2331,
- "name": "Block",
- "src": "2757:108:4"
- }
- ],
- "id": 2332,
- "name": "FunctionDefinition",
- "src": "2690:175:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "sub",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."
- },
- "id": 2333,
- "name": "StructuredDocumentation",
- "src": "2871:260:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2354,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2334,
- "name": "ElementaryTypeName",
- "src": "3149:7:4"
- }
- ],
- "id": 2335,
- "name": "VariableDeclaration",
- "src": "3149:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2354,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2336,
- "name": "ElementaryTypeName",
- "src": "3160:7:4"
- }
- ],
- "id": 2337,
- "name": "VariableDeclaration",
- "src": "3160:9:4"
- }
- ],
- "id": 2338,
- "name": "ParameterList",
- "src": "3148:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2354,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2339,
- "name": "ElementaryTypeName",
- "src": "3194:7:4"
- }
- ],
- "id": 2340,
- "name": "VariableDeclaration",
- "src": "3194:7:4"
- }
- ],
- "id": 2341,
- "name": "ParameterList",
- "src": "3193:9:4"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862",
- "typeString": "literal_string \"SafeMath: subtraction overflow\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2342,
- "name": "Identifier",
- "src": "3213:7:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2337,
- "type": "uint256",
- "value": "b"
- },
- "id": 2343,
- "name": "Identifier",
- "src": "3221:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2335,
- "type": "uint256",
- "value": "a"
- },
- "id": 2344,
- "name": "Identifier",
- "src": "3226:1:4"
- }
- ],
- "id": 2345,
- "name": "BinaryOperation",
- "src": "3221:6:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: subtraction overflow\"",
- "value": "SafeMath: subtraction overflow"
- },
- "id": 2346,
- "name": "Literal",
- "src": "3229:32:4"
- }
- ],
- "id": 2347,
- "name": "FunctionCall",
- "src": "3213:49:4"
- }
- ],
- "id": 2348,
- "name": "ExpressionStatement",
- "src": "3213:49:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2341
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2335,
- "type": "uint256",
- "value": "a"
- },
- "id": 2349,
- "name": "Identifier",
- "src": "3279:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2337,
- "type": "uint256",
- "value": "b"
- },
- "id": 2350,
- "name": "Identifier",
- "src": "3283:1:4"
- }
- ],
- "id": 2351,
- "name": "BinaryOperation",
- "src": "3279:5:4"
- }
- ],
- "id": 2352,
- "name": "Return",
- "src": "3272:12:4"
- }
- ],
- "id": 2353,
- "name": "Block",
- "src": "3203:88:4"
- }
- ],
- "id": 2354,
- "name": "FunctionDefinition",
- "src": "3136:155:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "mul",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."
- },
- "id": 2355,
- "name": "StructuredDocumentation",
- "src": "3297:236:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2388,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2356,
- "name": "ElementaryTypeName",
- "src": "3551:7:4"
- }
- ],
- "id": 2357,
- "name": "VariableDeclaration",
- "src": "3551:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2388,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2358,
- "name": "ElementaryTypeName",
- "src": "3562:7:4"
- }
- ],
- "id": 2359,
- "name": "VariableDeclaration",
- "src": "3562:9:4"
- }
- ],
- "id": 2360,
- "name": "ParameterList",
- "src": "3550:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2388,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2361,
- "name": "ElementaryTypeName",
- "src": "3596:7:4"
- }
- ],
- "id": 2362,
- "name": "VariableDeclaration",
- "src": "3596:7:4"
- }
- ],
- "id": 2363,
- "name": "ParameterList",
- "src": "3595:9:4"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2357,
- "type": "uint256",
- "value": "a"
- },
- "id": 2364,
- "name": "Identifier",
- "src": "3619:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2365,
- "name": "Literal",
- "src": "3624:1:4"
- }
- ],
- "id": 2366,
- "name": "BinaryOperation",
- "src": "3619:6:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2363
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2367,
- "name": "Literal",
- "src": "3634:1:4"
- }
- ],
- "id": 2368,
- "name": "Return",
- "src": "3627:8:4"
- }
- ],
- "id": 2369,
- "name": "IfStatement",
- "src": "3615:20:4"
- },
- {
- "attributes": {
- "assignments": [2371]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "c",
- "overrides": null,
- "scope": 2387,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2370,
- "name": "ElementaryTypeName",
- "src": "3645:7:4"
- }
- ],
- "id": 2371,
- "name": "VariableDeclaration",
- "src": "3645:9:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2357,
- "type": "uint256",
- "value": "a"
- },
- "id": 2372,
- "name": "Identifier",
- "src": "3657:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2359,
- "type": "uint256",
- "value": "b"
- },
- "id": 2373,
- "name": "Identifier",
- "src": "3661:1:4"
- }
- ],
- "id": 2374,
- "name": "BinaryOperation",
- "src": "3657:5:4"
- }
- ],
- "id": 2375,
- "name": "VariableDeclarationStatement",
- "src": "3645:17:4"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3",
- "typeString": "literal_string \"SafeMath: multiplication overflow\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2376,
- "name": "Identifier",
- "src": "3672:7:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2371,
- "type": "uint256",
- "value": "c"
- },
- "id": 2377,
- "name": "Identifier",
- "src": "3680:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2357,
- "type": "uint256",
- "value": "a"
- },
- "id": 2378,
- "name": "Identifier",
- "src": "3684:1:4"
- }
- ],
- "id": 2379,
- "name": "BinaryOperation",
- "src": "3680:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2359,
- "type": "uint256",
- "value": "b"
- },
- "id": 2380,
- "name": "Identifier",
- "src": "3689:1:4"
- }
- ],
- "id": 2381,
- "name": "BinaryOperation",
- "src": "3680:10:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: multiplication overflow\"",
- "value": "SafeMath: multiplication overflow"
- },
- "id": 2382,
- "name": "Literal",
- "src": "3692:35:4"
- }
- ],
- "id": 2383,
- "name": "FunctionCall",
- "src": "3672:56:4"
- }
- ],
- "id": 2384,
- "name": "ExpressionStatement",
- "src": "3672:56:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2363
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2371,
- "type": "uint256",
- "value": "c"
- },
- "id": 2385,
- "name": "Identifier",
- "src": "3745:1:4"
- }
- ],
- "id": 2386,
- "name": "Return",
- "src": "3738:8:4"
- }
- ],
- "id": 2387,
- "name": "Block",
- "src": "3605:148:4"
- }
- ],
- "id": 2388,
- "name": "FunctionDefinition",
- "src": "3538:215:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "div",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 2389,
- "name": "StructuredDocumentation",
- "src": "3759:453:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2410,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2390,
- "name": "ElementaryTypeName",
- "src": "4230:7:4"
- }
- ],
- "id": 2391,
- "name": "VariableDeclaration",
- "src": "4230:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2410,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2392,
- "name": "ElementaryTypeName",
- "src": "4241:7:4"
- }
- ],
- "id": 2393,
- "name": "VariableDeclaration",
- "src": "4241:9:4"
- }
- ],
- "id": 2394,
- "name": "ParameterList",
- "src": "4229:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2410,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2395,
- "name": "ElementaryTypeName",
- "src": "4275:7:4"
- }
- ],
- "id": 2396,
- "name": "VariableDeclaration",
- "src": "4275:7:4"
- }
- ],
- "id": 2397,
- "name": "ParameterList",
- "src": "4274:9:4"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f",
- "typeString": "literal_string \"SafeMath: division by zero\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2398,
- "name": "Identifier",
- "src": "4294:7:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2393,
- "type": "uint256",
- "value": "b"
- },
- "id": 2399,
- "name": "Identifier",
- "src": "4302:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2400,
- "name": "Literal",
- "src": "4306:1:4"
- }
- ],
- "id": 2401,
- "name": "BinaryOperation",
- "src": "4302:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: division by zero\"",
- "value": "SafeMath: division by zero"
- },
- "id": 2402,
- "name": "Literal",
- "src": "4309:28:4"
- }
- ],
- "id": 2403,
- "name": "FunctionCall",
- "src": "4294:44:4"
- }
- ],
- "id": 2404,
- "name": "ExpressionStatement",
- "src": "4294:44:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2397
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2391,
- "type": "uint256",
- "value": "a"
- },
- "id": 2405,
- "name": "Identifier",
- "src": "4355:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2393,
- "type": "uint256",
- "value": "b"
- },
- "id": 2406,
- "name": "Identifier",
- "src": "4359:1:4"
- }
- ],
- "id": 2407,
- "name": "BinaryOperation",
- "src": "4355:5:4"
- }
- ],
- "id": 2408,
- "name": "Return",
- "src": "4348:12:4"
- }
- ],
- "id": 2409,
- "name": "Block",
- "src": "4284:83:4"
- }
- ],
- "id": 2410,
- "name": "FunctionDefinition",
- "src": "4217:150:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "mod",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 2411,
- "name": "StructuredDocumentation",
- "src": "4373:442:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2432,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2412,
- "name": "ElementaryTypeName",
- "src": "4833:7:4"
- }
- ],
- "id": 2413,
- "name": "VariableDeclaration",
- "src": "4833:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2432,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2414,
- "name": "ElementaryTypeName",
- "src": "4844:7:4"
- }
- ],
- "id": 2415,
- "name": "VariableDeclaration",
- "src": "4844:9:4"
- }
- ],
- "id": 2416,
- "name": "ParameterList",
- "src": "4832:22:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2432,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2417,
- "name": "ElementaryTypeName",
- "src": "4878:7:4"
- }
- ],
- "id": 2418,
- "name": "VariableDeclaration",
- "src": "4878:7:4"
- }
- ],
- "id": 2419,
- "name": "ParameterList",
- "src": "4877:9:4"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832",
- "typeString": "literal_string \"SafeMath: modulo by zero\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2420,
- "name": "Identifier",
- "src": "4897:7:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2415,
- "type": "uint256",
- "value": "b"
- },
- "id": 2421,
- "name": "Identifier",
- "src": "4905:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2422,
- "name": "Literal",
- "src": "4909:1:4"
- }
- ],
- "id": 2423,
- "name": "BinaryOperation",
- "src": "4905:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: modulo by zero\"",
- "value": "SafeMath: modulo by zero"
- },
- "id": 2424,
- "name": "Literal",
- "src": "4912:26:4"
- }
- ],
- "id": 2425,
- "name": "FunctionCall",
- "src": "4897:42:4"
- }
- ],
- "id": 2426,
- "name": "ExpressionStatement",
- "src": "4897:42:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2419
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "%",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2413,
- "type": "uint256",
- "value": "a"
- },
- "id": 2427,
- "name": "Identifier",
- "src": "4956:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2415,
- "type": "uint256",
- "value": "b"
- },
- "id": 2428,
- "name": "Identifier",
- "src": "4960:1:4"
- }
- ],
- "id": 2429,
- "name": "BinaryOperation",
- "src": "4956:5:4"
- }
- ],
- "id": 2430,
- "name": "Return",
- "src": "4949:12:4"
- }
- ],
- "id": 2431,
- "name": "Block",
- "src": "4887:81:4"
- }
- ],
- "id": 2432,
- "name": "FunctionDefinition",
- "src": "4820:148:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "sub",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."
- },
- "id": 2433,
- "name": "StructuredDocumentation",
- "src": "4974:453:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2456,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2434,
- "name": "ElementaryTypeName",
- "src": "5445:7:4"
- }
- ],
- "id": 2435,
- "name": "VariableDeclaration",
- "src": "5445:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2456,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2436,
- "name": "ElementaryTypeName",
- "src": "5456:7:4"
- }
- ],
- "id": 2437,
- "name": "VariableDeclaration",
- "src": "5456:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 2456,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 2438,
- "name": "ElementaryTypeName",
- "src": "5467:6:4"
- }
- ],
- "id": 2439,
- "name": "VariableDeclaration",
- "src": "5467:26:4"
- }
- ],
- "id": 2440,
- "name": "ParameterList",
- "src": "5444:50:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2456,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2441,
- "name": "ElementaryTypeName",
- "src": "5518:7:4"
- }
- ],
- "id": 2442,
- "name": "VariableDeclaration",
- "src": "5518:7:4"
- }
- ],
- "id": 2443,
- "name": "ParameterList",
- "src": "5517:9:4"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2444,
- "name": "Identifier",
- "src": "5537:7:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2437,
- "type": "uint256",
- "value": "b"
- },
- "id": 2445,
- "name": "Identifier",
- "src": "5545:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2435,
- "type": "uint256",
- "value": "a"
- },
- "id": 2446,
- "name": "Identifier",
- "src": "5550:1:4"
- }
- ],
- "id": 2447,
- "name": "BinaryOperation",
- "src": "5545:6:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2439,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 2448,
- "name": "Identifier",
- "src": "5553:12:4"
- }
- ],
- "id": 2449,
- "name": "FunctionCall",
- "src": "5537:29:4"
- }
- ],
- "id": 2450,
- "name": "ExpressionStatement",
- "src": "5537:29:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2443
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2435,
- "type": "uint256",
- "value": "a"
- },
- "id": 2451,
- "name": "Identifier",
- "src": "5583:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2437,
- "type": "uint256",
- "value": "b"
- },
- "id": 2452,
- "name": "Identifier",
- "src": "5587:1:4"
- }
- ],
- "id": 2453,
- "name": "BinaryOperation",
- "src": "5583:5:4"
- }
- ],
- "id": 2454,
- "name": "Return",
- "src": "5576:12:4"
- }
- ],
- "id": 2455,
- "name": "Block",
- "src": "5527:68:4"
- }
- ],
- "id": 2456,
- "name": "FunctionDefinition",
- "src": "5432:163:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "div",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 2457,
- "name": "StructuredDocumentation",
- "src": "5601:646:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2480,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2458,
- "name": "ElementaryTypeName",
- "src": "6265:7:4"
- }
- ],
- "id": 2459,
- "name": "VariableDeclaration",
- "src": "6265:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2480,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2460,
- "name": "ElementaryTypeName",
- "src": "6276:7:4"
- }
- ],
- "id": 2461,
- "name": "VariableDeclaration",
- "src": "6276:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 2480,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 2462,
- "name": "ElementaryTypeName",
- "src": "6287:6:4"
- }
- ],
- "id": 2463,
- "name": "VariableDeclaration",
- "src": "6287:26:4"
- }
- ],
- "id": 2464,
- "name": "ParameterList",
- "src": "6264:50:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2480,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2465,
- "name": "ElementaryTypeName",
- "src": "6338:7:4"
- }
- ],
- "id": 2466,
- "name": "VariableDeclaration",
- "src": "6338:7:4"
- }
- ],
- "id": 2467,
- "name": "ParameterList",
- "src": "6337:9:4"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2468,
- "name": "Identifier",
- "src": "6357:7:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2461,
- "type": "uint256",
- "value": "b"
- },
- "id": 2469,
- "name": "Identifier",
- "src": "6365:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2470,
- "name": "Literal",
- "src": "6369:1:4"
- }
- ],
- "id": 2471,
- "name": "BinaryOperation",
- "src": "6365:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2463,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 2472,
- "name": "Identifier",
- "src": "6372:12:4"
- }
- ],
- "id": 2473,
- "name": "FunctionCall",
- "src": "6357:28:4"
- }
- ],
- "id": 2474,
- "name": "ExpressionStatement",
- "src": "6357:28:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2467
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2459,
- "type": "uint256",
- "value": "a"
- },
- "id": 2475,
- "name": "Identifier",
- "src": "6402:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2461,
- "type": "uint256",
- "value": "b"
- },
- "id": 2476,
- "name": "Identifier",
- "src": "6406:1:4"
- }
- ],
- "id": 2477,
- "name": "BinaryOperation",
- "src": "6402:5:4"
- }
- ],
- "id": 2478,
- "name": "Return",
- "src": "6395:12:4"
- }
- ],
- "id": 2479,
- "name": "Block",
- "src": "6347:67:4"
- }
- ],
- "id": 2480,
- "name": "FunctionDefinition",
- "src": "6252:162:4"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "mod",
- "overrides": null,
- "scope": 2505,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 2481,
- "name": "StructuredDocumentation",
- "src": "6420:635:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 2504,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2482,
- "name": "ElementaryTypeName",
- "src": "7073:7:4"
- }
- ],
- "id": 2483,
- "name": "VariableDeclaration",
- "src": "7073:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 2504,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2484,
- "name": "ElementaryTypeName",
- "src": "7084:7:4"
- }
- ],
- "id": 2485,
- "name": "VariableDeclaration",
- "src": "7084:9:4"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 2504,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 2486,
- "name": "ElementaryTypeName",
- "src": "7095:6:4"
- }
- ],
- "id": 2487,
- "name": "VariableDeclaration",
- "src": "7095:26:4"
- }
- ],
- "id": 2488,
- "name": "ParameterList",
- "src": "7072:50:4"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 2504,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2489,
- "name": "ElementaryTypeName",
- "src": "7146:7:4"
- }
- ],
- "id": 2490,
- "name": "VariableDeclaration",
- "src": "7146:7:4"
- }
- ],
- "id": 2491,
- "name": "ParameterList",
- "src": "7145:9:4"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2492,
- "name": "Identifier",
- "src": "7165:7:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2485,
- "type": "uint256",
- "value": "b"
- },
- "id": 2493,
- "name": "Identifier",
- "src": "7173:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2494,
- "name": "Literal",
- "src": "7177:1:4"
- }
- ],
- "id": 2495,
- "name": "BinaryOperation",
- "src": "7173:5:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2487,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 2496,
- "name": "Identifier",
- "src": "7180:12:4"
- }
- ],
- "id": 2497,
- "name": "FunctionCall",
- "src": "7165:28:4"
- }
- ],
- "id": 2498,
- "name": "ExpressionStatement",
- "src": "7165:28:4"
- },
- {
- "attributes": {
- "functionReturnParameters": 2491
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "%",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2483,
- "type": "uint256",
- "value": "a"
- },
- "id": 2499,
- "name": "Identifier",
- "src": "7210:1:4"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2485,
- "type": "uint256",
- "value": "b"
- },
- "id": 2500,
- "name": "Identifier",
- "src": "7214:1:4"
- }
- ],
- "id": 2501,
- "name": "BinaryOperation",
- "src": "7210:5:4"
- }
- ],
- "id": 2502,
- "name": "Return",
- "src": "7203:12:4"
- }
- ],
- "id": 2503,
- "name": "Block",
- "src": "7155:67:4"
- }
- ],
- "id": 2504,
- "name": "FunctionDefinition",
- "src": "7060:162:4"
- }
- ],
- "id": 2505,
- "name": "ContractDefinition",
- "src": "630:6594:4"
- }
- ],
- "id": 2506,
- "name": "SourceUnit",
- "src": "33:7192:4"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.915Z",
- "devdoc": {
- "details": "Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.",
- "kind": "dev",
- "methods": {},
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/WETH.json b/packages/bridge-sdk/contracts/WETH.json
deleted file mode 100644
index 47241fa..0000000
--- a/packages/bridge-sdk/contracts/WETH.json
+++ /dev/null
@@ -1,32099 +0,0 @@
-{
- "contractName": "WETH",
- "abi": [
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "sender",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "deposit",
- "outputs": [],
- "stateMutability": "payable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "withdraw",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol\":\"WETH\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol\":{\"keccak256\":\"0x4a28e69afc4c1c1aee48c7b497f9b8452b295ddcf4bbf453d594a1467016d5f2\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://279e22c43f79567e9f7842cfca8ad2329bbbad2eac30413b620796d51f308719\",\"dweb:/ipfs/QmbdRLJYoKJxDbDLeverNMHsNFEcxnohAA713UFLjLm3Jy\"]},\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol\":{\"keccak256\":\"0xdbd8e88a0a6cb69b6edc83c34d3c51a67560cb0a88d52e908c6d391435242999\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://630e2d852c4e534cff7d1beb00c3fc165a73d6e3a7ee394c5850cbf4047b0a32\",\"dweb:/ipfs/QmUe3mc6HwXCoL1Q6NACA4kMb6mavMKdZxDqVYG2jycoTh\"]},\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol\":{\"keccak256\":\"0x1aca747b823c4d8492ae379cfd9495e8ff19726302d943da56b2bb71aebecc73\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://716c755b41c76deb60297664878f07e0972867918fde13c20c196263d3daa554\",\"dweb:/ipfs/QmbrxvDYfcgSjBBnDdXyZJcwd8pYyyrQhYqY5h6DaxWKcy\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x9486045e189facd2e868ece35249872598ef03f1087fb6fa4d1161842daa2287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77c3a04ef8453788b14b1ebbc24dd3f0a18ceb2615cd156aac949a611e552af8\",\"dweb:/ipfs/QmcmqWGguRM3iLuF57tcyrN3F6EA63kzeNkDfQuteBnurr\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xca0c2396dbeb3503b51abf4248ebf77a1461edad513c01529df51850a012bee3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://991b44ff44e0496e8554a90f4c0512c28faed45104d40430019f3c67ea67740e\",\"dweb:/ipfs/Qmc3nRapVbcctELoZS5qe17zLkFB3bETBfwzCTMF1CSuGE\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf12dfbe97e6276980b83d2830bb0eb75e0cf4f3e626c2471137f82158ae6a0fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a849c2d95e85463909e5b5c920b13e7a11216ca14127085e16d22b9379d52a\",\"dweb:/ipfs/QmUg3CZDbCCcQdroEpexBy5ZFd5vD1UWijWQq9qHZjtJNQ\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x8bbbc2f5c10065ee272592ae0a7a6ceb23de2fbd81564ee0bb015ecf404d5f61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b95e56c1640d0ef789fc5c16269e141e992f6c8ac97cc6d377bd3825e9cab182\",\"dweb:/ipfs/QmVzaxJZY51EhagrcNnkxoU6Uq17RhATe7aHvtkC6wUkgK\"]}},\"version\":1}",
- "bytecode": "0x",
- "deployedBytecode": "0x",
- "immutableReferences": {},
- "sourceMap": "",
- "deployedSourceMap": "",
- "source": "// contracts/Wormhole.sol\n// SPDX-License-Identifier: Apache 2\n\npragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\nimport \"./BytesLib.sol\";\nimport \"./WrappedAsset.sol\";\n\ncontract Wormhole is ReentrancyGuard {\n using SafeERC20 for IERC20;\n using BytesLib for bytes;\n using SafeMath for uint256;\n\n uint64 constant MAX_UINT64 = 18_446_744_073_709_551_615;\n\n // Address of the Wrapped asset template\n address public wrappedAssetMaster;\n\n // Chain ID of Ethereum\n uint8 CHAIN_ID = 2;\n\n // Address of the official WETH contract\n address constant WETHAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n\n struct GuardianSet {\n address[] keys;\n uint32 expiration_time;\n }\n\n event LogGuardianSetChanged(\n uint32 oldGuardianIndex,\n uint32 newGuardianIndex\n );\n\n event LogTokensLocked(\n uint8 target_chain,\n uint8 token_chain,\n uint8 token_decimals,\n bytes32 indexed token,\n bytes32 indexed sender,\n bytes32 recipient,\n uint256 amount,\n uint32 nonce\n );\n\n struct ParsedVAA {\n uint8 version;\n bytes32 hash;\n uint32 guardian_set_index;\n uint32 timestamp;\n uint8 action;\n bytes payload;\n }\n\n // Mapping of guardian_set_index => guardian set\n mapping(uint32 => GuardianSet) public guardian_sets;\n // Current active guardian set\n uint32 public guardian_set_index;\n\n // Period for which a guardian set stays active after it has been replaced\n uint32 public guardian_set_expirity;\n\n // Mapping of already consumedVAAs\n mapping(bytes32 => bool) public consumedVAAs;\n\n // Mapping of wrapped asset ERC20 contracts\n mapping(bytes32 => address) public wrappedAssets;\n mapping(address => bool) public isWrappedAsset;\n\n constructor(GuardianSet memory initial_guardian_set, address wrapped_asset_master, uint32 _guardian_set_expirity) public {\n guardian_sets[0] = initial_guardian_set;\n // Explicitly set for doc purposes\n guardian_set_index = 0;\n guardian_set_expirity = _guardian_set_expirity;\n\n wrappedAssetMaster = wrapped_asset_master;\n }\n\n function getGuardianSet(uint32 idx) view public returns (GuardianSet memory gs) {\n return guardian_sets[idx];\n }\n\n function submitVAA(\n bytes calldata vaa\n ) public nonReentrant {\n ParsedVAA memory parsed_vaa = parseAndVerifyVAA(vaa);\n // Process VAA\n if (parsed_vaa.action == 0x01) {\n require(parsed_vaa.guardian_set_index == guardian_set_index, \"only the current guardian set can change the guardian set\");\n vaaUpdateGuardianSet(parsed_vaa.payload);\n } else if (parsed_vaa.action == 0x10) {\n vaaTransfer(parsed_vaa.payload);\n } else {\n revert(\"invalid VAA action\");\n }\n\n // Set the VAA as consumed\n consumedVAAs[parsed_vaa.hash] = true;\n }\n\n // parseAndVerifyVAA parses raw VAA data into a struct and verifies whether it contains sufficient signatures of an\n // active guardian set i.e. is valid according to Wormhole consensus rules.\n function parseAndVerifyVAA(bytes calldata vaa) public view returns (ParsedVAA memory parsed_vaa) {\n parsed_vaa.version = vaa.toUint8(0);\n require(parsed_vaa.version == 1, \"VAA version incompatible\");\n\n // Load 4 bytes starting from index 1\n parsed_vaa.guardian_set_index = vaa.toUint32(1);\n\n uint256 len_signers = vaa.toUint8(5);\n uint offset = 6 + 66 * len_signers;\n\n // Load 4 bytes timestamp\n parsed_vaa.timestamp = vaa.toUint32(offset);\n\n // Hash the body\n parsed_vaa.hash = keccak256(vaa.slice(offset, vaa.length - offset));\n require(!consumedVAAs[parsed_vaa.hash], \"VAA was already executed\");\n\n GuardianSet memory guardian_set = guardian_sets[parsed_vaa.guardian_set_index];\n require(guardian_set.keys.length > 0, \"invalid guardian set\");\n require(guardian_set.expiration_time == 0 || guardian_set.expiration_time > block.timestamp, \"guardian set has expired\");\n // We're using a fixed point number transformation with 1 decimal to deal with rounding.\n require(((guardian_set.keys.length * 10 / 3) * 2) / 10 + 1 <= len_signers, \"no quorum\");\n\n int16 last_index = - 1;\n for (uint i = 0; i < len_signers; i++) {\n uint8 index = vaa.toUint8(6 + i * 66);\n require(index > last_index, \"signature indices must be ascending\");\n last_index = int16(index);\n\n bytes32 r = vaa.toBytes32(7 + i * 66);\n bytes32 s = vaa.toBytes32(39 + i * 66);\n uint8 v = vaa.toUint8(71 + i * 66);\n v += 27;\n require(ecrecover(parsed_vaa.hash, v, r, s) == guardian_set.keys[index], \"VAA signature invalid\");\n }\n\n parsed_vaa.action = vaa.toUint8(offset + 4);\n parsed_vaa.payload = vaa.slice(offset + 5, vaa.length - (offset + 5));\n }\n\n function vaaUpdateGuardianSet(bytes memory data) private {\n uint32 new_guardian_set_index = data.toUint32(0);\n require(new_guardian_set_index == guardian_set_index + 1, \"index must increase in steps of 1\");\n uint8 len = data.toUint8(4);\n\n address[] memory new_guardians = new address[](len);\n for (uint i = 0; i < len; i++) {\n address addr = data.toAddress(5 + i * 20);\n new_guardians[i] = addr;\n }\n\n uint32 old_guardian_set_index = guardian_set_index;\n guardian_set_index = new_guardian_set_index;\n\n GuardianSet memory new_guardian_set = GuardianSet(new_guardians, 0);\n guardian_sets[guardian_set_index] = new_guardian_set;\n guardian_sets[old_guardian_set_index].expiration_time = uint32(block.timestamp) + guardian_set_expirity;\n\n emit LogGuardianSetChanged(old_guardian_set_index, guardian_set_index);\n }\n\n function vaaTransfer(bytes memory data) private {\n //uint32 nonce = data.toUint64(0);\n uint8 source_chain = data.toUint8(4);\n\n uint8 target_chain = data.toUint8(5);\n //bytes32 source_address = data.toBytes32(6);\n //bytes32 target_address = data.toBytes32(38);\n address target_address = data.toAddress(38 + 12);\n\n uint8 token_chain = data.toUint8(70);\n //bytes32 token_address = data.toBytes32(71);\n uint256 amount = data.toUint256(104);\n\n require(source_chain != target_chain, \"same chain transfers are not supported\");\n require(target_chain == CHAIN_ID, \"transfer must be incoming\");\n\n if (token_chain != CHAIN_ID) {\n bytes32 token_address = data.toBytes32(71);\n bytes32 asset_id = keccak256(abi.encodePacked(token_chain, token_address));\n\n // if yes: mint to address\n // if no: create and mint\n address wrapped_asset = wrappedAssets[asset_id];\n if (wrapped_asset == address(0)) {\n uint8 asset_decimals = data.toUint8(103);\n wrapped_asset = deployWrappedAsset(asset_id, token_chain, token_address, asset_decimals);\n }\n\n WrappedAsset(wrapped_asset).mint(target_address, amount);\n } else {\n address token_address = data.toAddress(71 + 12);\n\n uint8 decimals = ERC20(token_address).decimals();\n\n // Readjust decimals if they've previously been truncated\n if (decimals > 9) {\n amount = amount.mul(10 ** uint256(decimals - 9));\n }\n IERC20(token_address).safeTransfer(target_address, amount);\n }\n }\n\n function deployWrappedAsset(bytes32 seed, uint8 token_chain, bytes32 token_address, uint8 decimals) private returns (address asset){\n // Taken from https://github.com/OpenZeppelin/openzeppelin-sdk/blob/master/packages/lib/contracts/upgradeability/ProxyFactory.sol\n // Licensed under MIT\n bytes20 targetBytes = bytes20(wrappedAssetMaster);\n assembly {\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)\n asset := create2(0, clone, 0x37, seed)\n }\n\n // Call initializer\n WrappedAsset(asset).initialize(token_chain, token_address, decimals);\n\n // Store address\n wrappedAssets[seed] = asset;\n isWrappedAsset[asset] = true;\n }\n\n function lockAssets(\n address asset,\n uint256 amount,\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce,\n bool refund_dust\n ) public nonReentrant {\n require(target_chain != CHAIN_ID, \"must not transfer to the same chain\");\n\n uint8 asset_chain = CHAIN_ID;\n bytes32 asset_address;\n uint8 decimals = ERC20(asset).decimals();\n\n if (isWrappedAsset[asset]) {\n WrappedAsset(asset).burn(msg.sender, amount);\n asset_chain = WrappedAsset(asset).assetChain();\n asset_address = WrappedAsset(asset).assetAddress();\n } else {\n uint256 balanceBefore = IERC20(asset).balanceOf(address(this));\n IERC20(asset).safeTransferFrom(msg.sender, address(this), amount);\n uint256 balanceAfter = IERC20(asset).balanceOf(address(this));\n\n // The amount that was transferred in is the delta between balance before and after the transfer.\n // This is to properly handle tokens that charge a fee on transfer.\n amount = balanceAfter.sub(balanceBefore);\n\n // Decimal adjust amount - we keep the dust\n if (decimals > 9) {\n uint256 original_amount = amount;\n amount = amount.div(10 ** uint256(decimals - 9));\n\n if (refund_dust) {\n IERC20(asset).safeTransfer(msg.sender, original_amount.mod(10 ** uint256(decimals - 9)));\n }\n\n decimals = 9;\n }\n\n require(balanceAfter.div(10 ** uint256(ERC20(asset).decimals() - 9)) <= MAX_UINT64, \"bridge balance would exceed maximum\");\n\n asset_address = bytes32(uint256(asset));\n }\n\n // Check here after truncation\n require(amount != 0, \"truncated amount must not be 0\");\n\n emit LogTokensLocked(target_chain, asset_chain, decimals, asset_address, bytes32(uint256(msg.sender)), recipient, amount, nonce);\n }\n\n function lockETH(\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce\n ) public payable nonReentrant {\n require(target_chain != CHAIN_ID, \"must not transfer to the same chain\");\n\n uint256 remainder = msg.value.mod(10 ** 9);\n uint256 transfer_amount = msg.value.div(10 ** 9);\n require(transfer_amount != 0, \"truncated amount must not be 0\");\n\n // Transfer back remainder\n msg.sender.transfer(remainder);\n\n // Wrap tx value in WETH\n WETH(WETHAddress).deposit{value : msg.value - remainder}();\n\n // Log deposit of WETH\n emit LogTokensLocked(target_chain, CHAIN_ID, 9, bytes32(uint256(WETHAddress)), bytes32(uint256(msg.sender)), recipient, transfer_amount, nonce);\n }\n\n fallback() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\n\n receive() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\n}\n\n\ninterface WETH is IERC20 {\n function deposit() external payable;\n\n function withdraw(uint256 amount) external;\n}\n",
- "sourcePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol",
- "ast": {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol",
- "exportedSymbols": {
- "WETH": [1431],
- "Wormhole": [1420]
- },
- "id": 1432,
- "license": "Apache 2",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 335,
- "literals": ["solidity", "^", "0.6", ".0"],
- "nodeType": "PragmaDirective",
- "src": "64:23:1"
- },
- {
- "id": 336,
- "literals": ["experimental", "ABIEncoderV2"],
- "nodeType": "PragmaDirective",
- "src": "88:33:1"
- },
- {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "id": 337,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 3009,
- "src": "123:55:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "id": 338,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 3087,
- "src": "179:56:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "id": 339,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 3300,
- "src": "236:59:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "@openzeppelin/contracts/math/SafeMath.sol",
- "id": 340,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 2506,
- "src": "296:51:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "id": 341,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 3659,
- "src": "348:59:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol",
- "file": "./BytesLib.sol",
- "id": 342,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 334,
- "src": "408:24:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
- "file": "./WrappedAsset.sol",
- "id": 343,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 2148,
- "src": "433:28:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "abstract": false,
- "baseContracts": [
- {
- "arguments": null,
- "baseName": {
- "contractScope": null,
- "id": 344,
- "name": "ReentrancyGuard",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3658,
- "src": "484:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_ReentrancyGuard_$3658",
- "typeString": "contract ReentrancyGuard"
- }
- },
- "id": 345,
- "nodeType": "InheritanceSpecifier",
- "src": "484:15:1"
- }
- ],
- "contractDependencies": [3658],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "id": 1420,
- "linearizedBaseContracts": [1420, 3658],
- "name": "Wormhole",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "id": 348,
- "libraryName": {
- "contractScope": null,
- "id": 346,
- "name": "SafeERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3299,
- "src": "512:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "506:27:1",
- "typeName": {
- "contractScope": null,
- "id": 347,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "526:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- }
- },
- {
- "id": 351,
- "libraryName": {
- "contractScope": null,
- "id": 349,
- "name": "BytesLib",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 333,
- "src": "544:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_BytesLib_$333",
- "typeString": "library BytesLib"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "538:25:1",
- "typeName": {
- "id": 350,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "557:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- }
- },
- {
- "id": 354,
- "libraryName": {
- "contractScope": null,
- "id": 352,
- "name": "SafeMath",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 2505,
- "src": "574:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeMath_$2505",
- "typeString": "library SafeMath"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "568:27:1",
- "typeName": {
- "id": 353,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "587:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- {
- "constant": true,
- "id": 357,
- "mutability": "constant",
- "name": "MAX_UINT64",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "601:55:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- },
- "typeName": {
- "id": 355,
- "name": "uint64",
- "nodeType": "ElementaryTypeName",
- "src": "601:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- }
- },
- "value": {
- "argumentTypes": null,
- "hexValue": "31385f3434365f3734345f3037335f3730395f3535315f363135",
- "id": 356,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "630:26:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_18446744073709551615_by_1",
- "typeString": "int_const 18446744073709551615"
- },
- "value": "18_446_744_073_709_551_615"
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "functionSelector": "99da1d3c",
- "id": 359,
- "mutability": "mutable",
- "name": "wrappedAssetMaster",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "708:33:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 358,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "708:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "id": 362,
- "mutability": "mutable",
- "name": "CHAIN_ID",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "776:18:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 360,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "776:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 361,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "793:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "visibility": "internal"
- },
- {
- "constant": true,
- "id": 365,
- "mutability": "constant",
- "name": "WETHAddress",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "846:73:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 363,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "846:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": {
- "argumentTypes": null,
- "hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332",
- "id": 364,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "877:42:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- "value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
- },
- "visibility": "internal"
- },
- {
- "canonicalName": "Wormhole.GuardianSet",
- "id": 371,
- "members": [
- {
- "constant": false,
- "id": 368,
- "mutability": "mutable",
- "name": "keys",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 371,
- "src": "955:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
- "typeString": "address[]"
- },
- "typeName": {
- "baseType": {
- "id": 366,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "955:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 367,
- "length": null,
- "nodeType": "ArrayTypeName",
- "src": "955:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
- "typeString": "address[]"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 370,
- "mutability": "mutable",
- "name": "expiration_time",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 371,
- "src": "979:22:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 369,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "979:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "name": "GuardianSet",
- "nodeType": "StructDefinition",
- "scope": 1420,
- "src": "926:82:1",
- "visibility": "public"
- },
- {
- "anonymous": false,
- "documentation": null,
- "id": 377,
- "name": "LogGuardianSetChanged",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 376,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 373,
- "indexed": false,
- "mutability": "mutable",
- "name": "oldGuardianIndex",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 377,
- "src": "1051:23:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 372,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1051:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 375,
- "indexed": false,
- "mutability": "mutable",
- "name": "newGuardianIndex",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 377,
- "src": "1084:23:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 374,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1084:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1041:72:1"
- },
- "src": "1014:100:1"
- },
- {
- "anonymous": false,
- "documentation": null,
- "id": 395,
- "name": "LogTokensLocked",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 394,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 379,
- "indexed": false,
- "mutability": "mutable",
- "name": "target_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1151:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 378,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1151:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 381,
- "indexed": false,
- "mutability": "mutable",
- "name": "token_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1179:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 380,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1179:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 383,
- "indexed": false,
- "mutability": "mutable",
- "name": "token_decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1206:20:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 382,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1206:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 385,
- "indexed": true,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1236:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 384,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1236:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 387,
- "indexed": true,
- "mutability": "mutable",
- "name": "sender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1267:22:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 386,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1267:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 389,
- "indexed": false,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1299:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 388,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1299:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 391,
- "indexed": false,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1326:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 390,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1326:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 393,
- "indexed": false,
- "mutability": "mutable",
- "name": "nonce",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1350:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 392,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1350:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1141:227:1"
- },
- "src": "1120:249:1"
- },
- {
- "canonicalName": "Wormhole.ParsedVAA",
- "id": 408,
- "members": [
- {
- "constant": false,
- "id": 397,
- "mutability": "mutable",
- "name": "version",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1402:13:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 396,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1402:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 399,
- "mutability": "mutable",
- "name": "hash",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1425:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 398,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1425:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 401,
- "mutability": "mutable",
- "name": "guardian_set_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1447:25:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 400,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1447:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 403,
- "mutability": "mutable",
- "name": "timestamp",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1482:16:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 402,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1482:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 405,
- "mutability": "mutable",
- "name": "action",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1508:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 404,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1508:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 407,
- "mutability": "mutable",
- "name": "payload",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1530:13:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 406,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "1530:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "name": "ParsedVAA",
- "nodeType": "StructDefinition",
- "scope": 1420,
- "src": "1375:175:1",
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "42b0aefa",
- "id": 412,
- "mutability": "mutable",
- "name": "guardian_sets",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1609:51:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)"
- },
- "typeName": {
- "id": 411,
- "keyType": {
- "id": 409,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1617:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Mapping",
- "src": "1609:30:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)"
- },
- "valueType": {
- "contractScope": null,
- "id": 410,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "1627:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "822d82b3",
- "id": 414,
- "mutability": "mutable",
- "name": "guardian_set_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1701:32:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 413,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1701:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "4db47840",
- "id": 416,
- "mutability": "mutable",
- "name": "guardian_set_expirity",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1819:35:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 415,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1819:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "a31fe409",
- "id": 420,
- "mutability": "mutable",
- "name": "consumedVAAs",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1900:44:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- },
- "typeName": {
- "id": 419,
- "keyType": {
- "id": 417,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1908:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Mapping",
- "src": "1900:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- },
- "valueType": {
- "id": 418,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "1919:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "b6694c2a",
- "id": 424,
- "mutability": "mutable",
- "name": "wrappedAssets",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1999:48:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- },
- "typeName": {
- "id": 423,
- "keyType": {
- "id": 421,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "2007:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Mapping",
- "src": "1999:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- },
- "valueType": {
- "id": 422,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2018:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "1a2be4da",
- "id": 428,
- "mutability": "mutable",
- "name": "isWrappedAsset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "2053:46:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
- "typeString": "mapping(address => bool)"
- },
- "typeName": {
- "id": 427,
- "keyType": {
- "id": 425,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2061:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Mapping",
- "src": "2053:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
- "typeString": "mapping(address => bool)"
- },
- "valueType": {
- "id": 426,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "2072:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "body": {
- "id": 455,
- "nodeType": "Block",
- "src": "2227:239:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 441,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 437,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "2237:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 439,
- "indexExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 438,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2251:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "2237:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 440,
- "name": "initial_guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 430,
- "src": "2256:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "src": "2237:39:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "id": 442,
- "nodeType": "ExpressionStatement",
- "src": "2237:39:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 445,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 443,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "2329:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 444,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2350:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2329:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 446,
- "nodeType": "ExpressionStatement",
- "src": "2329:22:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 449,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 447,
- "name": "guardian_set_expirity",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 416,
- "src": "2361:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 448,
- "name": "_guardian_set_expirity",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 434,
- "src": "2385:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "2361:46:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 450,
- "nodeType": "ExpressionStatement",
- "src": "2361:46:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 453,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 451,
- "name": "wrappedAssetMaster",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 359,
- "src": "2418:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 452,
- "name": "wrapped_asset_master",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 432,
- "src": "2439:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "2418:41:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 454,
- "nodeType": "ExpressionStatement",
- "src": "2418:41:1"
- }
- ]
- },
- "documentation": null,
- "id": 456,
- "implemented": true,
- "kind": "constructor",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 435,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 430,
- "mutability": "mutable",
- "name": "initial_guardian_set",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 456,
- "src": "2118:39:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- },
- "typeName": {
- "contractScope": null,
- "id": 429,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "2118:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 432,
- "mutability": "mutable",
- "name": "wrapped_asset_master",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 456,
- "src": "2159:28:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 431,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2159:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 434,
- "mutability": "mutable",
- "name": "_guardian_set_expirity",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 456,
- "src": "2189:29:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 433,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "2189:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2117:102:1"
- },
- "returnParameters": {
- "id": 436,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2227:0:1"
- },
- "scope": 1420,
- "src": "2106:360:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 467,
- "nodeType": "Block",
- "src": "2552:42:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 463,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "2569:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 465,
- "indexExpression": {
- "argumentTypes": null,
- "id": 464,
- "name": "idx",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 458,
- "src": "2583:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2569:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "functionReturnParameters": 462,
- "id": 466,
- "nodeType": "Return",
- "src": "2562:25:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "f951975a",
- "id": 468,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getGuardianSet",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 459,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 458,
- "mutability": "mutable",
- "name": "idx",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 468,
- "src": "2496:10:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 457,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "2496:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2495:12:1"
- },
- "returnParameters": {
- "id": 462,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 461,
- "mutability": "mutable",
- "name": "gs",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 468,
- "src": "2529:21:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- },
- "typeName": {
- "contractScope": null,
- "id": 460,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "2529:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2528:23:1"
- },
- "scope": 1420,
- "src": "2472:122:1",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 523,
- "nodeType": "Block",
- "src": "2673:566:1",
- "statements": [
- {
- "assignments": [476],
- "declarations": [
- {
- "constant": false,
- "id": 476,
- "mutability": "mutable",
- "name": "parsed_vaa",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 523,
- "src": "2683:27:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA"
- },
- "typeName": {
- "contractScope": null,
- "id": 475,
- "name": "ParsedVAA",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 408,
- "src": "2683:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_storage_ptr",
- "typeString": "struct Wormhole.ParsedVAA"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 480,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 478,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 470,
- "src": "2731:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- ],
- "id": 477,
- "name": "parseAndVerifyVAA",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 781,
- "src": "2713:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_struct$_ParsedVAA_$408_memory_ptr_$",
- "typeString": "function (bytes calldata) view returns (struct Wormhole.ParsedVAA memory)"
- }
- },
- "id": 479,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2713:22:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2683:52:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 484,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 481,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "2772:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 482,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "action",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 405,
- "src": "2772:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30783031",
- "id": 483,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2793:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "0x01"
- },
- "src": "2772:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 502,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 499,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "3009:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 500,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "action",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 405,
- "src": "3009:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30783130",
- "id": 501,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3030:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_16_by_1",
- "typeString": "int_const 16"
- },
- "value": "0x10"
- },
- "src": "3009:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "id": 513,
- "nodeType": "Block",
- "src": "3098:53:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "696e76616c69642056414120616374696f6e",
- "id": 510,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3119:20:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
- "typeString": "literal_string \"invalid VAA action\""
- },
- "value": "invalid VAA action"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
- "typeString": "literal_string \"invalid VAA action\""
- }
- ],
- "id": 509,
- "name": "revert",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "src": "3112:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (string memory) pure"
- }
- },
- "id": 511,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3112:28:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 512,
- "nodeType": "ExpressionStatement",
- "src": "3112:28:1"
- }
- ]
- },
- "id": 514,
- "nodeType": "IfStatement",
- "src": "3005:146:1",
- "trueBody": {
- "id": 508,
- "nodeType": "Block",
- "src": "3036:56:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 504,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "3062:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 505,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "payload",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 407,
- "src": "3062:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 503,
- "name": "vaaTransfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1051,
- "src": "3050:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
- "typeString": "function (bytes memory)"
- }
- },
- "id": 506,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3050:31:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 507,
- "nodeType": "ExpressionStatement",
- "src": "3050:31:1"
- }
- ]
- }
- },
- "id": 515,
- "nodeType": "IfStatement",
- "src": "2768:383:1",
- "trueBody": {
- "id": 498,
- "nodeType": "Block",
- "src": "2799:200:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 489,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 486,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "2821:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 487,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "guardian_set_index",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 401,
- "src": "2821:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "id": 488,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "2854:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "2821:51:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574",
- "id": 490,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2874:59:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
- "typeString": "literal_string \"only the current guardian set can change the guardian set\""
- },
- "value": "only the current guardian set can change the guardian set"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
- "typeString": "literal_string \"only the current guardian set can change the guardian set\""
- }
- ],
- "id": 485,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "2813:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 491,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2813:121:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 492,
- "nodeType": "ExpressionStatement",
- "src": "2813:121:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 494,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "2969:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 495,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "payload",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 407,
- "src": "2969:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 493,
- "name": "vaaUpdateGuardianSet",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 889,
- "src": "2948:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
- "typeString": "function (bytes memory)"
- }
- },
- "id": 496,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2948:40:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 497,
- "nodeType": "ExpressionStatement",
- "src": "2948:40:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 521,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 516,
- "name": "consumedVAAs",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 420,
- "src": "3196:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- }
- },
- "id": 519,
- "indexExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 517,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "3209:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 518,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "hash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 399,
- "src": "3209:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "3196:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 520,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3228:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "src": "3196:36:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 522,
- "nodeType": "ExpressionStatement",
- "src": "3196:36:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "3bc0aee6",
- "id": 524,
- "implemented": true,
- "kind": "function",
- "modifiers": [
- {
- "arguments": null,
- "id": 473,
- "modifierName": {
- "argumentTypes": null,
- "id": 472,
- "name": "nonReentrant",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3657,
- "src": "2660:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_modifier$__$",
- "typeString": "modifier ()"
- }
- },
- "nodeType": "ModifierInvocation",
- "src": "2660:12:1"
- }
- ],
- "name": "submitVAA",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 471,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 470,
- "mutability": "mutable",
- "name": "vaa",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 524,
- "src": "2628:18:1",
- "stateVariable": false,
- "storageLocation": "calldata",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 469,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "2628:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2618:34:1"
- },
- "returnParameters": {
- "id": 474,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2673:0:1"
- },
- "scope": 1420,
- "src": "2600:639:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 780,
- "nodeType": "Block",
- "src": "3542:1748:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 538,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 531,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3552:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 533,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "version",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 397,
- "src": "3552:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 536,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3585:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 534,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "3573:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 535,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "3573:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 537,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3573:14:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "3552:35:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 539,
- "nodeType": "ExpressionStatement",
- "src": "3552:35:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 544,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 541,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3605:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 542,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "version",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 397,
- "src": "3605:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 543,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3627:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "src": "3605:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "5641412076657273696f6e20696e636f6d70617469626c65",
- "id": 545,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3630:26:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
- "typeString": "literal_string \"VAA version incompatible\""
- },
- "value": "VAA version incompatible"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
- "typeString": "literal_string \"VAA version incompatible\""
- }
- ],
- "id": 540,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "3597:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 546,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3597:60:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 547,
- "nodeType": "ExpressionStatement",
- "src": "3597:60:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 555,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 548,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3714:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 550,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "guardian_set_index",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 401,
- "src": "3714:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 553,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3759:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 551,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "3746:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 552,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 163,
- "src": "3746:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint32)"
- }
- },
- "id": 554,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3746:15:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "3714:47:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 556,
- "nodeType": "ExpressionStatement",
- "src": "3714:47:1"
- },
- {
- "assignments": [558],
- "declarations": [
- {
- "constant": false,
- "id": 558,
- "mutability": "mutable",
- "name": "len_signers",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 780,
- "src": "3772:19:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 557,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3772:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 563,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 561,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3806:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 559,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "3794:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 560,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "3794:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 562,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3794:14:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "3772:36:1"
- },
- {
- "assignments": [565],
- "declarations": [
- {
- "constant": false,
- "id": 565,
- "mutability": "mutable",
- "name": "offset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 780,
- "src": "3818:11:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 564,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "3818:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 571,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 570,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "36",
- "id": 566,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3832:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_6_by_1",
- "typeString": "int_const 6"
- },
- "value": "6"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 569,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 567,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3836:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "id": 568,
- "name": "len_signers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 558,
- "src": "3841:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3836:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3832:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "3818:34:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 579,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 572,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3897:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 574,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "timestamp",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 403,
- "src": "3897:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 577,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "3933:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 575,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "3920:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 576,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 163,
- "src": "3920:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint32)"
- }
- },
- "id": 578,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3920:20:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "3897:43:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 580,
- "nodeType": "ExpressionStatement",
- "src": "3897:43:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 594,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 581,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3976:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 583,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "hash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 399,
- "src": "3976:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 587,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "4014:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 591,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 588,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4022:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 589,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "4022:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 590,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "4035:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4022:19:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 585,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4004:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 586,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "slice",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 55,
- "src": "4004:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
- }
- },
- "id": 592,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4004:38:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 584,
- "name": "keccak256",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -8,
- "src": "3994:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
- "typeString": "function (bytes memory) pure returns (bytes32)"
- }
- },
- "id": 593,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3994:49:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "3976:67:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 595,
- "nodeType": "ExpressionStatement",
- "src": "3976:67:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 601,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "!",
- "prefix": true,
- "src": "4061:30:1",
- "subExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 597,
- "name": "consumedVAAs",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 420,
- "src": "4062:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- }
- },
- "id": 600,
- "indexExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 598,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "4075:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 599,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "hash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 399,
- "src": "4075:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4062:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "5641412077617320616c7265616479206578656375746564",
- "id": 602,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4093:26:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
- "typeString": "literal_string \"VAA was already executed\""
- },
- "value": "VAA was already executed"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
- "typeString": "literal_string \"VAA was already executed\""
- }
- ],
- "id": 596,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4053:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 603,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4053:67:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 604,
- "nodeType": "ExpressionStatement",
- "src": "4053:67:1"
- },
- {
- "assignments": [606],
- "declarations": [
- {
- "constant": false,
- "id": 606,
- "mutability": "mutable",
- "name": "guardian_set",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 780,
- "src": "4131:31:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- },
- "typeName": {
- "contractScope": null,
- "id": 605,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "4131:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 611,
- "initialValue": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 607,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "4165:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 610,
- "indexExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 608,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "4179:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 609,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "guardian_set_index",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 401,
- "src": "4179:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4165:44:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4131:78:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 617,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 613,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "4227:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 614,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "keys",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 368,
- "src": "4227:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "id": 615,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "4227:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 616,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4254:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "4227:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "696e76616c696420677561726469616e20736574",
- "id": 618,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4257:22:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_ef4d0f2354b2279f26c4ba4477a0c338dcdd31fbb9caa6ef52ec7856b55556f3",
- "typeString": "literal_string \"invalid guardian set\""
- },
- "value": "invalid guardian set"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_ef4d0f2354b2279f26c4ba4477a0c338dcdd31fbb9caa6ef52ec7856b55556f3",
- "typeString": "literal_string \"invalid guardian set\""
- }
- ],
- "id": 612,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4219:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 619,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4219:61:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 620,
- "nodeType": "ExpressionStatement",
- "src": "4219:61:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "id": 631,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 625,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 622,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "4298:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 623,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "expiration_time",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 370,
- "src": "4298:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 624,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4330:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "4298:33:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "||",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 630,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 626,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "4335:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 627,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "expiration_time",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 370,
- "src": "4335:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 628,
- "name": "block",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -4,
- "src": "4366:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_block",
- "typeString": "block"
- }
- },
- "id": 629,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "timestamp",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "4366:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4335:46:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "src": "4298:83:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "677561726469616e20736574206861732065787069726564",
- "id": 632,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4383:26:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
- "typeString": "literal_string \"guardian set has expired\""
- },
- "value": "guardian set has expired"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
- "typeString": "literal_string \"guardian set has expired\""
- }
- ],
- "id": 621,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4290:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 633,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4290:120:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 634,
- "nodeType": "ExpressionStatement",
- "src": "4290:120:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 652,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 650,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 648,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 645,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 642,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 640,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 636,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "4527:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 637,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "keys",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 368,
- "src": "4527:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "id": 638,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "4527:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 639,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4554:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "src": "4527:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "33",
- "id": 641,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4559:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_3_by_1",
- "typeString": "int_const 3"
- },
- "value": "3"
- },
- "src": "4527:33:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 643,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "4526:35:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 644,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4564:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "src": "4526:39:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 646,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "4525:41:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 647,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4569:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "src": "4525:46:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 649,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4574:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "src": "4525:50:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 651,
- "name": "len_signers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 558,
- "src": "4579:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4525:65:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6e6f2071756f72756d",
- "id": 653,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4592:11:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
- "typeString": "literal_string \"no quorum\""
- },
- "value": "no quorum"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
- "typeString": "literal_string \"no quorum\""
- }
- ],
- "id": 635,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4517:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 654,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4517:87:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 655,
- "nodeType": "ExpressionStatement",
- "src": "4517:87:1"
- },
- {
- "assignments": [657],
- "declarations": [
- {
- "constant": false,
- "id": 657,
- "mutability": "mutable",
- "name": "last_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 780,
- "src": "4615:16:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- },
- "typeName": {
- "id": 656,
- "name": "int16",
- "nodeType": "ElementaryTypeName",
- "src": "4615:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 660,
- "initialValue": {
- "argumentTypes": null,
- "id": 659,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "-",
- "prefix": true,
- "src": "4634:3:1",
- "subExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 658,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4636:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "typeDescriptions": {
- "typeIdentifier": "t_rational_minus_1_by_1",
- "typeString": "int_const -1"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4615:22:1"
- },
- {
- "body": {
- "id": 749,
- "nodeType": "Block",
- "src": "4686:465:1",
- "statements": [
- {
- "assignments": [672],
- "declarations": [
- {
- "constant": false,
- "id": 672,
- "mutability": "mutable",
- "name": "index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 749,
- "src": "4700:11:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 671,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "4700:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 681,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 679,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "36",
- "id": 675,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4726:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_6_by_1",
- "typeString": "int_const 6"
- },
- "value": "6"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 678,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 676,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4730:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 677,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4734:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "src": "4730:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4726:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 673,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4714:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 674,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "4714:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 680,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4714:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4700:37:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- },
- "id": 685,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 683,
- "name": "index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 672,
- "src": "4759:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "id": 684,
- "name": "last_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 657,
- "src": "4767:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "src": "4759:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "7369676e617475726520696e6469636573206d75737420626520617363656e64696e67",
- "id": 686,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4779:37:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_de9ff8e5647eeed7691d313f96ed0065761ad2da429d76b3b7868b564890def8",
- "typeString": "literal_string \"signature indices must be ascending\""
- },
- "value": "signature indices must be ascending"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_de9ff8e5647eeed7691d313f96ed0065761ad2da429d76b3b7868b564890def8",
- "typeString": "literal_string \"signature indices must be ascending\""
- }
- ],
- "id": 682,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4751:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 687,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4751:66:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 688,
- "nodeType": "ExpressionStatement",
- "src": "4751:66:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 694,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 689,
- "name": "last_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 657,
- "src": "4831:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 692,
- "name": "index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 672,
- "src": "4850:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 691,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "4844:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_int16_$",
- "typeString": "type(int16)"
- },
- "typeName": {
- "id": 690,
- "name": "int16",
- "nodeType": "ElementaryTypeName",
- "src": "4844:5:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 693,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4844:12:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "src": "4831:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "id": 695,
- "nodeType": "ExpressionStatement",
- "src": "4831:25:1"
- },
- {
- "assignments": [697],
- "declarations": [
- {
- "constant": false,
- "id": 697,
- "mutability": "mutable",
- "name": "r",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 749,
- "src": "4871:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 696,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "4871:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 706,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 704,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "37",
- "id": 700,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4897:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_7_by_1",
- "typeString": "int_const 7"
- },
- "value": "7"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 703,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 701,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4901:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 702,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4905:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "src": "4901:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4897:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 698,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4883:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 699,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toBytes32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 298,
- "src": "4883:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
- }
- },
- "id": 705,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4883:25:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4871:37:1"
- },
- {
- "assignments": [708],
- "declarations": [
- {
- "constant": false,
- "id": 708,
- "mutability": "mutable",
- "name": "s",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 749,
- "src": "4922:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 707,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "4922:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 717,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 715,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3339",
- "id": 711,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4948:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_39_by_1",
- "typeString": "int_const 39"
- },
- "value": "39"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 714,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 712,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4953:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 713,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4957:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "src": "4953:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4948:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 709,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4934:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 710,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toBytes32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 298,
- "src": "4934:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
- }
- },
- "id": 716,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4934:26:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4922:38:1"
- },
- {
- "assignments": [719],
- "declarations": [
- {
- "constant": false,
- "id": 719,
- "mutability": "mutable",
- "name": "v",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 749,
- "src": "4974:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 718,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "4974:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 728,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 726,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3731",
- "id": 722,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4996:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- },
- "value": "71"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 725,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 723,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "5001:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 724,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5005:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "src": "5001:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4996:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 720,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4984:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 721,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "4984:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 727,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4984:24:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4974:34:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 731,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 729,
- "name": "v",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 719,
- "src": "5022:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "+=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "3237",
- "id": 730,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5027:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_27_by_1",
- "typeString": "int_const 27"
- },
- "value": "27"
- },
- "src": "5022:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 732,
- "nodeType": "ExpressionStatement",
- "src": "5022:7:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 745,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 735,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "5061:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 736,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "hash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 399,
- "src": "5061:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 737,
- "name": "v",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 719,
- "src": "5078:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 738,
- "name": "r",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 697,
- "src": "5081:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 739,
- "name": "s",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 708,
- "src": "5084:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "id": 734,
- "name": "ecrecover",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -6,
- "src": "5051:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
- "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
- }
- },
- "id": 740,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5051:35:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 741,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "5090:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 742,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "keys",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 368,
- "src": "5090:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "id": 744,
- "indexExpression": {
- "argumentTypes": null,
- "id": 743,
- "name": "index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 672,
- "src": "5108:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "5090:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "5051:63:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "564141207369676e617475726520696e76616c6964",
- "id": 746,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5116:23:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
- "typeString": "literal_string \"VAA signature invalid\""
- },
- "value": "VAA signature invalid"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
- "typeString": "literal_string \"VAA signature invalid\""
- }
- ],
- "id": 733,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "5043:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 747,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5043:97:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 748,
- "nodeType": "ExpressionStatement",
- "src": "5043:97:1"
- }
- ]
- },
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 667,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 665,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4664:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<",
- "rightExpression": {
- "argumentTypes": null,
- "id": 666,
- "name": "len_signers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 558,
- "src": "4668:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4664:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 750,
- "initializationExpression": {
- "assignments": [662],
- "declarations": [
- {
- "constant": false,
- "id": 662,
- "mutability": "mutable",
- "name": "i",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 750,
- "src": "4652:6:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 661,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "4652:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 664,
- "initialValue": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 663,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4661:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4652:10:1"
- },
- "loopExpression": {
- "expression": {
- "argumentTypes": null,
- "id": 669,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "++",
- "prefix": false,
- "src": "4681:3:1",
- "subExpression": {
- "argumentTypes": null,
- "id": 668,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4681:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 670,
- "nodeType": "ExpressionStatement",
- "src": "4681:3:1"
- },
- "nodeType": "ForStatement",
- "src": "4647:504:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 760,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 751,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "5161:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 753,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "action",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 405,
- "src": "5161:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 758,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 756,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "5193:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "34",
- "id": 757,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5202:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- },
- "value": "4"
- },
- "src": "5193:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 754,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "5181:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 755,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "5181:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 759,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5181:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "5161:43:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 761,
- "nodeType": "ExpressionStatement",
- "src": "5161:43:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 778,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 762,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "5214:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 764,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "payload",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 407,
- "src": "5214:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 769,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 767,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "5245:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 768,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5254:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- },
- "src": "5245:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 776,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 770,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "5257:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 771,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "5257:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 774,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 772,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "5271:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 773,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5280:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- },
- "src": "5271:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 775,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "5270:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5257:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 765,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "5235:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 766,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "slice",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 55,
- "src": "5235:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
- }
- },
- "id": 777,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5235:48:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "src": "5214:69:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 779,
- "nodeType": "ExpressionStatement",
- "src": "5214:69:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "600b9aa6",
- "id": 781,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "parseAndVerifyVAA",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 527,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 526,
- "mutability": "mutable",
- "name": "vaa",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 781,
- "src": "3472:18:1",
- "stateVariable": false,
- "storageLocation": "calldata",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 525,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3472:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3471:20:1"
- },
- "returnParameters": {
- "id": 530,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 529,
- "mutability": "mutable",
- "name": "parsed_vaa",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 781,
- "src": "3513:27:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA"
- },
- "typeName": {
- "contractScope": null,
- "id": 528,
- "name": "ParsedVAA",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 408,
- "src": "3513:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_storage_ptr",
- "typeString": "struct Wormhole.ParsedVAA"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3512:29:1"
- },
- "scope": 1420,
- "src": "3445:1845:1",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 888,
- "nodeType": "Block",
- "src": "5353:859:1",
- "statements": [
- {
- "assignments": [787],
- "declarations": [
- {
- "constant": false,
- "id": 787,
- "mutability": "mutable",
- "name": "new_guardian_set_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5363:29:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 786,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "5363:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 792,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 790,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5409:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 788,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 783,
- "src": "5395:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 789,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 163,
- "src": "5395:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint32)"
- }
- },
- "id": 791,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5395:16:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5363:48:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 798,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 794,
- "name": "new_guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 787,
- "src": "5429:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 797,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 795,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "5455:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 796,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5476:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "src": "5455:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "5429:48:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "696e646578206d75737420696e63726561736520696e207374657073206f662031",
- "id": 799,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5479:35:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_a9c35350c4790f34190b54478b12348e0cbd9c4c717b5d4a6ca5709d71c4f33d",
- "typeString": "literal_string \"index must increase in steps of 1\""
- },
- "value": "index must increase in steps of 1"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_a9c35350c4790f34190b54478b12348e0cbd9c4c717b5d4a6ca5709d71c4f33d",
- "typeString": "literal_string \"index must increase in steps of 1\""
- }
- ],
- "id": 793,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "5421:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 800,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5421:94:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 801,
- "nodeType": "ExpressionStatement",
- "src": "5421:94:1"
- },
- {
- "assignments": [803],
- "declarations": [
- {
- "constant": false,
- "id": 803,
- "mutability": "mutable",
- "name": "len",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5525:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 802,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "5525:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 808,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "34",
- "id": 806,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5550:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- },
- "value": "4"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 804,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 783,
- "src": "5537:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 805,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "5537:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 807,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5537:15:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5525:27:1"
- },
- {
- "assignments": [813],
- "declarations": [
- {
- "constant": false,
- "id": 813,
- "mutability": "mutable",
- "name": "new_guardians",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5563:30:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[]"
- },
- "typeName": {
- "baseType": {
- "id": 811,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5563:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 812,
- "length": null,
- "nodeType": "ArrayTypeName",
- "src": "5563:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
- "typeString": "address[]"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 819,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 817,
- "name": "len",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 803,
- "src": "5610:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 816,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "NewExpression",
- "src": "5596:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
- "typeString": "function (uint256) pure returns (address[] memory)"
- },
- "typeName": {
- "baseType": {
- "id": 814,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5600:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 815,
- "length": null,
- "nodeType": "ArrayTypeName",
- "src": "5600:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
- "typeString": "address[]"
- }
- }
- },
- "id": 818,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5596:18:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5563:51:1"
- },
- {
- "body": {
- "id": 847,
- "nodeType": "Block",
- "src": "5655:103:1",
- "statements": [
- {
- "assignments": [831],
- "declarations": [
- {
- "constant": false,
- "id": 831,
- "mutability": "mutable",
- "name": "addr",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 847,
- "src": "5669:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 830,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5669:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 840,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 838,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 834,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5699:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 837,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 835,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 821,
- "src": "5703:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3230",
- "id": 836,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5707:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_20_by_1",
- "typeString": "int_const 20"
- },
- "value": "20"
- },
- "src": "5703:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5699:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 832,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 783,
- "src": "5684:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 833,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toAddress",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 82,
- "src": "5684:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (address)"
- }
- },
- "id": 839,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5684:26:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5669:41:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 845,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 841,
- "name": "new_guardians",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 813,
- "src": "5724:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "id": 843,
- "indexExpression": {
- "argumentTypes": null,
- "id": 842,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 821,
- "src": "5738:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "5724:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 844,
- "name": "addr",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 831,
- "src": "5743:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "5724:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 846,
- "nodeType": "ExpressionStatement",
- "src": "5724:23:1"
- }
- ]
- },
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 826,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 824,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 821,
- "src": "5641:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<",
- "rightExpression": {
- "argumentTypes": null,
- "id": 825,
- "name": "len",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 803,
- "src": "5645:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "5641:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 848,
- "initializationExpression": {
- "assignments": [821],
- "declarations": [
- {
- "constant": false,
- "id": 821,
- "mutability": "mutable",
- "name": "i",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 848,
- "src": "5629:6:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 820,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "5629:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 823,
- "initialValue": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 822,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5638:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5629:10:1"
- },
- "loopExpression": {
- "expression": {
- "argumentTypes": null,
- "id": 828,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "++",
- "prefix": false,
- "src": "5650:3:1",
- "subExpression": {
- "argumentTypes": null,
- "id": 827,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 821,
- "src": "5650:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 829,
- "nodeType": "ExpressionStatement",
- "src": "5650:3:1"
- },
- "nodeType": "ForStatement",
- "src": "5624:134:1"
- },
- {
- "assignments": [850],
- "declarations": [
- {
- "constant": false,
- "id": 850,
- "mutability": "mutable",
- "name": "old_guardian_set_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5768:29:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 849,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "5768:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 852,
- "initialValue": {
- "argumentTypes": null,
- "id": 851,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "5800:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5768:50:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 855,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 853,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "5828:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 854,
- "name": "new_guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 787,
- "src": "5849:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "5828:43:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 856,
- "nodeType": "ExpressionStatement",
- "src": "5828:43:1"
- },
- {
- "assignments": [858],
- "declarations": [
- {
- "constant": false,
- "id": 858,
- "mutability": "mutable",
- "name": "new_guardian_set",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5882:35:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- },
- "typeName": {
- "contractScope": null,
- "id": 857,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "5882:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 863,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 860,
- "name": "new_guardians",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 813,
- "src": "5932:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 861,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5947:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- },
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 859,
- "name": "GuardianSet",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 371,
- "src": "5920:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_struct$_GuardianSet_$371_storage_ptr_$",
- "typeString": "type(struct Wormhole.GuardianSet storage pointer)"
- }
- },
- "id": 862,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "structConstructorCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5920:29:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5882:67:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 868,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 864,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "5959:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 866,
- "indexExpression": {
- "argumentTypes": null,
- "id": 865,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "5973:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "5959:33:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 867,
- "name": "new_guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 858,
- "src": "5995:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "src": "5959:52:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "id": 869,
- "nodeType": "ExpressionStatement",
- "src": "5959:52:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 881,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 870,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "6021:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 872,
- "indexExpression": {
- "argumentTypes": null,
- "id": 871,
- "name": "old_guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 850,
- "src": "6035:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "6021:37:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "id": 873,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "expiration_time",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 370,
- "src": "6021:53:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 880,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 876,
- "name": "block",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -4,
- "src": "6084:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_block",
- "typeString": "block"
- }
- },
- "id": 877,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "timestamp",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "6084:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 875,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "6077:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint32_$",
- "typeString": "type(uint32)"
- },
- "typeName": {
- "id": 874,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "6077:6:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 878,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6077:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "id": 879,
- "name": "guardian_set_expirity",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 416,
- "src": "6103:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "6077:47:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "6021:103:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 882,
- "nodeType": "ExpressionStatement",
- "src": "6021:103:1"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 884,
- "name": "old_guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 850,
- "src": "6162:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- {
- "argumentTypes": null,
- "id": 885,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "6186:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "id": 883,
- "name": "LogGuardianSetChanged",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 377,
- "src": "6140:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$",
- "typeString": "function (uint32,uint32)"
- }
- },
- "id": 886,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6140:65:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 887,
- "nodeType": "EmitStatement",
- "src": "6135:70:1"
- }
- ]
- },
- "documentation": null,
- "id": 889,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "vaaUpdateGuardianSet",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 784,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 783,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 889,
- "src": "5326:17:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 782,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "5326:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5325:19:1"
- },
- "returnParameters": {
- "id": 785,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "5353:0:1"
- },
- "scope": 1420,
- "src": "5296:916:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- {
- "body": {
- "id": 1050,
- "nodeType": "Block",
- "src": "6266:1644:1",
- "statements": [
- {
- "assignments": [895],
- "declarations": [
- {
- "constant": false,
- "id": 895,
- "mutability": "mutable",
- "name": "source_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6319:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 894,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "6319:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 900,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "34",
- "id": 898,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6353:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- },
- "value": "4"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 896,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6340:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 897,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "6340:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 899,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6340:15:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6319:36:1"
- },
- {
- "assignments": [902],
- "declarations": [
- {
- "constant": false,
- "id": 902,
- "mutability": "mutable",
- "name": "target_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6366:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 901,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "6366:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 907,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 905,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6400:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 903,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6387:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 904,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "6387:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 906,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6387:15:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6366:36:1"
- },
- {
- "assignments": [909],
- "declarations": [
- {
- "constant": false,
- "id": 909,
- "mutability": "mutable",
- "name": "target_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6521:22:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 908,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "6521:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 916,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- },
- "id": 914,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3338",
- "id": 912,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6561:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_38_by_1",
- "typeString": "int_const 38"
- },
- "value": "38"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3132",
- "id": 913,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6566:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_12_by_1",
- "typeString": "int_const 12"
- },
- "value": "12"
- },
- "src": "6561:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 910,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6546:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 911,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toAddress",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 82,
- "src": "6546:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (address)"
- }
- },
- "id": 915,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6546:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6521:48:1"
- },
- {
- "assignments": [918],
- "declarations": [
- {
- "constant": false,
- "id": 918,
- "mutability": "mutable",
- "name": "token_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6580:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 917,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "6580:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 923,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "3730",
- "id": 921,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6613:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_70_by_1",
- "typeString": "int_const 70"
- },
- "value": "70"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_70_by_1",
- "typeString": "int_const 70"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 919,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6600:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 920,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "6600:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 922,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6600:16:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6580:36:1"
- },
- {
- "assignments": [925],
- "declarations": [
- {
- "constant": false,
- "id": 925,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6680:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 924,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6680:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 930,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "313034",
- "id": 928,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6712:3:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_104_by_1",
- "typeString": "int_const 104"
- },
- "value": "104"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_104_by_1",
- "typeString": "int_const 104"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 926,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6697:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 927,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint256",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 271,
- "src": "6697:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint256)"
- }
- },
- "id": 929,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6697:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6680:36:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 934,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 932,
- "name": "source_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 895,
- "src": "6735:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 933,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 902,
- "src": "6751:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "6735:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564",
- "id": 935,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6765:40:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
- "typeString": "literal_string \"same chain transfers are not supported\""
- },
- "value": "same chain transfers are not supported"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
- "typeString": "literal_string \"same chain transfers are not supported\""
- }
- ],
- "id": 931,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "6727:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 936,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6727:79:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 937,
- "nodeType": "ExpressionStatement",
- "src": "6727:79:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 941,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 939,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 902,
- "src": "6824:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "id": 940,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "6840:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "6824:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "7472616e73666572206d75737420626520696e636f6d696e67",
- "id": 942,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6850:27:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
- "typeString": "literal_string \"transfer must be incoming\""
- },
- "value": "transfer must be incoming"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
- "typeString": "literal_string \"transfer must be incoming\""
- }
- ],
- "id": 938,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "6816:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 943,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6816:62:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 944,
- "nodeType": "ExpressionStatement",
- "src": "6816:62:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 947,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 945,
- "name": "token_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 918,
- "src": "6893:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 946,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "6908:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "6893:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "id": 1048,
- "nodeType": "Block",
- "src": "7514:390:1",
- "statements": [
- {
- "assignments": [1005],
- "declarations": [
- {
- "constant": false,
- "id": 1005,
- "mutability": "mutable",
- "name": "token_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1048,
- "src": "7528:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1004,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7528:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1012,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- },
- "id": 1010,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3731",
- "id": 1008,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7567:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- },
- "value": "71"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3132",
- "id": 1009,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7572:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_12_by_1",
- "typeString": "int_const 12"
- },
- "value": "12"
- },
- "src": "7567:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1006,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "7552:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 1007,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toAddress",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 82,
- "src": "7552:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (address)"
- }
- },
- "id": 1011,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7552:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "7528:47:1"
- },
- {
- "assignments": [1014],
- "declarations": [
- {
- "constant": false,
- "id": 1014,
- "mutability": "mutable",
- "name": "decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1048,
- "src": "7590:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1013,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "7590:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1020,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1016,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1005,
- "src": "7613:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1015,
- "name": "ERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3008,
- "src": "7607:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_ERC20_$3008_$",
- "typeString": "type(contract ERC20)"
- }
- },
- "id": 1017,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7607:20:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_ERC20_$3008",
- "typeString": "contract ERC20"
- }
- },
- "id": 1018,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "decimals",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2584,
- "src": "7607:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
- "typeString": "function () view external returns (uint8)"
- }
- },
- "id": 1019,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7607:31:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "7590:48:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1023,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1021,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1014,
- "src": "7727:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1022,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7738:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "7727:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 1039,
- "nodeType": "IfStatement",
- "src": "7723:99:1",
- "trueBody": {
- "id": 1038,
- "nodeType": "Block",
- "src": "7741:81:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 1036,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1024,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 925,
- "src": "7759:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1034,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1027,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7779:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1032,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1030,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1014,
- "src": "7793:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1031,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7804:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "7793:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1029,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "7785:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1028,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7785:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1033,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7785:21:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7779:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1025,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 925,
- "src": "7768:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1026,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "mul",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2388,
- "src": "7768:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1035,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7768:39:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7759:48:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1037,
- "nodeType": "ExpressionStatement",
- "src": "7759:48:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1044,
- "name": "target_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 909,
- "src": "7870:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1045,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 925,
- "src": "7886:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1041,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1005,
- "src": "7842:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1040,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "7835:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1042,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7835:21:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1043,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "safeTransfer",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3120,
- "src": "7835:34:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$3086_$",
- "typeString": "function (contract IERC20,address,uint256)"
- }
- },
- "id": 1046,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7835:58:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1047,
- "nodeType": "ExpressionStatement",
- "src": "7835:58:1"
- }
- ]
- },
- "id": 1049,
- "nodeType": "IfStatement",
- "src": "6889:1015:1",
- "trueBody": {
- "id": 1003,
- "nodeType": "Block",
- "src": "6918:590:1",
- "statements": [
- {
- "assignments": [949],
- "declarations": [
- {
- "constant": false,
- "id": 949,
- "mutability": "mutable",
- "name": "token_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1003,
- "src": "6932:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 948,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "6932:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 954,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "3731",
- "id": 952,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6971:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- },
- "value": "71"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 950,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6956:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 951,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toBytes32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 298,
- "src": "6956:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
- }
- },
- "id": 953,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6956:18:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6932:42:1"
- },
- {
- "assignments": [956],
- "declarations": [
- {
- "constant": false,
- "id": 956,
- "mutability": "mutable",
- "name": "asset_id",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1003,
- "src": "6988:16:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 955,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "6988:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 964,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 960,
- "name": "token_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 918,
- "src": "7034:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 961,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 949,
- "src": "7047:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 958,
- "name": "abi",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -1,
- "src": "7017:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_abi",
- "typeString": "abi"
- }
- },
- "id": 959,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "memberName": "encodePacked",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "7017:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
- "typeString": "function () pure returns (bytes memory)"
- }
- },
- "id": 962,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7017:44:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 957,
- "name": "keccak256",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -8,
- "src": "7007:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
- "typeString": "function (bytes memory) pure returns (bytes32)"
- }
- },
- "id": 963,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7007:55:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6988:74:1"
- },
- {
- "assignments": [966],
- "declarations": [
- {
- "constant": false,
- "id": 966,
- "mutability": "mutable",
- "name": "wrapped_asset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1003,
- "src": "7154:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 965,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7154:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 970,
- "initialValue": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 967,
- "name": "wrappedAssets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 424,
- "src": "7178:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- }
- },
- "id": 969,
- "indexExpression": {
- "argumentTypes": null,
- "id": 968,
- "name": "asset_id",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 956,
- "src": "7192:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "7178:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "7154:47:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 976,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 971,
- "name": "wrapped_asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 966,
- "src": "7219:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 974,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7244:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 973,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "7236:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 972,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7236:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 975,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7236:10:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "7219:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 994,
- "nodeType": "IfStatement",
- "src": "7215:212:1",
- "trueBody": {
- "id": 993,
- "nodeType": "Block",
- "src": "7248:179:1",
- "statements": [
- {
- "assignments": [978],
- "declarations": [
- {
- "constant": false,
- "id": 978,
- "mutability": "mutable",
- "name": "asset_decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 993,
- "src": "7266:20:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 977,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "7266:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 983,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "313033",
- "id": 981,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7302:3:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_103_by_1",
- "typeString": "int_const 103"
- },
- "value": "103"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_103_by_1",
- "typeString": "int_const 103"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 979,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "7289:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 980,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "7289:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 982,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7289:17:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "7266:40:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 991,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 984,
- "name": "wrapped_asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 966,
- "src": "7324:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 986,
- "name": "asset_id",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 956,
- "src": "7359:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 987,
- "name": "token_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 918,
- "src": "7369:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 988,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 949,
- "src": "7382:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 989,
- "name": "asset_decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 978,
- "src": "7397:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 985,
- "name": "deployWrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1094,
- "src": "7340:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_uint8_$returns$_t_address_$",
- "typeString": "function (bytes32,uint8,bytes32,uint8) returns (address)"
- }
- },
- "id": 990,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7340:72:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "7324:88:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 992,
- "nodeType": "ExpressionStatement",
- "src": "7324:88:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 999,
- "name": "target_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 909,
- "src": "7474:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1000,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 925,
- "src": "7490:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 996,
- "name": "wrapped_asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 966,
- "src": "7454:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 995,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "7441:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 997,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7441:27:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 998,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "mint",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1511,
- "src": "7441:32:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,uint256) external"
- }
- },
- "id": 1001,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7441:56:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1002,
- "nodeType": "ExpressionStatement",
- "src": "7441:56:1"
- }
- ]
- }
- }
- ]
- },
- "documentation": null,
- "id": 1051,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "vaaTransfer",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 892,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 891,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1051,
- "src": "6239:17:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 890,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "6239:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6238:19:1"
- },
- "returnParameters": {
- "id": 893,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "6266:0:1"
- },
- "scope": 1420,
- "src": "6218:1692:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- {
- "body": {
- "id": 1093,
- "nodeType": "Block",
- "src": "8047:808:1",
- "statements": [
- {
- "assignments": [1065],
- "declarations": [
- {
- "constant": false,
- "id": 1065,
- "mutability": "mutable",
- "name": "targetBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1093,
- "src": "8225:19:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes20",
- "typeString": "bytes20"
- },
- "typeName": {
- "id": 1064,
- "name": "bytes20",
- "nodeType": "ElementaryTypeName",
- "src": "8225:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes20",
- "typeString": "bytes20"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1070,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1068,
- "name": "wrappedAssetMaster",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 359,
- "src": "8255:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1067,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "8247:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes20_$",
- "typeString": "type(bytes20)"
- },
- "typeName": {
- "id": 1066,
- "name": "bytes20",
- "nodeType": "ElementaryTypeName",
- "src": "8247:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1069,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8247:27:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes20",
- "typeString": "bytes20"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "8225:49:1"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "8293:348:1",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "8307:24:1",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8326:4:1",
- "type": "",
- "value": "0x40"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "8320:5:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8320:11:1"
- },
- "variables": [
- {
- "name": "clone",
- "nodeType": "YulTypedName",
- "src": "8311:5:1",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "clone",
- "nodeType": "YulIdentifier",
- "src": "8351:5:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8358:66:1",
- "type": "",
- "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "8344:6:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8344:81:1"
- },
- "nodeType": "YulExpressionStatement",
- "src": "8344:81:1"
- },
- {
- "expression": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "clone",
- "nodeType": "YulIdentifier",
- "src": "8449:5:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8456:4:1",
- "type": "",
- "value": "0x14"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8445:3:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8445:16:1"
- },
- {
- "name": "targetBytes",
- "nodeType": "YulIdentifier",
- "src": "8463:11:1"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "8438:6:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8438:37:1"
- },
- "nodeType": "YulExpressionStatement",
- "src": "8438:37:1"
- },
- {
- "expression": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "clone",
- "nodeType": "YulIdentifier",
- "src": "8499:5:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8506:4:1",
- "type": "",
- "value": "0x28"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8495:3:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8495:16:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8513:66:1",
- "type": "",
- "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "8488:6:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8488:92:1"
- },
- "nodeType": "YulExpressionStatement",
- "src": "8488:92:1"
- },
- {
- "nodeType": "YulAssignment",
- "src": "8593:38:1",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8610:1:1",
- "type": "",
- "value": "0"
- },
- {
- "name": "clone",
- "nodeType": "YulIdentifier",
- "src": "8613:5:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8620:4:1",
- "type": "",
- "value": "0x37"
- },
- {
- "name": "seed",
- "nodeType": "YulIdentifier",
- "src": "8626:4:1"
- }
- ],
- "functionName": {
- "name": "create2",
- "nodeType": "YulIdentifier",
- "src": "8602:7:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8602:29:1"
- },
- "variableNames": [
- {
- "name": "asset",
- "nodeType": "YulIdentifier",
- "src": "8593:5:1"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 1062,
- "isOffset": false,
- "isSlot": false,
- "src": "8593:5:1",
- "valueSize": 1
- },
- {
- "declaration": 1053,
- "isOffset": false,
- "isSlot": false,
- "src": "8626:4:1",
- "valueSize": 1
- },
- {
- "declaration": 1065,
- "isOffset": false,
- "isSlot": false,
- "src": "8463:11:1",
- "valueSize": 1
- }
- ],
- "id": 1071,
- "nodeType": "InlineAssembly",
- "src": "8284:357:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1076,
- "name": "token_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1055,
- "src": "8710:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1077,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1057,
- "src": "8723:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1078,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1059,
- "src": "8738:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1073,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1062,
- "src": "8692:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1072,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "8679:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 1074,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8679:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 1075,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "initialize",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1490,
- "src": "8679:30:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$_t_uint8_$returns$__$",
- "typeString": "function (uint8,bytes32,uint8) external"
- }
- },
- "id": 1079,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8679:68:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1080,
- "nodeType": "ExpressionStatement",
- "src": "8679:68:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1085,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1081,
- "name": "wrappedAssets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 424,
- "src": "8783:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- }
- },
- "id": 1083,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1082,
- "name": "seed",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1053,
- "src": "8797:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "8783:19:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 1084,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1062,
- "src": "8805:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "8783:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 1086,
- "nodeType": "ExpressionStatement",
- "src": "8783:27:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1091,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1087,
- "name": "isWrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 428,
- "src": "8820:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
- "typeString": "mapping(address => bool)"
- }
- },
- "id": 1089,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1088,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1062,
- "src": "8835:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "8820:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 1090,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8844:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "src": "8820:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 1092,
- "nodeType": "ExpressionStatement",
- "src": "8820:28:1"
- }
- ]
- },
- "documentation": null,
- "id": 1094,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "deployWrappedAsset",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1060,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1053,
- "mutability": "mutable",
- "name": "seed",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "7944:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1052,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "7944:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1055,
- "mutability": "mutable",
- "name": "token_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "7958:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1054,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "7958:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1057,
- "mutability": "mutable",
- "name": "token_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "7977:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1056,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "7977:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1059,
- "mutability": "mutable",
- "name": "decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "8000:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1058,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "8000:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7943:72:1"
- },
- "returnParameters": {
- "id": 1063,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1062,
- "mutability": "mutable",
- "name": "asset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "8033:13:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1061,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8033:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "8032:15:1"
- },
- "scope": 1420,
- "src": "7916:939:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- {
- "body": {
- "id": 1313,
- "nodeType": "Block",
- "src": "9057:1779:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1114,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1112,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1102,
- "src": "9075:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1113,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "9091:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "9075:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6d757374206e6f74207472616e7366657220746f207468652073616d6520636861696e",
- "id": 1115,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9101:37:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- },
- "value": "must not transfer to the same chain"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- }
- ],
- "id": 1111,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "9067:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1116,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9067:72:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1117,
- "nodeType": "ExpressionStatement",
- "src": "9067:72:1"
- },
- {
- "assignments": [1119],
- "declarations": [
- {
- "constant": false,
- "id": 1119,
- "mutability": "mutable",
- "name": "asset_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1313,
- "src": "9150:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1118,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "9150:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1121,
- "initialValue": {
- "argumentTypes": null,
- "id": 1120,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "9170:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "9150:28:1"
- },
- {
- "assignments": [1123],
- "declarations": [
- {
- "constant": false,
- "id": 1123,
- "mutability": "mutable",
- "name": "asset_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1313,
- "src": "9188:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1122,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "9188:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1124,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "9188:21:1"
- },
- {
- "assignments": [1126],
- "declarations": [
- {
- "constant": false,
- "id": 1126,
- "mutability": "mutable",
- "name": "decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1313,
- "src": "9219:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1125,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "9219:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1132,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1128,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9242:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1127,
- "name": "ERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3008,
- "src": "9236:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_ERC20_$3008_$",
- "typeString": "type(contract ERC20)"
- }
- },
- "id": 1129,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9236:12:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_ERC20_$3008",
- "typeString": "contract ERC20"
- }
- },
- "id": 1130,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "decimals",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2584,
- "src": "9236:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
- "typeString": "function () view external returns (uint8)"
- }
- },
- "id": 1131,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9236:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "9219:40:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1133,
- "name": "isWrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 428,
- "src": "9274:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
- "typeString": "mapping(address => bool)"
- }
- },
- "id": 1135,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1134,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9289:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "9274:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "id": 1286,
- "nodeType": "Block",
- "src": "9496:1091:1",
- "statements": [
- {
- "assignments": [1163],
- "declarations": [
- {
- "constant": false,
- "id": 1163,
- "mutability": "mutable",
- "name": "balanceBefore",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1286,
- "src": "9510:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1162,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "9510:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1173,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1170,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "9566:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "id": 1169,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9558:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1168,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9558:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1171,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9558:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1165,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9541:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1164,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "9534:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1166,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9534:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1167,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "balanceOf",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3025,
- "src": "9534:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
- "typeString": "function (address) view external returns (uint256)"
- }
- },
- "id": 1172,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9534:38:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "9510:62:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1178,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "9617:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1179,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "9617:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1182,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "9637:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "id": 1181,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9629:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1180,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9629:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1183,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9629:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 1184,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "9644:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1175,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9593:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1174,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "9586:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1176,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9586:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1177,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "safeTransferFrom",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3145,
- "src": "9586:30:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$3086_$",
- "typeString": "function (contract IERC20,address,address,uint256)"
- }
- },
- "id": 1185,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9586:65:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1186,
- "nodeType": "ExpressionStatement",
- "src": "9586:65:1"
- },
- {
- "assignments": [1188],
- "declarations": [
- {
- "constant": false,
- "id": 1188,
- "mutability": "mutable",
- "name": "balanceAfter",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1286,
- "src": "9665:20:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1187,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "9665:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1198,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1195,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "9720:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "id": 1194,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9712:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1193,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9712:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1196,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9712:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1190,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9695:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1189,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "9688:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1191,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9688:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1192,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "balanceOf",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3025,
- "src": "9688:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
- "typeString": "function (address) view external returns (uint256)"
- }
- },
- "id": 1197,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9688:38:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "9665:61:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1204,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1199,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "9931:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1202,
- "name": "balanceBefore",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1163,
- "src": "9957:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1200,
- "name": "balanceAfter",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1188,
- "src": "9940:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1201,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2354,
- "src": "9940:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1203,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9940:31:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "9931:40:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1205,
- "nodeType": "ExpressionStatement",
- "src": "9931:40:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1208,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1206,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10046:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1207,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10057:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10046:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 1254,
- "nodeType": "IfStatement",
- "src": "10042:344:1",
- "trueBody": {
- "id": 1253,
- "nodeType": "Block",
- "src": "10060:326:1",
- "statements": [
- {
- "assignments": [1210],
- "declarations": [
- {
- "constant": false,
- "id": 1210,
- "mutability": "mutable",
- "name": "original_amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1253,
- "src": "10078:23:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1209,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10078:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1212,
- "initialValue": {
- "argumentTypes": null,
- "id": 1211,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10104:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "10078:32:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1225,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1213,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10128:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1223,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1216,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10148:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1221,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1219,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10162:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1220,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10173:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10162:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1218,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10154:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1217,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10154:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1222,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10154:21:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "10148:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1214,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10137:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1215,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "div",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2410,
- "src": "10137:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1224,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10137:39:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "10128:48:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1226,
- "nodeType": "ExpressionStatement",
- "src": "10128:48:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "id": 1227,
- "name": "refund_dust",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1106,
- "src": "10199:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 1248,
- "nodeType": "IfStatement",
- "src": "10195:146:1",
- "trueBody": {
- "id": 1247,
- "nodeType": "Block",
- "src": "10212:129:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1232,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "10261:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1233,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "10261:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1243,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1236,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10293:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1241,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1239,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10307:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1240,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10318:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10307:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1238,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10299:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1237,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10299:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1242,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10299:21:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "10293:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1234,
- "name": "original_amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1210,
- "src": "10273:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1235,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "mod",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2432,
- "src": "10273:19:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1244,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10273:48:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1229,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "10241:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1228,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "10234:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1230,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10234:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1231,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "safeTransfer",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3120,
- "src": "10234:26:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$3086_$",
- "typeString": "function (contract IERC20,address,uint256)"
- }
- },
- "id": 1245,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10234:88:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1246,
- "nodeType": "ExpressionStatement",
- "src": "10234:88:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1251,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1249,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10359:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1250,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10370:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10359:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 1252,
- "nodeType": "ExpressionStatement",
- "src": "10359:12:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1272,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1269,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1258,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10425:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1267,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1262,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "10445:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1261,
- "name": "ERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3008,
- "src": "10439:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_ERC20_$3008_$",
- "typeString": "type(contract ERC20)"
- }
- },
- "id": 1263,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10439:12:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_ERC20_$3008",
- "typeString": "contract ERC20"
- }
- },
- "id": 1264,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "decimals",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2584,
- "src": "10439:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
- "typeString": "function () view external returns (uint8)"
- }
- },
- "id": 1265,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10439:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1266,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10465:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10439:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1260,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10431:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1259,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10431:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1268,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10431:36:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "10425:42:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1256,
- "name": "balanceAfter",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1188,
- "src": "10408:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1257,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "div",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2410,
- "src": "10408:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1270,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10408:60:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1271,
- "name": "MAX_UINT64",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 357,
- "src": "10472:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- }
- },
- "src": "10408:74:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6272696467652062616c616e636520776f756c6420657863656564206d6178696d756d",
- "id": 1273,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10484:37:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4",
- "typeString": "literal_string \"bridge balance would exceed maximum\""
- },
- "value": "bridge balance would exceed maximum"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4",
- "typeString": "literal_string \"bridge balance would exceed maximum\""
- }
- ],
- "id": 1255,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "10400:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1274,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10400:122:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1275,
- "nodeType": "ExpressionStatement",
- "src": "10400:122:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1284,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1276,
- "name": "asset_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1123,
- "src": "10537:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1281,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "10569:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1280,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10561:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1279,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10561:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1282,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10561:14:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1278,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10553:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes32_$",
- "typeString": "type(bytes32)"
- },
- "typeName": {
- "id": 1277,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "10553:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1283,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10553:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "10537:39:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1285,
- "nodeType": "ExpressionStatement",
- "src": "10537:39:1"
- }
- ]
- },
- "id": 1287,
- "nodeType": "IfStatement",
- "src": "9270:1317:1",
- "trueBody": {
- "id": 1161,
- "nodeType": "Block",
- "src": "9297:193:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1140,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "9336:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1141,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "9336:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 1142,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "9348:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1137,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9324:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1136,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "9311:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 1138,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9311:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 1139,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "burn",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1532,
- "src": "9311:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,uint256) external"
- }
- },
- "id": 1143,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9311:44:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1144,
- "nodeType": "ExpressionStatement",
- "src": "9311:44:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1151,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1145,
- "name": "asset_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1119,
- "src": "9369:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1147,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9396:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1146,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "9383:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 1148,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9383:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 1149,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "assetChain",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1443,
- "src": "9383:30:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
- "typeString": "function () view external returns (uint8)"
- }
- },
- "id": 1150,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9383:32:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "9369:46:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 1152,
- "nodeType": "ExpressionStatement",
- "src": "9369:46:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1159,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1153,
- "name": "asset_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1123,
- "src": "9429:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1155,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9458:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1154,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "9445:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 1156,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9445:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 1157,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "assetAddress",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1445,
- "src": "9445:32:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
- "typeString": "function () view external returns (bytes32)"
- }
- },
- "id": 1158,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9445:34:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "9429:50:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1160,
- "nodeType": "ExpressionStatement",
- "src": "9429:50:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1291,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1289,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10644:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1290,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10654:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "10644:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "7472756e636174656420616d6f756e74206d757374206e6f742062652030",
- "id": 1292,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10657:32:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- },
- "value": "truncated amount must not be 0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- }
- ],
- "id": 1288,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "10636:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1293,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10636:54:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1294,
- "nodeType": "ExpressionStatement",
- "src": "10636:54:1"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1296,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1102,
- "src": "10722:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1297,
- "name": "asset_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1119,
- "src": "10736:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1298,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10749:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1299,
- "name": "asset_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1123,
- "src": "10759:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1304,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "10790:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1305,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "10790:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "id": 1303,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10782:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1302,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10782:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1306,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10782:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1301,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10774:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes32_$",
- "typeString": "type(bytes32)"
- },
- "typeName": {
- "id": 1300,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "10774:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1307,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10774:28:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1308,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1100,
- "src": "10804:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1309,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10815:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "id": 1310,
- "name": "nonce",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1104,
- "src": "10823:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "id": 1295,
- "name": "LogTokensLocked",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 395,
- "src": "10706:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$",
- "typeString": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)"
- }
- },
- "id": 1311,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10706:123:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1312,
- "nodeType": "EmitStatement",
- "src": "10701:128:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "70713960",
- "id": 1314,
- "implemented": true,
- "kind": "function",
- "modifiers": [
- {
- "arguments": null,
- "id": 1109,
- "modifierName": {
- "argumentTypes": null,
- "id": 1108,
- "name": "nonReentrant",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3657,
- "src": "9044:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_modifier$__$",
- "typeString": "modifier ()"
- }
- },
- "nodeType": "ModifierInvocation",
- "src": "9044:12:1"
- }
- ],
- "name": "lockAssets",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1107,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1096,
- "mutability": "mutable",
- "name": "asset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8890:13:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1095,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8890:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1098,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8913:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1097,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "8913:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1100,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8937:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1099,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "8937:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1102,
- "mutability": "mutable",
- "name": "target_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8964:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1101,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "8964:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1104,
- "mutability": "mutable",
- "name": "nonce",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8992:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 1103,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "8992:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1106,
- "mutability": "mutable",
- "name": "refund_dust",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "9014:16:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1105,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "9014:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "8880:156:1"
- },
- "returnParameters": {
- "id": 1110,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "9057:0:1"
- },
- "scope": 1420,
- "src": "8861:1975:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1402,
- "nodeType": "Block",
- "src": "10970:636:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1328,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1326,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1318,
- "src": "10988:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1327,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "11004:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "10988:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6d757374206e6f74207472616e7366657220746f207468652073616d6520636861696e",
- "id": 1329,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11014:37:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- },
- "value": "must not transfer to the same chain"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- }
- ],
- "id": 1325,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "10980:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1330,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10980:72:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1331,
- "nodeType": "ExpressionStatement",
- "src": "10980:72:1"
- },
- {
- "assignments": [1333],
- "declarations": [
- {
- "constant": false,
- "id": 1333,
- "mutability": "mutable",
- "name": "remainder",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1402,
- "src": "11063:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1332,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11063:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1341,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- },
- "id": 1339,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1337,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11097:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1338,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11103:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "11097:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1334,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11083:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1335,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "value",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11083:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1336,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "mod",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2432,
- "src": "11083:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1340,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11083:22:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "11063:42:1"
- },
- {
- "assignments": [1343],
- "declarations": [
- {
- "constant": false,
- "id": 1343,
- "mutability": "mutable",
- "name": "transfer_amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1402,
- "src": "11115:23:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1342,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11115:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1351,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- },
- "id": 1349,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1347,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11155:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1348,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11161:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "11155:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1344,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11141:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1345,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "value",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11141:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1346,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "div",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2410,
- "src": "11141:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1350,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11141:22:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "11115:48:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1355,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1353,
- "name": "transfer_amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1343,
- "src": "11181:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1354,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11200:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "11181:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "7472756e636174656420616d6f756e74206d757374206e6f742062652030",
- "id": 1356,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11203:32:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- },
- "value": "truncated amount must not be 0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- }
- ],
- "id": 1352,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "11173:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1357,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11173:63:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1358,
- "nodeType": "ExpressionStatement",
- "src": "11173:63:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1364,
- "name": "remainder",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1333,
- "src": "11302:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1359,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11282:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1362,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11282:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "id": 1363,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "transfer",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11282:19:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
- "typeString": "function (uint256)"
- }
- },
- "id": 1365,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11282:30:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1366,
- "nodeType": "ExpressionStatement",
- "src": "11282:30:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1368,
- "name": "WETHAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 365,
- "src": "11361:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1367,
- "name": "WETH",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1431,
- "src": "11356:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WETH_$1431_$",
- "typeString": "type(contract WETH)"
- }
- },
- "id": 1369,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11356:17:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WETH_$1431",
- "typeString": "contract WETH"
- }
- },
- "id": 1370,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "deposit",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1425,
- "src": "11356:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_payable$__$returns$__$",
- "typeString": "function () payable external"
- }
- },
- "id": 1375,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "names": ["value"],
- "nodeType": "FunctionCallOptions",
- "options": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1374,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1371,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11390:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1372,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "value",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11390:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1373,
- "name": "remainder",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1333,
- "src": "11402:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "11390:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "src": "11356:56:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_payable$__$returns$__$value",
- "typeString": "function () payable external"
- }
- },
- "id": 1376,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11356:58:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1377,
- "nodeType": "ExpressionStatement",
- "src": "11356:58:1"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1379,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1318,
- "src": "11477:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1380,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "11491:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1381,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11501:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1386,
- "name": "WETHAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 365,
- "src": "11520:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1385,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "11512:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1384,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11512:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1387,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11512:20:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1383,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "11504:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes32_$",
- "typeString": "type(bytes32)"
- },
- "typeName": {
- "id": 1382,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "11504:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1388,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11504:29:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1393,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11551:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1394,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11551:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "id": 1392,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "11543:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1391,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11543:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1395,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11543:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1390,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "11535:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes32_$",
- "typeString": "type(bytes32)"
- },
- "typeName": {
- "id": 1389,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "11535:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1396,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11535:28:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1397,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1316,
- "src": "11565:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1398,
- "name": "transfer_amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1343,
- "src": "11576:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "id": 1399,
- "name": "nonce",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1320,
- "src": "11593:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "id": 1378,
- "name": "LogTokensLocked",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 395,
- "src": "11461:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$",
- "typeString": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)"
- }
- },
- "id": 1400,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11461:138:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1401,
- "nodeType": "EmitStatement",
- "src": "11456:143:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "58d62e46",
- "id": 1403,
- "implemented": true,
- "kind": "function",
- "modifiers": [
- {
- "arguments": null,
- "id": 1323,
- "modifierName": {
- "argumentTypes": null,
- "id": 1322,
- "name": "nonReentrant",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3657,
- "src": "10957:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_modifier$__$",
- "typeString": "modifier ()"
- }
- },
- "nodeType": "ModifierInvocation",
- "src": "10957:12:1"
- }
- ],
- "name": "lockETH",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1321,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1316,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1403,
- "src": "10868:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1315,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "10868:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1318,
- "mutability": "mutable",
- "name": "target_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1403,
- "src": "10895:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1317,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "10895:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1320,
- "mutability": "mutable",
- "name": "nonce",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1403,
- "src": "10923:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 1319,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "10923:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "10858:83:1"
- },
- "returnParameters": {
- "id": 1324,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "10970:0:1"
- },
- "scope": 1420,
- "src": "10842:764:1",
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1410,
- "nodeType": "Block",
- "src": "11640:57:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
- "id": 1407,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11648:46:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- },
- "value": "please use lockETH to transfer ETH to Solana"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- }
- ],
- "id": 1406,
- "name": "revert",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "src": "11641:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (string memory) pure"
- }
- },
- "id": 1408,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11641:54:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1409,
- "nodeType": "ExpressionStatement",
- "src": "11641:54:1"
- }
- ]
- },
- "documentation": null,
- "id": 1411,
- "implemented": true,
- "kind": "fallback",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1404,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11620:2:1"
- },
- "returnParameters": {
- "id": 1405,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11640:0:1"
- },
- "scope": 1420,
- "src": "11612:85:1",
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": {
- "id": 1418,
- "nodeType": "Block",
- "src": "11730:57:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
- "id": 1415,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11738:46:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- },
- "value": "please use lockETH to transfer ETH to Solana"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- }
- ],
- "id": 1414,
- "name": "revert",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "src": "11731:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (string memory) pure"
- }
- },
- "id": 1416,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11731:54:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1417,
- "nodeType": "ExpressionStatement",
- "src": "11731:54:1"
- }
- ]
- },
- "documentation": null,
- "id": 1419,
- "implemented": true,
- "kind": "receive",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1412,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11710:2:1"
- },
- "returnParameters": {
- "id": 1413,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11730:0:1"
- },
- "scope": 1420,
- "src": "11703:84:1",
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- }
- ],
- "scope": 1432,
- "src": "463:11326:1"
- },
- {
- "abstract": false,
- "baseContracts": [
- {
- "arguments": null,
- "baseName": {
- "contractScope": null,
- "id": 1421,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "11810:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1422,
- "nodeType": "InheritanceSpecifier",
- "src": "11810:6:1"
- }
- ],
- "contractDependencies": [3086],
- "contractKind": "interface",
- "documentation": null,
- "fullyImplemented": false,
- "id": 1431,
- "linearizedBaseContracts": [1431, 3086],
- "name": "WETH",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": null,
- "documentation": null,
- "functionSelector": "d0e30db0",
- "id": 1425,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "deposit",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1423,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11839:2:1"
- },
- "returnParameters": {
- "id": 1424,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11858:0:1"
- },
- "scope": 1431,
- "src": "11823:36:1",
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": null,
- "functionSelector": "2e1a7d4d",
- "id": 1430,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "withdraw",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1428,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1427,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1430,
- "src": "11883:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1426,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11883:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "11882:16:1"
- },
- "returnParameters": {
- "id": 1429,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11907:0:1"
- },
- "scope": 1431,
- "src": "11865:43:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- }
- ],
- "scope": 1432,
- "src": "11792:118:1"
- }
- ],
- "src": "64:11847:1"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol",
- "exportedSymbols": {
- "WETH": [1431],
- "Wormhole": [1420]
- },
- "license": "Apache 2"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", "^", "0.6", ".0"]
- },
- "id": 335,
- "name": "PragmaDirective",
- "src": "64:23:1"
- },
- {
- "attributes": {
- "literals": ["experimental", "ABIEncoderV2"]
- },
- "id": 336,
- "name": "PragmaDirective",
- "src": "88:33:1"
- },
- {
- "attributes": {
- "SourceUnit": 3009,
- "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 337,
- "name": "ImportDirective",
- "src": "123:55:1"
- },
- {
- "attributes": {
- "SourceUnit": 3087,
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 338,
- "name": "ImportDirective",
- "src": "179:56:1"
- },
- {
- "attributes": {
- "SourceUnit": 3300,
- "absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 339,
- "name": "ImportDirective",
- "src": "236:59:1"
- },
- {
- "attributes": {
- "SourceUnit": 2506,
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "@openzeppelin/contracts/math/SafeMath.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 340,
- "name": "ImportDirective",
- "src": "296:51:1"
- },
- {
- "attributes": {
- "SourceUnit": 3659,
- "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 341,
- "name": "ImportDirective",
- "src": "348:59:1"
- },
- {
- "attributes": {
- "SourceUnit": 334,
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol",
- "file": "./BytesLib.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 342,
- "name": "ImportDirective",
- "src": "408:24:1"
- },
- {
- "attributes": {
- "SourceUnit": 2148,
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
- "file": "./WrappedAsset.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 343,
- "name": "ImportDirective",
- "src": "433:28:1"
- },
- {
- "attributes": {
- "abstract": false,
- "contractDependencies": [3658],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "linearizedBaseContracts": [1420, 3658],
- "name": "Wormhole",
- "scope": 1432
- },
- "children": [
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "ReentrancyGuard",
- "referencedDeclaration": 3658,
- "type": "contract ReentrancyGuard"
- },
- "id": 344,
- "name": "UserDefinedTypeName",
- "src": "484:15:1"
- }
- ],
- "id": 345,
- "name": "InheritanceSpecifier",
- "src": "484:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "SafeERC20",
- "referencedDeclaration": 3299,
- "type": "library SafeERC20"
- },
- "id": 346,
- "name": "UserDefinedTypeName",
- "src": "512:9:1"
- },
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 347,
- "name": "UserDefinedTypeName",
- "src": "526:6:1"
- }
- ],
- "id": 348,
- "name": "UsingForDirective",
- "src": "506:27:1"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "BytesLib",
- "referencedDeclaration": 333,
- "type": "library BytesLib"
- },
- "id": 349,
- "name": "UserDefinedTypeName",
- "src": "544:8:1"
- },
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 350,
- "name": "ElementaryTypeName",
- "src": "557:5:1"
- }
- ],
- "id": 351,
- "name": "UsingForDirective",
- "src": "538:25:1"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "SafeMath",
- "referencedDeclaration": 2505,
- "type": "library SafeMath"
- },
- "id": 352,
- "name": "UserDefinedTypeName",
- "src": "574:8:1"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 353,
- "name": "ElementaryTypeName",
- "src": "587:7:1"
- }
- ],
- "id": 354,
- "name": "UsingForDirective",
- "src": "568:27:1"
- },
- {
- "attributes": {
- "constant": true,
- "mutability": "constant",
- "name": "MAX_UINT64",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint64",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint64",
- "type": "uint64"
- },
- "id": 355,
- "name": "ElementaryTypeName",
- "src": "601:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31385f3434365f3734345f3037335f3730395f3535315f363135",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 18446744073709551615",
- "value": "18_446_744_073_709_551_615"
- },
- "id": 356,
- "name": "Literal",
- "src": "630:26:1"
- }
- ],
- "id": 357,
- "name": "VariableDeclaration",
- "src": "601:55:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "99da1d3c",
- "mutability": "mutable",
- "name": "wrappedAssetMaster",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 358,
- "name": "ElementaryTypeName",
- "src": "708:7:1"
- }
- ],
- "id": 359,
- "name": "VariableDeclaration",
- "src": "708:33:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "CHAIN_ID",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint8",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 360,
- "name": "ElementaryTypeName",
- "src": "776:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 361,
- "name": "Literal",
- "src": "793:1:1"
- }
- ],
- "id": 362,
- "name": "VariableDeclaration",
- "src": "776:18:1"
- },
- {
- "attributes": {
- "constant": true,
- "mutability": "constant",
- "name": "WETHAddress",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 363,
- "name": "ElementaryTypeName",
- "src": "846:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "address payable",
- "value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
- },
- "id": 364,
- "name": "Literal",
- "src": "877:42:1"
- }
- ],
- "id": 365,
- "name": "VariableDeclaration",
- "src": "846:73:1"
- },
- {
- "attributes": {
- "canonicalName": "Wormhole.GuardianSet",
- "name": "GuardianSet",
- "scope": 1420,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "keys",
- "overrides": null,
- "scope": 371,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address[]",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "length": null,
- "type": "address[]"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 366,
- "name": "ElementaryTypeName",
- "src": "955:7:1"
- }
- ],
- "id": 367,
- "name": "ArrayTypeName",
- "src": "955:9:1"
- }
- ],
- "id": 368,
- "name": "VariableDeclaration",
- "src": "955:14:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "expiration_time",
- "overrides": null,
- "scope": 371,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 369,
- "name": "ElementaryTypeName",
- "src": "979:6:1"
- }
- ],
- "id": 370,
- "name": "VariableDeclaration",
- "src": "979:22:1"
- }
- ],
- "id": 371,
- "name": "StructDefinition",
- "src": "926:82:1"
- },
- {
- "attributes": {
- "anonymous": false,
- "documentation": null,
- "name": "LogGuardianSetChanged"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "oldGuardianIndex",
- "overrides": null,
- "scope": 377,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 372,
- "name": "ElementaryTypeName",
- "src": "1051:6:1"
- }
- ],
- "id": 373,
- "name": "VariableDeclaration",
- "src": "1051:23:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "newGuardianIndex",
- "overrides": null,
- "scope": 377,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 374,
- "name": "ElementaryTypeName",
- "src": "1084:6:1"
- }
- ],
- "id": 375,
- "name": "VariableDeclaration",
- "src": "1084:23:1"
- }
- ],
- "id": 376,
- "name": "ParameterList",
- "src": "1041:72:1"
- }
- ],
- "id": 377,
- "name": "EventDefinition",
- "src": "1014:100:1"
- },
- {
- "attributes": {
- "anonymous": false,
- "documentation": null,
- "name": "LogTokensLocked"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "target_chain",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 378,
- "name": "ElementaryTypeName",
- "src": "1151:5:1"
- }
- ],
- "id": 379,
- "name": "VariableDeclaration",
- "src": "1151:18:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "token_chain",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 380,
- "name": "ElementaryTypeName",
- "src": "1179:5:1"
- }
- ],
- "id": 381,
- "name": "VariableDeclaration",
- "src": "1179:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "token_decimals",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 382,
- "name": "ElementaryTypeName",
- "src": "1206:5:1"
- }
- ],
- "id": 383,
- "name": "VariableDeclaration",
- "src": "1206:20:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "token",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 384,
- "name": "ElementaryTypeName",
- "src": "1236:7:1"
- }
- ],
- "id": 385,
- "name": "VariableDeclaration",
- "src": "1236:21:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "sender",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 386,
- "name": "ElementaryTypeName",
- "src": "1267:7:1"
- }
- ],
- "id": 387,
- "name": "VariableDeclaration",
- "src": "1267:22:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 388,
- "name": "ElementaryTypeName",
- "src": "1299:7:1"
- }
- ],
- "id": 389,
- "name": "VariableDeclaration",
- "src": "1299:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 390,
- "name": "ElementaryTypeName",
- "src": "1326:7:1"
- }
- ],
- "id": 391,
- "name": "VariableDeclaration",
- "src": "1326:14:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "nonce",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 392,
- "name": "ElementaryTypeName",
- "src": "1350:6:1"
- }
- ],
- "id": 393,
- "name": "VariableDeclaration",
- "src": "1350:12:1"
- }
- ],
- "id": 394,
- "name": "ParameterList",
- "src": "1141:227:1"
- }
- ],
- "id": 395,
- "name": "EventDefinition",
- "src": "1120:249:1"
- },
- {
- "attributes": {
- "canonicalName": "Wormhole.ParsedVAA",
- "name": "ParsedVAA",
- "scope": 1420,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "version",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 396,
- "name": "ElementaryTypeName",
- "src": "1402:5:1"
- }
- ],
- "id": 397,
- "name": "VariableDeclaration",
- "src": "1402:13:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "hash",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 398,
- "name": "ElementaryTypeName",
- "src": "1425:7:1"
- }
- ],
- "id": 399,
- "name": "VariableDeclaration",
- "src": "1425:12:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "guardian_set_index",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 400,
- "name": "ElementaryTypeName",
- "src": "1447:6:1"
- }
- ],
- "id": 401,
- "name": "VariableDeclaration",
- "src": "1447:25:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "timestamp",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 402,
- "name": "ElementaryTypeName",
- "src": "1482:6:1"
- }
- ],
- "id": 403,
- "name": "VariableDeclaration",
- "src": "1482:16:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "action",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 404,
- "name": "ElementaryTypeName",
- "src": "1508:5:1"
- }
- ],
- "id": 405,
- "name": "VariableDeclaration",
- "src": "1508:12:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "payload",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 406,
- "name": "ElementaryTypeName",
- "src": "1530:5:1"
- }
- ],
- "id": 407,
- "name": "VariableDeclaration",
- "src": "1530:13:1"
- }
- ],
- "id": 408,
- "name": "StructDefinition",
- "src": "1375:175:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "42b0aefa",
- "mutability": "mutable",
- "name": "guardian_sets",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(uint32 => struct Wormhole.GuardianSet)",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(uint32 => struct Wormhole.GuardianSet)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 409,
- "name": "ElementaryTypeName",
- "src": "1617:6:1"
- },
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 410,
- "name": "UserDefinedTypeName",
- "src": "1627:11:1"
- }
- ],
- "id": 411,
- "name": "Mapping",
- "src": "1609:30:1"
- }
- ],
- "id": 412,
- "name": "VariableDeclaration",
- "src": "1609:51:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "822d82b3",
- "mutability": "mutable",
- "name": "guardian_set_index",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 413,
- "name": "ElementaryTypeName",
- "src": "1701:6:1"
- }
- ],
- "id": 414,
- "name": "VariableDeclaration",
- "src": "1701:32:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "4db47840",
- "mutability": "mutable",
- "name": "guardian_set_expirity",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 415,
- "name": "ElementaryTypeName",
- "src": "1819:6:1"
- }
- ],
- "id": 416,
- "name": "VariableDeclaration",
- "src": "1819:35:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "a31fe409",
- "mutability": "mutable",
- "name": "consumedVAAs",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(bytes32 => bool)",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(bytes32 => bool)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 417,
- "name": "ElementaryTypeName",
- "src": "1908:7:1"
- },
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 418,
- "name": "ElementaryTypeName",
- "src": "1919:4:1"
- }
- ],
- "id": 419,
- "name": "Mapping",
- "src": "1900:24:1"
- }
- ],
- "id": 420,
- "name": "VariableDeclaration",
- "src": "1900:44:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "b6694c2a",
- "mutability": "mutable",
- "name": "wrappedAssets",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(bytes32 => address)",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(bytes32 => address)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 421,
- "name": "ElementaryTypeName",
- "src": "2007:7:1"
- },
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 422,
- "name": "ElementaryTypeName",
- "src": "2018:7:1"
- }
- ],
- "id": 423,
- "name": "Mapping",
- "src": "1999:27:1"
- }
- ],
- "id": 424,
- "name": "VariableDeclaration",
- "src": "1999:48:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "1a2be4da",
- "mutability": "mutable",
- "name": "isWrappedAsset",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(address => bool)",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(address => bool)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 425,
- "name": "ElementaryTypeName",
- "src": "2061:7:1"
- },
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 426,
- "name": "ElementaryTypeName",
- "src": "2072:4:1"
- }
- ],
- "id": 427,
- "name": "Mapping",
- "src": "2053:24:1"
- }
- ],
- "id": 428,
- "name": "VariableDeclaration",
- "src": "2053:46:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": true,
- "kind": "constructor",
- "modifiers": [null],
- "name": "",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "initial_guardian_set",
- "overrides": null,
- "scope": 456,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.GuardianSet",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 429,
- "name": "UserDefinedTypeName",
- "src": "2118:11:1"
- }
- ],
- "id": 430,
- "name": "VariableDeclaration",
- "src": "2118:39:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "wrapped_asset_master",
- "overrides": null,
- "scope": 456,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 431,
- "name": "ElementaryTypeName",
- "src": "2159:7:1"
- }
- ],
- "id": 432,
- "name": "VariableDeclaration",
- "src": "2159:28:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_guardian_set_expirity",
- "overrides": null,
- "scope": 456,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 433,
- "name": "ElementaryTypeName",
- "src": "2189:6:1"
- }
- ],
- "id": 434,
- "name": "VariableDeclaration",
- "src": "2189:29:1"
- }
- ],
- "id": 435,
- "name": "ParameterList",
- "src": "2117:102:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 436,
- "name": "ParameterList",
- "src": "2227:0:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 437,
- "name": "Identifier",
- "src": "2237:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 438,
- "name": "Literal",
- "src": "2251:1:1"
- }
- ],
- "id": 439,
- "name": "IndexAccess",
- "src": "2237:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 430,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "initial_guardian_set"
- },
- "id": 440,
- "name": "Identifier",
- "src": "2256:20:1"
- }
- ],
- "id": 441,
- "name": "Assignment",
- "src": "2237:39:1"
- }
- ],
- "id": 442,
- "name": "ExpressionStatement",
- "src": "2237:39:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 443,
- "name": "Identifier",
- "src": "2329:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 444,
- "name": "Literal",
- "src": "2350:1:1"
- }
- ],
- "id": 445,
- "name": "Assignment",
- "src": "2329:22:1"
- }
- ],
- "id": 446,
- "name": "ExpressionStatement",
- "src": "2329:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 416,
- "type": "uint32",
- "value": "guardian_set_expirity"
- },
- "id": 447,
- "name": "Identifier",
- "src": "2361:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 434,
- "type": "uint32",
- "value": "_guardian_set_expirity"
- },
- "id": 448,
- "name": "Identifier",
- "src": "2385:22:1"
- }
- ],
- "id": 449,
- "name": "Assignment",
- "src": "2361:46:1"
- }
- ],
- "id": 450,
- "name": "ExpressionStatement",
- "src": "2361:46:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 359,
- "type": "address",
- "value": "wrappedAssetMaster"
- },
- "id": 451,
- "name": "Identifier",
- "src": "2418:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 432,
- "type": "address",
- "value": "wrapped_asset_master"
- },
- "id": 452,
- "name": "Identifier",
- "src": "2439:20:1"
- }
- ],
- "id": 453,
- "name": "Assignment",
- "src": "2418:41:1"
- }
- ],
- "id": 454,
- "name": "ExpressionStatement",
- "src": "2418:41:1"
- }
- ],
- "id": 455,
- "name": "Block",
- "src": "2227:239:1"
- }
- ],
- "id": 456,
- "name": "FunctionDefinition",
- "src": "2106:360:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "f951975a",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "getGuardianSet",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "idx",
- "overrides": null,
- "scope": 468,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 457,
- "name": "ElementaryTypeName",
- "src": "2496:6:1"
- }
- ],
- "id": 458,
- "name": "VariableDeclaration",
- "src": "2496:10:1"
- }
- ],
- "id": 459,
- "name": "ParameterList",
- "src": "2495:12:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "gs",
- "overrides": null,
- "scope": 468,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.GuardianSet",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 460,
- "name": "UserDefinedTypeName",
- "src": "2529:11:1"
- }
- ],
- "id": 461,
- "name": "VariableDeclaration",
- "src": "2529:21:1"
- }
- ],
- "id": 462,
- "name": "ParameterList",
- "src": "2528:23:1"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 462
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 463,
- "name": "Identifier",
- "src": "2569:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 458,
- "type": "uint32",
- "value": "idx"
- },
- "id": 464,
- "name": "Identifier",
- "src": "2583:3:1"
- }
- ],
- "id": 465,
- "name": "IndexAccess",
- "src": "2569:18:1"
- }
- ],
- "id": 466,
- "name": "Return",
- "src": "2562:25:1"
- }
- ],
- "id": 467,
- "name": "Block",
- "src": "2552:42:1"
- }
- ],
- "id": 468,
- "name": "FunctionDefinition",
- "src": "2472:122:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "3bc0aee6",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "name": "submitVAA",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "vaa",
- "overrides": null,
- "scope": 524,
- "stateVariable": false,
- "storageLocation": "calldata",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 469,
- "name": "ElementaryTypeName",
- "src": "2628:5:1"
- }
- ],
- "id": 470,
- "name": "VariableDeclaration",
- "src": "2628:18:1"
- }
- ],
- "id": 471,
- "name": "ParameterList",
- "src": "2618:34:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 474,
- "name": "ParameterList",
- "src": "2673:0:1"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3657,
- "type": "modifier ()",
- "value": "nonReentrant"
- },
- "id": 472,
- "name": "Identifier",
- "src": "2660:12:1"
- }
- ],
- "id": 473,
- "name": "ModifierInvocation",
- "src": "2660:12:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [476]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "parsed_vaa",
- "overrides": null,
- "scope": 523,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.ParsedVAA",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "ParsedVAA",
- "referencedDeclaration": 408,
- "type": "struct Wormhole.ParsedVAA"
- },
- "id": 475,
- "name": "UserDefinedTypeName",
- "src": "2683:9:1"
- }
- ],
- "id": 476,
- "name": "VariableDeclaration",
- "src": "2683:27:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "struct Wormhole.ParsedVAA memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 781,
- "type": "function (bytes calldata) view returns (struct Wormhole.ParsedVAA memory)",
- "value": "parseAndVerifyVAA"
- },
- "id": 477,
- "name": "Identifier",
- "src": "2713:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 470,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 478,
- "name": "Identifier",
- "src": "2731:3:1"
- }
- ],
- "id": 479,
- "name": "FunctionCall",
- "src": "2713:22:1"
- }
- ],
- "id": 480,
- "name": "VariableDeclarationStatement",
- "src": "2683:52:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "action",
- "referencedDeclaration": 405,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 481,
- "name": "Identifier",
- "src": "2772:10:1"
- }
- ],
- "id": 482,
- "name": "MemberAccess",
- "src": "2772:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30783031",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "0x01"
- },
- "id": 483,
- "name": "Literal",
- "src": "2793:4:1"
- }
- ],
- "id": 484,
- "name": "BinaryOperation",
- "src": "2772:25:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
- "typeString": "literal_string \"only the current guardian set can change the guardian set\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 485,
- "name": "Identifier",
- "src": "2813:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "guardian_set_index",
- "referencedDeclaration": 401,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 486,
- "name": "Identifier",
- "src": "2821:10:1"
- }
- ],
- "id": 487,
- "name": "MemberAccess",
- "src": "2821:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 488,
- "name": "Identifier",
- "src": "2854:18:1"
- }
- ],
- "id": 489,
- "name": "BinaryOperation",
- "src": "2821:51:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"only the current guardian set can change the guardian set\"",
- "value": "only the current guardian set can change the guardian set"
- },
- "id": 490,
- "name": "Literal",
- "src": "2874:59:1"
- }
- ],
- "id": 491,
- "name": "FunctionCall",
- "src": "2813:121:1"
- }
- ],
- "id": 492,
- "name": "ExpressionStatement",
- "src": "2813:121:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 889,
- "type": "function (bytes memory)",
- "value": "vaaUpdateGuardianSet"
- },
- "id": 493,
- "name": "Identifier",
- "src": "2948:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "payload",
- "referencedDeclaration": 407,
- "type": "bytes memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 494,
- "name": "Identifier",
- "src": "2969:10:1"
- }
- ],
- "id": 495,
- "name": "MemberAccess",
- "src": "2969:18:1"
- }
- ],
- "id": 496,
- "name": "FunctionCall",
- "src": "2948:40:1"
- }
- ],
- "id": 497,
- "name": "ExpressionStatement",
- "src": "2948:40:1"
- }
- ],
- "id": 498,
- "name": "Block",
- "src": "2799:200:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "action",
- "referencedDeclaration": 405,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 499,
- "name": "Identifier",
- "src": "3009:10:1"
- }
- ],
- "id": 500,
- "name": "MemberAccess",
- "src": "3009:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30783130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 16",
- "value": "0x10"
- },
- "id": 501,
- "name": "Literal",
- "src": "3030:4:1"
- }
- ],
- "id": 502,
- "name": "BinaryOperation",
- "src": "3009:25:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1051,
- "type": "function (bytes memory)",
- "value": "vaaTransfer"
- },
- "id": 503,
- "name": "Identifier",
- "src": "3050:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "payload",
- "referencedDeclaration": 407,
- "type": "bytes memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 504,
- "name": "Identifier",
- "src": "3062:10:1"
- }
- ],
- "id": 505,
- "name": "MemberAccess",
- "src": "3062:18:1"
- }
- ],
- "id": 506,
- "name": "FunctionCall",
- "src": "3050:31:1"
- }
- ],
- "id": 507,
- "name": "ExpressionStatement",
- "src": "3050:31:1"
- }
- ],
- "id": 508,
- "name": "Block",
- "src": "3036:56:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
- "typeString": "literal_string \"invalid VAA action\""
- }
- ],
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "type": "function (string memory) pure",
- "value": "revert"
- },
- "id": 509,
- "name": "Identifier",
- "src": "3112:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "696e76616c69642056414120616374696f6e",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"invalid VAA action\"",
- "value": "invalid VAA action"
- },
- "id": 510,
- "name": "Literal",
- "src": "3119:20:1"
- }
- ],
- "id": 511,
- "name": "FunctionCall",
- "src": "3112:28:1"
- }
- ],
- "id": 512,
- "name": "ExpressionStatement",
- "src": "3112:28:1"
- }
- ],
- "id": 513,
- "name": "Block",
- "src": "3098:53:1"
- }
- ],
- "id": 514,
- "name": "IfStatement",
- "src": "3005:146:1"
- }
- ],
- "id": 515,
- "name": "IfStatement",
- "src": "2768:383:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 420,
- "type": "mapping(bytes32 => bool)",
- "value": "consumedVAAs"
- },
- "id": 516,
- "name": "Identifier",
- "src": "3196:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "hash",
- "referencedDeclaration": 399,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 517,
- "name": "Identifier",
- "src": "3209:10:1"
- }
- ],
- "id": 518,
- "name": "MemberAccess",
- "src": "3209:15:1"
- }
- ],
- "id": 519,
- "name": "IndexAccess",
- "src": "3196:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 520,
- "name": "Literal",
- "src": "3228:4:1"
- }
- ],
- "id": 521,
- "name": "Assignment",
- "src": "3196:36:1"
- }
- ],
- "id": 522,
- "name": "ExpressionStatement",
- "src": "3196:36:1"
- }
- ],
- "id": 523,
- "name": "Block",
- "src": "2673:566:1"
- }
- ],
- "id": 524,
- "name": "FunctionDefinition",
- "src": "2600:639:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "600b9aa6",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "parseAndVerifyVAA",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "vaa",
- "overrides": null,
- "scope": 781,
- "stateVariable": false,
- "storageLocation": "calldata",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 525,
- "name": "ElementaryTypeName",
- "src": "3472:5:1"
- }
- ],
- "id": 526,
- "name": "VariableDeclaration",
- "src": "3472:18:1"
- }
- ],
- "id": 527,
- "name": "ParameterList",
- "src": "3471:20:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "parsed_vaa",
- "overrides": null,
- "scope": 781,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.ParsedVAA",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "ParsedVAA",
- "referencedDeclaration": 408,
- "type": "struct Wormhole.ParsedVAA"
- },
- "id": 528,
- "name": "UserDefinedTypeName",
- "src": "3513:9:1"
- }
- ],
- "id": 529,
- "name": "VariableDeclaration",
- "src": "3513:27:1"
- }
- ],
- "id": 530,
- "name": "ParameterList",
- "src": "3512:29:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "version",
- "referencedDeclaration": 397,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 531,
- "name": "Identifier",
- "src": "3552:10:1"
- }
- ],
- "id": 533,
- "name": "MemberAccess",
- "src": "3552:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 534,
- "name": "Identifier",
- "src": "3573:3:1"
- }
- ],
- "id": 535,
- "name": "MemberAccess",
- "src": "3573:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 536,
- "name": "Literal",
- "src": "3585:1:1"
- }
- ],
- "id": 537,
- "name": "FunctionCall",
- "src": "3573:14:1"
- }
- ],
- "id": 538,
- "name": "Assignment",
- "src": "3552:35:1"
- }
- ],
- "id": 539,
- "name": "ExpressionStatement",
- "src": "3552:35:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
- "typeString": "literal_string \"VAA version incompatible\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 540,
- "name": "Identifier",
- "src": "3597:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "version",
- "referencedDeclaration": 397,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 541,
- "name": "Identifier",
- "src": "3605:10:1"
- }
- ],
- "id": 542,
- "name": "MemberAccess",
- "src": "3605:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 543,
- "name": "Literal",
- "src": "3627:1:1"
- }
- ],
- "id": 544,
- "name": "BinaryOperation",
- "src": "3605:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "5641412076657273696f6e20696e636f6d70617469626c65",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"VAA version incompatible\"",
- "value": "VAA version incompatible"
- },
- "id": 545,
- "name": "Literal",
- "src": "3630:26:1"
- }
- ],
- "id": 546,
- "name": "FunctionCall",
- "src": "3597:60:1"
- }
- ],
- "id": 547,
- "name": "ExpressionStatement",
- "src": "3597:60:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "guardian_set_index",
- "referencedDeclaration": 401,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 548,
- "name": "Identifier",
- "src": "3714:10:1"
- }
- ],
- "id": 550,
- "name": "MemberAccess",
- "src": "3714:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint32",
- "referencedDeclaration": 163,
- "type": "function (bytes memory,uint256) pure returns (uint32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 551,
- "name": "Identifier",
- "src": "3746:3:1"
- }
- ],
- "id": 552,
- "name": "MemberAccess",
- "src": "3746:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 553,
- "name": "Literal",
- "src": "3759:1:1"
- }
- ],
- "id": 554,
- "name": "FunctionCall",
- "src": "3746:15:1"
- }
- ],
- "id": 555,
- "name": "Assignment",
- "src": "3714:47:1"
- }
- ],
- "id": 556,
- "name": "ExpressionStatement",
- "src": "3714:47:1"
- },
- {
- "attributes": {
- "assignments": [558]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "len_signers",
- "overrides": null,
- "scope": 780,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 557,
- "name": "ElementaryTypeName",
- "src": "3772:7:1"
- }
- ],
- "id": 558,
- "name": "VariableDeclaration",
- "src": "3772:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 559,
- "name": "Identifier",
- "src": "3794:3:1"
- }
- ],
- "id": 560,
- "name": "MemberAccess",
- "src": "3794:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 561,
- "name": "Literal",
- "src": "3806:1:1"
- }
- ],
- "id": 562,
- "name": "FunctionCall",
- "src": "3794:14:1"
- }
- ],
- "id": 563,
- "name": "VariableDeclarationStatement",
- "src": "3772:36:1"
- },
- {
- "attributes": {
- "assignments": [565]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "offset",
- "overrides": null,
- "scope": 780,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 564,
- "name": "ElementaryTypeName",
- "src": "3818:4:1"
- }
- ],
- "id": 565,
- "name": "VariableDeclaration",
- "src": "3818:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "36",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 6",
- "value": "6"
- },
- "id": 566,
- "name": "Literal",
- "src": "3832:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 567,
- "name": "Literal",
- "src": "3836:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 558,
- "type": "uint256",
- "value": "len_signers"
- },
- "id": 568,
- "name": "Identifier",
- "src": "3841:11:1"
- }
- ],
- "id": 569,
- "name": "BinaryOperation",
- "src": "3836:16:1"
- }
- ],
- "id": 570,
- "name": "BinaryOperation",
- "src": "3832:20:1"
- }
- ],
- "id": 571,
- "name": "VariableDeclarationStatement",
- "src": "3818:34:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "timestamp",
- "referencedDeclaration": 403,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 572,
- "name": "Identifier",
- "src": "3897:10:1"
- }
- ],
- "id": 574,
- "name": "MemberAccess",
- "src": "3897:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint32",
- "referencedDeclaration": 163,
- "type": "function (bytes memory,uint256) pure returns (uint32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 575,
- "name": "Identifier",
- "src": "3920:3:1"
- }
- ],
- "id": 576,
- "name": "MemberAccess",
- "src": "3920:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 577,
- "name": "Identifier",
- "src": "3933:6:1"
- }
- ],
- "id": 578,
- "name": "FunctionCall",
- "src": "3920:20:1"
- }
- ],
- "id": 579,
- "name": "Assignment",
- "src": "3897:43:1"
- }
- ],
- "id": 580,
- "name": "ExpressionStatement",
- "src": "3897:43:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "hash",
- "referencedDeclaration": 399,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 581,
- "name": "Identifier",
- "src": "3976:10:1"
- }
- ],
- "id": 583,
- "name": "MemberAccess",
- "src": "3976:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": -8,
- "type": "function (bytes memory) pure returns (bytes32)",
- "value": "keccak256"
- },
- "id": 584,
- "name": "Identifier",
- "src": "3994:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "slice",
- "referencedDeclaration": 55,
- "type": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 585,
- "name": "Identifier",
- "src": "4004:3:1"
- }
- ],
- "id": 586,
- "name": "MemberAccess",
- "src": "4004:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 587,
- "name": "Identifier",
- "src": "4014:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 588,
- "name": "Identifier",
- "src": "4022:3:1"
- }
- ],
- "id": 589,
- "name": "MemberAccess",
- "src": "4022:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 590,
- "name": "Identifier",
- "src": "4035:6:1"
- }
- ],
- "id": 591,
- "name": "BinaryOperation",
- "src": "4022:19:1"
- }
- ],
- "id": 592,
- "name": "FunctionCall",
- "src": "4004:38:1"
- }
- ],
- "id": 593,
- "name": "FunctionCall",
- "src": "3994:49:1"
- }
- ],
- "id": 594,
- "name": "Assignment",
- "src": "3976:67:1"
- }
- ],
- "id": 595,
- "name": "ExpressionStatement",
- "src": "3976:67:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
- "typeString": "literal_string \"VAA was already executed\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 596,
- "name": "Identifier",
- "src": "4053:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!",
- "prefix": true,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 420,
- "type": "mapping(bytes32 => bool)",
- "value": "consumedVAAs"
- },
- "id": 597,
- "name": "Identifier",
- "src": "4062:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "hash",
- "referencedDeclaration": 399,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 598,
- "name": "Identifier",
- "src": "4075:10:1"
- }
- ],
- "id": 599,
- "name": "MemberAccess",
- "src": "4075:15:1"
- }
- ],
- "id": 600,
- "name": "IndexAccess",
- "src": "4062:29:1"
- }
- ],
- "id": 601,
- "name": "UnaryOperation",
- "src": "4061:30:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "5641412077617320616c7265616479206578656375746564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"VAA was already executed\"",
- "value": "VAA was already executed"
- },
- "id": 602,
- "name": "Literal",
- "src": "4093:26:1"
- }
- ],
- "id": 603,
- "name": "FunctionCall",
- "src": "4053:67:1"
- }
- ],
- "id": 604,
- "name": "ExpressionStatement",
- "src": "4053:67:1"
- },
- {
- "attributes": {
- "assignments": [606]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "guardian_set",
- "overrides": null,
- "scope": 780,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.GuardianSet",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 605,
- "name": "UserDefinedTypeName",
- "src": "4131:11:1"
- }
- ],
- "id": 606,
- "name": "VariableDeclaration",
- "src": "4131:31:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 607,
- "name": "Identifier",
- "src": "4165:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "guardian_set_index",
- "referencedDeclaration": 401,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 608,
- "name": "Identifier",
- "src": "4179:10:1"
- }
- ],
- "id": 609,
- "name": "MemberAccess",
- "src": "4179:29:1"
- }
- ],
- "id": 610,
- "name": "IndexAccess",
- "src": "4165:44:1"
- }
- ],
- "id": 611,
- "name": "VariableDeclarationStatement",
- "src": "4131:78:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_ef4d0f2354b2279f26c4ba4477a0c338dcdd31fbb9caa6ef52ec7856b55556f3",
- "typeString": "literal_string \"invalid guardian set\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 612,
- "name": "Identifier",
- "src": "4219:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "keys",
- "referencedDeclaration": 368,
- "type": "address[] memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 613,
- "name": "Identifier",
- "src": "4227:12:1"
- }
- ],
- "id": 614,
- "name": "MemberAccess",
- "src": "4227:17:1"
- }
- ],
- "id": 615,
- "name": "MemberAccess",
- "src": "4227:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 616,
- "name": "Literal",
- "src": "4254:1:1"
- }
- ],
- "id": 617,
- "name": "BinaryOperation",
- "src": "4227:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "696e76616c696420677561726469616e20736574",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"invalid guardian set\"",
- "value": "invalid guardian set"
- },
- "id": 618,
- "name": "Literal",
- "src": "4257:22:1"
- }
- ],
- "id": 619,
- "name": "FunctionCall",
- "src": "4219:61:1"
- }
- ],
- "id": 620,
- "name": "ExpressionStatement",
- "src": "4219:61:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
- "typeString": "literal_string \"guardian set has expired\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 621,
- "name": "Identifier",
- "src": "4290:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "||",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "expiration_time",
- "referencedDeclaration": 370,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 622,
- "name": "Identifier",
- "src": "4298:12:1"
- }
- ],
- "id": 623,
- "name": "MemberAccess",
- "src": "4298:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 624,
- "name": "Literal",
- "src": "4330:1:1"
- }
- ],
- "id": 625,
- "name": "BinaryOperation",
- "src": "4298:33:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "expiration_time",
- "referencedDeclaration": 370,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 626,
- "name": "Identifier",
- "src": "4335:12:1"
- }
- ],
- "id": 627,
- "name": "MemberAccess",
- "src": "4335:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "timestamp",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -4,
- "type": "block",
- "value": "block"
- },
- "id": 628,
- "name": "Identifier",
- "src": "4366:5:1"
- }
- ],
- "id": 629,
- "name": "MemberAccess",
- "src": "4366:15:1"
- }
- ],
- "id": 630,
- "name": "BinaryOperation",
- "src": "4335:46:1"
- }
- ],
- "id": 631,
- "name": "BinaryOperation",
- "src": "4298:83:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "677561726469616e20736574206861732065787069726564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"guardian set has expired\"",
- "value": "guardian set has expired"
- },
- "id": 632,
- "name": "Literal",
- "src": "4383:26:1"
- }
- ],
- "id": 633,
- "name": "FunctionCall",
- "src": "4290:120:1"
- }
- ],
- "id": 634,
- "name": "ExpressionStatement",
- "src": "4290:120:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
- "typeString": "literal_string \"no quorum\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 635,
- "name": "Identifier",
- "src": "4517:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "keys",
- "referencedDeclaration": 368,
- "type": "address[] memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 636,
- "name": "Identifier",
- "src": "4527:12:1"
- }
- ],
- "id": 637,
- "name": "MemberAccess",
- "src": "4527:17:1"
- }
- ],
- "id": 638,
- "name": "MemberAccess",
- "src": "4527:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 639,
- "name": "Literal",
- "src": "4554:2:1"
- }
- ],
- "id": 640,
- "name": "BinaryOperation",
- "src": "4527:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "33",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 3",
- "value": "3"
- },
- "id": 641,
- "name": "Literal",
- "src": "4559:1:1"
- }
- ],
- "id": 642,
- "name": "BinaryOperation",
- "src": "4527:33:1"
- }
- ],
- "id": 643,
- "name": "TupleExpression",
- "src": "4526:35:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 644,
- "name": "Literal",
- "src": "4564:1:1"
- }
- ],
- "id": 645,
- "name": "BinaryOperation",
- "src": "4526:39:1"
- }
- ],
- "id": 646,
- "name": "TupleExpression",
- "src": "4525:41:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 647,
- "name": "Literal",
- "src": "4569:2:1"
- }
- ],
- "id": 648,
- "name": "BinaryOperation",
- "src": "4525:46:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 649,
- "name": "Literal",
- "src": "4574:1:1"
- }
- ],
- "id": 650,
- "name": "BinaryOperation",
- "src": "4525:50:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 558,
- "type": "uint256",
- "value": "len_signers"
- },
- "id": 651,
- "name": "Identifier",
- "src": "4579:11:1"
- }
- ],
- "id": 652,
- "name": "BinaryOperation",
- "src": "4525:65:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6e6f2071756f72756d",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"no quorum\"",
- "value": "no quorum"
- },
- "id": 653,
- "name": "Literal",
- "src": "4592:11:1"
- }
- ],
- "id": 654,
- "name": "FunctionCall",
- "src": "4517:87:1"
- }
- ],
- "id": 655,
- "name": "ExpressionStatement",
- "src": "4517:87:1"
- },
- {
- "attributes": {
- "assignments": [657]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "last_index",
- "overrides": null,
- "scope": 780,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "int16",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "int16",
- "type": "int16"
- },
- "id": 656,
- "name": "ElementaryTypeName",
- "src": "4615:5:1"
- }
- ],
- "id": 657,
- "name": "VariableDeclaration",
- "src": "4615:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "-",
- "prefix": true,
- "type": "int_const -1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 658,
- "name": "Literal",
- "src": "4636:1:1"
- }
- ],
- "id": 659,
- "name": "UnaryOperation",
- "src": "4634:3:1"
- }
- ],
- "id": 660,
- "name": "VariableDeclarationStatement",
- "src": "4615:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [662]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "i",
- "overrides": null,
- "scope": 750,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 661,
- "name": "ElementaryTypeName",
- "src": "4652:4:1"
- }
- ],
- "id": 662,
- "name": "VariableDeclaration",
- "src": "4652:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 663,
- "name": "Literal",
- "src": "4661:1:1"
- }
- ],
- "id": 664,
- "name": "VariableDeclarationStatement",
- "src": "4652:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 665,
- "name": "Identifier",
- "src": "4664:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 558,
- "type": "uint256",
- "value": "len_signers"
- },
- "id": 666,
- "name": "Identifier",
- "src": "4668:11:1"
- }
- ],
- "id": 667,
- "name": "BinaryOperation",
- "src": "4664:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "++",
- "prefix": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 668,
- "name": "Identifier",
- "src": "4681:1:1"
- }
- ],
- "id": 669,
- "name": "UnaryOperation",
- "src": "4681:3:1"
- }
- ],
- "id": 670,
- "name": "ExpressionStatement",
- "src": "4681:3:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [672]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "index",
- "overrides": null,
- "scope": 749,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 671,
- "name": "ElementaryTypeName",
- "src": "4700:5:1"
- }
- ],
- "id": 672,
- "name": "VariableDeclaration",
- "src": "4700:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 673,
- "name": "Identifier",
- "src": "4714:3:1"
- }
- ],
- "id": 674,
- "name": "MemberAccess",
- "src": "4714:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "36",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 6",
- "value": "6"
- },
- "id": 675,
- "name": "Literal",
- "src": "4726:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 676,
- "name": "Identifier",
- "src": "4730:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 677,
- "name": "Literal",
- "src": "4734:2:1"
- }
- ],
- "id": 678,
- "name": "BinaryOperation",
- "src": "4730:6:1"
- }
- ],
- "id": 679,
- "name": "BinaryOperation",
- "src": "4726:10:1"
- }
- ],
- "id": 680,
- "name": "FunctionCall",
- "src": "4714:23:1"
- }
- ],
- "id": 681,
- "name": "VariableDeclarationStatement",
- "src": "4700:37:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_de9ff8e5647eeed7691d313f96ed0065761ad2da429d76b3b7868b564890def8",
- "typeString": "literal_string \"signature indices must be ascending\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 682,
- "name": "Identifier",
- "src": "4751:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 672,
- "type": "uint8",
- "value": "index"
- },
- "id": 683,
- "name": "Identifier",
- "src": "4759:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 657,
- "type": "int16",
- "value": "last_index"
- },
- "id": 684,
- "name": "Identifier",
- "src": "4767:10:1"
- }
- ],
- "id": 685,
- "name": "BinaryOperation",
- "src": "4759:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "7369676e617475726520696e6469636573206d75737420626520617363656e64696e67",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"signature indices must be ascending\"",
- "value": "signature indices must be ascending"
- },
- "id": 686,
- "name": "Literal",
- "src": "4779:37:1"
- }
- ],
- "id": 687,
- "name": "FunctionCall",
- "src": "4751:66:1"
- }
- ],
- "id": 688,
- "name": "ExpressionStatement",
- "src": "4751:66:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "int16"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 657,
- "type": "int16",
- "value": "last_index"
- },
- "id": 689,
- "name": "Identifier",
- "src": "4831:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "int16",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(int16)"
- },
- "children": [
- {
- "attributes": {
- "name": "int16",
- "type": null
- },
- "id": 690,
- "name": "ElementaryTypeName",
- "src": "4844:5:1"
- }
- ],
- "id": 691,
- "name": "ElementaryTypeNameExpression",
- "src": "4844:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 672,
- "type": "uint8",
- "value": "index"
- },
- "id": 692,
- "name": "Identifier",
- "src": "4850:5:1"
- }
- ],
- "id": 693,
- "name": "FunctionCall",
- "src": "4844:12:1"
- }
- ],
- "id": 694,
- "name": "Assignment",
- "src": "4831:25:1"
- }
- ],
- "id": 695,
- "name": "ExpressionStatement",
- "src": "4831:25:1"
- },
- {
- "attributes": {
- "assignments": [697]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "r",
- "overrides": null,
- "scope": 749,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 696,
- "name": "ElementaryTypeName",
- "src": "4871:7:1"
- }
- ],
- "id": 697,
- "name": "VariableDeclaration",
- "src": "4871:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toBytes32",
- "referencedDeclaration": 298,
- "type": "function (bytes memory,uint256) pure returns (bytes32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 698,
- "name": "Identifier",
- "src": "4883:3:1"
- }
- ],
- "id": 699,
- "name": "MemberAccess",
- "src": "4883:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "37",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 7",
- "value": "7"
- },
- "id": 700,
- "name": "Literal",
- "src": "4897:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 701,
- "name": "Identifier",
- "src": "4901:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 702,
- "name": "Literal",
- "src": "4905:2:1"
- }
- ],
- "id": 703,
- "name": "BinaryOperation",
- "src": "4901:6:1"
- }
- ],
- "id": 704,
- "name": "BinaryOperation",
- "src": "4897:10:1"
- }
- ],
- "id": 705,
- "name": "FunctionCall",
- "src": "4883:25:1"
- }
- ],
- "id": 706,
- "name": "VariableDeclarationStatement",
- "src": "4871:37:1"
- },
- {
- "attributes": {
- "assignments": [708]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "s",
- "overrides": null,
- "scope": 749,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 707,
- "name": "ElementaryTypeName",
- "src": "4922:7:1"
- }
- ],
- "id": 708,
- "name": "VariableDeclaration",
- "src": "4922:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toBytes32",
- "referencedDeclaration": 298,
- "type": "function (bytes memory,uint256) pure returns (bytes32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 709,
- "name": "Identifier",
- "src": "4934:3:1"
- }
- ],
- "id": 710,
- "name": "MemberAccess",
- "src": "4934:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3339",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 39",
- "value": "39"
- },
- "id": 711,
- "name": "Literal",
- "src": "4948:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 712,
- "name": "Identifier",
- "src": "4953:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 713,
- "name": "Literal",
- "src": "4957:2:1"
- }
- ],
- "id": 714,
- "name": "BinaryOperation",
- "src": "4953:6:1"
- }
- ],
- "id": 715,
- "name": "BinaryOperation",
- "src": "4948:11:1"
- }
- ],
- "id": 716,
- "name": "FunctionCall",
- "src": "4934:26:1"
- }
- ],
- "id": 717,
- "name": "VariableDeclarationStatement",
- "src": "4922:38:1"
- },
- {
- "attributes": {
- "assignments": [719]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "v",
- "overrides": null,
- "scope": 749,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 718,
- "name": "ElementaryTypeName",
- "src": "4974:5:1"
- }
- ],
- "id": 719,
- "name": "VariableDeclaration",
- "src": "4974:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 720,
- "name": "Identifier",
- "src": "4984:3:1"
- }
- ],
- "id": 721,
- "name": "MemberAccess",
- "src": "4984:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3731",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 71",
- "value": "71"
- },
- "id": 722,
- "name": "Literal",
- "src": "4996:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 723,
- "name": "Identifier",
- "src": "5001:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 724,
- "name": "Literal",
- "src": "5005:2:1"
- }
- ],
- "id": 725,
- "name": "BinaryOperation",
- "src": "5001:6:1"
- }
- ],
- "id": 726,
- "name": "BinaryOperation",
- "src": "4996:11:1"
- }
- ],
- "id": 727,
- "name": "FunctionCall",
- "src": "4984:24:1"
- }
- ],
- "id": 728,
- "name": "VariableDeclarationStatement",
- "src": "4974:34:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 719,
- "type": "uint8",
- "value": "v"
- },
- "id": 729,
- "name": "Identifier",
- "src": "5022:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3237",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 27",
- "value": "27"
- },
- "id": 730,
- "name": "Literal",
- "src": "5027:2:1"
- }
- ],
- "id": 731,
- "name": "Assignment",
- "src": "5022:7:1"
- }
- ],
- "id": 732,
- "name": "ExpressionStatement",
- "src": "5022:7:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
- "typeString": "literal_string \"VAA signature invalid\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 733,
- "name": "Identifier",
- "src": "5043:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": -6,
- "type": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)",
- "value": "ecrecover"
- },
- "id": 734,
- "name": "Identifier",
- "src": "5051:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "hash",
- "referencedDeclaration": 399,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 735,
- "name": "Identifier",
- "src": "5061:10:1"
- }
- ],
- "id": 736,
- "name": "MemberAccess",
- "src": "5061:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 719,
- "type": "uint8",
- "value": "v"
- },
- "id": 737,
- "name": "Identifier",
- "src": "5078:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 697,
- "type": "bytes32",
- "value": "r"
- },
- "id": 738,
- "name": "Identifier",
- "src": "5081:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 708,
- "type": "bytes32",
- "value": "s"
- },
- "id": 739,
- "name": "Identifier",
- "src": "5084:1:1"
- }
- ],
- "id": 740,
- "name": "FunctionCall",
- "src": "5051:35:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "keys",
- "referencedDeclaration": 368,
- "type": "address[] memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 741,
- "name": "Identifier",
- "src": "5090:12:1"
- }
- ],
- "id": 742,
- "name": "MemberAccess",
- "src": "5090:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 672,
- "type": "uint8",
- "value": "index"
- },
- "id": 743,
- "name": "Identifier",
- "src": "5108:5:1"
- }
- ],
- "id": 744,
- "name": "IndexAccess",
- "src": "5090:24:1"
- }
- ],
- "id": 745,
- "name": "BinaryOperation",
- "src": "5051:63:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "564141207369676e617475726520696e76616c6964",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"VAA signature invalid\"",
- "value": "VAA signature invalid"
- },
- "id": 746,
- "name": "Literal",
- "src": "5116:23:1"
- }
- ],
- "id": 747,
- "name": "FunctionCall",
- "src": "5043:97:1"
- }
- ],
- "id": 748,
- "name": "ExpressionStatement",
- "src": "5043:97:1"
- }
- ],
- "id": 749,
- "name": "Block",
- "src": "4686:465:1"
- }
- ],
- "id": 750,
- "name": "ForStatement",
- "src": "4647:504:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "action",
- "referencedDeclaration": 405,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 751,
- "name": "Identifier",
- "src": "5161:10:1"
- }
- ],
- "id": 753,
- "name": "MemberAccess",
- "src": "5161:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 754,
- "name": "Identifier",
- "src": "5181:3:1"
- }
- ],
- "id": 755,
- "name": "MemberAccess",
- "src": "5181:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 756,
- "name": "Identifier",
- "src": "5193:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "34",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 4",
- "value": "4"
- },
- "id": 757,
- "name": "Literal",
- "src": "5202:1:1"
- }
- ],
- "id": 758,
- "name": "BinaryOperation",
- "src": "5193:10:1"
- }
- ],
- "id": 759,
- "name": "FunctionCall",
- "src": "5181:23:1"
- }
- ],
- "id": 760,
- "name": "Assignment",
- "src": "5161:43:1"
- }
- ],
- "id": 761,
- "name": "ExpressionStatement",
- "src": "5161:43:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "payload",
- "referencedDeclaration": 407,
- "type": "bytes memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 762,
- "name": "Identifier",
- "src": "5214:10:1"
- }
- ],
- "id": 764,
- "name": "MemberAccess",
- "src": "5214:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "slice",
- "referencedDeclaration": 55,
- "type": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 765,
- "name": "Identifier",
- "src": "5235:3:1"
- }
- ],
- "id": 766,
- "name": "MemberAccess",
- "src": "5235:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 767,
- "name": "Identifier",
- "src": "5245:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 768,
- "name": "Literal",
- "src": "5254:1:1"
- }
- ],
- "id": 769,
- "name": "BinaryOperation",
- "src": "5245:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 770,
- "name": "Identifier",
- "src": "5257:3:1"
- }
- ],
- "id": 771,
- "name": "MemberAccess",
- "src": "5257:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 772,
- "name": "Identifier",
- "src": "5271:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 773,
- "name": "Literal",
- "src": "5280:1:1"
- }
- ],
- "id": 774,
- "name": "BinaryOperation",
- "src": "5271:10:1"
- }
- ],
- "id": 775,
- "name": "TupleExpression",
- "src": "5270:12:1"
- }
- ],
- "id": 776,
- "name": "BinaryOperation",
- "src": "5257:25:1"
- }
- ],
- "id": 777,
- "name": "FunctionCall",
- "src": "5235:48:1"
- }
- ],
- "id": 778,
- "name": "Assignment",
- "src": "5214:69:1"
- }
- ],
- "id": 779,
- "name": "ExpressionStatement",
- "src": "5214:69:1"
- }
- ],
- "id": 780,
- "name": "Block",
- "src": "3542:1748:1"
- }
- ],
- "id": 781,
- "name": "FunctionDefinition",
- "src": "3445:1845:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "vaaUpdateGuardianSet",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 889,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 782,
- "name": "ElementaryTypeName",
- "src": "5326:5:1"
- }
- ],
- "id": 783,
- "name": "VariableDeclaration",
- "src": "5326:17:1"
- }
- ],
- "id": 784,
- "name": "ParameterList",
- "src": "5325:19:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 785,
- "name": "ParameterList",
- "src": "5353:0:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [787]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "new_guardian_set_index",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 786,
- "name": "ElementaryTypeName",
- "src": "5363:6:1"
- }
- ],
- "id": 787,
- "name": "VariableDeclaration",
- "src": "5363:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint32",
- "referencedDeclaration": 163,
- "type": "function (bytes memory,uint256) pure returns (uint32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 783,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 788,
- "name": "Identifier",
- "src": "5395:4:1"
- }
- ],
- "id": 789,
- "name": "MemberAccess",
- "src": "5395:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 790,
- "name": "Literal",
- "src": "5409:1:1"
- }
- ],
- "id": 791,
- "name": "FunctionCall",
- "src": "5395:16:1"
- }
- ],
- "id": 792,
- "name": "VariableDeclarationStatement",
- "src": "5363:48:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_a9c35350c4790f34190b54478b12348e0cbd9c4c717b5d4a6ca5709d71c4f33d",
- "typeString": "literal_string \"index must increase in steps of 1\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 793,
- "name": "Identifier",
- "src": "5421:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 787,
- "type": "uint32",
- "value": "new_guardian_set_index"
- },
- "id": 794,
- "name": "Identifier",
- "src": "5429:22:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 795,
- "name": "Identifier",
- "src": "5455:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 796,
- "name": "Literal",
- "src": "5476:1:1"
- }
- ],
- "id": 797,
- "name": "BinaryOperation",
- "src": "5455:22:1"
- }
- ],
- "id": 798,
- "name": "BinaryOperation",
- "src": "5429:48:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "696e646578206d75737420696e63726561736520696e207374657073206f662031",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"index must increase in steps of 1\"",
- "value": "index must increase in steps of 1"
- },
- "id": 799,
- "name": "Literal",
- "src": "5479:35:1"
- }
- ],
- "id": 800,
- "name": "FunctionCall",
- "src": "5421:94:1"
- }
- ],
- "id": 801,
- "name": "ExpressionStatement",
- "src": "5421:94:1"
- },
- {
- "attributes": {
- "assignments": [803]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "len",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 802,
- "name": "ElementaryTypeName",
- "src": "5525:5:1"
- }
- ],
- "id": 803,
- "name": "VariableDeclaration",
- "src": "5525:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 783,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 804,
- "name": "Identifier",
- "src": "5537:4:1"
- }
- ],
- "id": 805,
- "name": "MemberAccess",
- "src": "5537:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "34",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 4",
- "value": "4"
- },
- "id": 806,
- "name": "Literal",
- "src": "5550:1:1"
- }
- ],
- "id": 807,
- "name": "FunctionCall",
- "src": "5537:15:1"
- }
- ],
- "id": 808,
- "name": "VariableDeclarationStatement",
- "src": "5525:27:1"
- },
- {
- "attributes": {
- "assignments": [813]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "new_guardians",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "address[]",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "length": null,
- "type": "address[]"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 811,
- "name": "ElementaryTypeName",
- "src": "5563:7:1"
- }
- ],
- "id": 812,
- "name": "ArrayTypeName",
- "src": "5563:9:1"
- }
- ],
- "id": 813,
- "name": "VariableDeclaration",
- "src": "5563:30:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address[] memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "function (uint256) pure returns (address[] memory)"
- },
- "children": [
- {
- "attributes": {
- "length": null,
- "type": "address[]"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 814,
- "name": "ElementaryTypeName",
- "src": "5600:7:1"
- }
- ],
- "id": 815,
- "name": "ArrayTypeName",
- "src": "5600:9:1"
- }
- ],
- "id": 816,
- "name": "NewExpression",
- "src": "5596:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 803,
- "type": "uint8",
- "value": "len"
- },
- "id": 817,
- "name": "Identifier",
- "src": "5610:3:1"
- }
- ],
- "id": 818,
- "name": "FunctionCall",
- "src": "5596:18:1"
- }
- ],
- "id": 819,
- "name": "VariableDeclarationStatement",
- "src": "5563:51:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [821]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "i",
- "overrides": null,
- "scope": 848,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 820,
- "name": "ElementaryTypeName",
- "src": "5629:4:1"
- }
- ],
- "id": 821,
- "name": "VariableDeclaration",
- "src": "5629:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 822,
- "name": "Literal",
- "src": "5638:1:1"
- }
- ],
- "id": 823,
- "name": "VariableDeclarationStatement",
- "src": "5629:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 821,
- "type": "uint256",
- "value": "i"
- },
- "id": 824,
- "name": "Identifier",
- "src": "5641:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 803,
- "type": "uint8",
- "value": "len"
- },
- "id": 825,
- "name": "Identifier",
- "src": "5645:3:1"
- }
- ],
- "id": 826,
- "name": "BinaryOperation",
- "src": "5641:7:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "++",
- "prefix": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 821,
- "type": "uint256",
- "value": "i"
- },
- "id": 827,
- "name": "Identifier",
- "src": "5650:1:1"
- }
- ],
- "id": 828,
- "name": "UnaryOperation",
- "src": "5650:3:1"
- }
- ],
- "id": 829,
- "name": "ExpressionStatement",
- "src": "5650:3:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [831]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "addr",
- "overrides": null,
- "scope": 847,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 830,
- "name": "ElementaryTypeName",
- "src": "5669:7:1"
- }
- ],
- "id": 831,
- "name": "VariableDeclaration",
- "src": "5669:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toAddress",
- "referencedDeclaration": 82,
- "type": "function (bytes memory,uint256) pure returns (address)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 783,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 832,
- "name": "Identifier",
- "src": "5684:4:1"
- }
- ],
- "id": 833,
- "name": "MemberAccess",
- "src": "5684:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 834,
- "name": "Literal",
- "src": "5699:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 821,
- "type": "uint256",
- "value": "i"
- },
- "id": 835,
- "name": "Identifier",
- "src": "5703:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3230",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 20",
- "value": "20"
- },
- "id": 836,
- "name": "Literal",
- "src": "5707:2:1"
- }
- ],
- "id": 837,
- "name": "BinaryOperation",
- "src": "5703:6:1"
- }
- ],
- "id": 838,
- "name": "BinaryOperation",
- "src": "5699:10:1"
- }
- ],
- "id": 839,
- "name": "FunctionCall",
- "src": "5684:26:1"
- }
- ],
- "id": 840,
- "name": "VariableDeclarationStatement",
- "src": "5669:41:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 813,
- "type": "address[] memory",
- "value": "new_guardians"
- },
- "id": 841,
- "name": "Identifier",
- "src": "5724:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 821,
- "type": "uint256",
- "value": "i"
- },
- "id": 842,
- "name": "Identifier",
- "src": "5738:1:1"
- }
- ],
- "id": 843,
- "name": "IndexAccess",
- "src": "5724:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 831,
- "type": "address",
- "value": "addr"
- },
- "id": 844,
- "name": "Identifier",
- "src": "5743:4:1"
- }
- ],
- "id": 845,
- "name": "Assignment",
- "src": "5724:23:1"
- }
- ],
- "id": 846,
- "name": "ExpressionStatement",
- "src": "5724:23:1"
- }
- ],
- "id": 847,
- "name": "Block",
- "src": "5655:103:1"
- }
- ],
- "id": 848,
- "name": "ForStatement",
- "src": "5624:134:1"
- },
- {
- "attributes": {
- "assignments": [850]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "old_guardian_set_index",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 849,
- "name": "ElementaryTypeName",
- "src": "5768:6:1"
- }
- ],
- "id": 850,
- "name": "VariableDeclaration",
- "src": "5768:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 851,
- "name": "Identifier",
- "src": "5800:18:1"
- }
- ],
- "id": 852,
- "name": "VariableDeclarationStatement",
- "src": "5768:50:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 853,
- "name": "Identifier",
- "src": "5828:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 787,
- "type": "uint32",
- "value": "new_guardian_set_index"
- },
- "id": 854,
- "name": "Identifier",
- "src": "5849:22:1"
- }
- ],
- "id": 855,
- "name": "Assignment",
- "src": "5828:43:1"
- }
- ],
- "id": 856,
- "name": "ExpressionStatement",
- "src": "5828:43:1"
- },
- {
- "attributes": {
- "assignments": [858]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "new_guardian_set",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.GuardianSet",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 857,
- "name": "UserDefinedTypeName",
- "src": "5882:11:1"
- }
- ],
- "id": 858,
- "name": "VariableDeclaration",
- "src": "5882:35:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": true,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "struct Wormhole.GuardianSet memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- },
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 371,
- "type": "type(struct Wormhole.GuardianSet storage pointer)",
- "value": "GuardianSet"
- },
- "id": 859,
- "name": "Identifier",
- "src": "5920:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 813,
- "type": "address[] memory",
- "value": "new_guardians"
- },
- "id": 860,
- "name": "Identifier",
- "src": "5932:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 861,
- "name": "Literal",
- "src": "5947:1:1"
- }
- ],
- "id": 862,
- "name": "FunctionCall",
- "src": "5920:29:1"
- }
- ],
- "id": 863,
- "name": "VariableDeclarationStatement",
- "src": "5882:67:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 864,
- "name": "Identifier",
- "src": "5959:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 865,
- "name": "Identifier",
- "src": "5973:18:1"
- }
- ],
- "id": 866,
- "name": "IndexAccess",
- "src": "5959:33:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 858,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "new_guardian_set"
- },
- "id": 867,
- "name": "Identifier",
- "src": "5995:16:1"
- }
- ],
- "id": 868,
- "name": "Assignment",
- "src": "5959:52:1"
- }
- ],
- "id": 869,
- "name": "ExpressionStatement",
- "src": "5959:52:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "expiration_time",
- "referencedDeclaration": 370,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 870,
- "name": "Identifier",
- "src": "6021:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 850,
- "type": "uint32",
- "value": "old_guardian_set_index"
- },
- "id": 871,
- "name": "Identifier",
- "src": "6035:22:1"
- }
- ],
- "id": 872,
- "name": "IndexAccess",
- "src": "6021:37:1"
- }
- ],
- "id": 873,
- "name": "MemberAccess",
- "src": "6021:53:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint32)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": null
- },
- "id": 874,
- "name": "ElementaryTypeName",
- "src": "6077:6:1"
- }
- ],
- "id": 875,
- "name": "ElementaryTypeNameExpression",
- "src": "6077:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "timestamp",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -4,
- "type": "block",
- "value": "block"
- },
- "id": 876,
- "name": "Identifier",
- "src": "6084:5:1"
- }
- ],
- "id": 877,
- "name": "MemberAccess",
- "src": "6084:15:1"
- }
- ],
- "id": 878,
- "name": "FunctionCall",
- "src": "6077:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 416,
- "type": "uint32",
- "value": "guardian_set_expirity"
- },
- "id": 879,
- "name": "Identifier",
- "src": "6103:21:1"
- }
- ],
- "id": 880,
- "name": "BinaryOperation",
- "src": "6077:47:1"
- }
- ],
- "id": 881,
- "name": "Assignment",
- "src": "6021:103:1"
- }
- ],
- "id": 882,
- "name": "ExpressionStatement",
- "src": "6021:103:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 377,
- "type": "function (uint32,uint32)",
- "value": "LogGuardianSetChanged"
- },
- "id": 883,
- "name": "Identifier",
- "src": "6140:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 850,
- "type": "uint32",
- "value": "old_guardian_set_index"
- },
- "id": 884,
- "name": "Identifier",
- "src": "6162:22:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 885,
- "name": "Identifier",
- "src": "6186:18:1"
- }
- ],
- "id": 886,
- "name": "FunctionCall",
- "src": "6140:65:1"
- }
- ],
- "id": 887,
- "name": "EmitStatement",
- "src": "6135:70:1"
- }
- ],
- "id": 888,
- "name": "Block",
- "src": "5353:859:1"
- }
- ],
- "id": 889,
- "name": "FunctionDefinition",
- "src": "5296:916:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "vaaTransfer",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 1051,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 890,
- "name": "ElementaryTypeName",
- "src": "6239:5:1"
- }
- ],
- "id": 891,
- "name": "VariableDeclaration",
- "src": "6239:17:1"
- }
- ],
- "id": 892,
- "name": "ParameterList",
- "src": "6238:19:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 893,
- "name": "ParameterList",
- "src": "6266:0:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [895]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "source_chain",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 894,
- "name": "ElementaryTypeName",
- "src": "6319:5:1"
- }
- ],
- "id": 895,
- "name": "VariableDeclaration",
- "src": "6319:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 896,
- "name": "Identifier",
- "src": "6340:4:1"
- }
- ],
- "id": 897,
- "name": "MemberAccess",
- "src": "6340:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "34",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 4",
- "value": "4"
- },
- "id": 898,
- "name": "Literal",
- "src": "6353:1:1"
- }
- ],
- "id": 899,
- "name": "FunctionCall",
- "src": "6340:15:1"
- }
- ],
- "id": 900,
- "name": "VariableDeclarationStatement",
- "src": "6319:36:1"
- },
- {
- "attributes": {
- "assignments": [902]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target_chain",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 901,
- "name": "ElementaryTypeName",
- "src": "6366:5:1"
- }
- ],
- "id": 902,
- "name": "VariableDeclaration",
- "src": "6366:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 903,
- "name": "Identifier",
- "src": "6387:4:1"
- }
- ],
- "id": 904,
- "name": "MemberAccess",
- "src": "6387:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 905,
- "name": "Literal",
- "src": "6400:1:1"
- }
- ],
- "id": 906,
- "name": "FunctionCall",
- "src": "6387:15:1"
- }
- ],
- "id": 907,
- "name": "VariableDeclarationStatement",
- "src": "6366:36:1"
- },
- {
- "attributes": {
- "assignments": [909]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target_address",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 908,
- "name": "ElementaryTypeName",
- "src": "6521:7:1"
- }
- ],
- "id": 909,
- "name": "VariableDeclaration",
- "src": "6521:22:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toAddress",
- "referencedDeclaration": 82,
- "type": "function (bytes memory,uint256) pure returns (address)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 910,
- "name": "Identifier",
- "src": "6546:4:1"
- }
- ],
- "id": 911,
- "name": "MemberAccess",
- "src": "6546:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "+",
- "type": "int_const 50"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3338",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 38",
- "value": "38"
- },
- "id": 912,
- "name": "Literal",
- "src": "6561:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3132",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 12",
- "value": "12"
- },
- "id": 913,
- "name": "Literal",
- "src": "6566:2:1"
- }
- ],
- "id": 914,
- "name": "BinaryOperation",
- "src": "6561:7:1"
- }
- ],
- "id": 915,
- "name": "FunctionCall",
- "src": "6546:23:1"
- }
- ],
- "id": 916,
- "name": "VariableDeclarationStatement",
- "src": "6521:48:1"
- },
- {
- "attributes": {
- "assignments": [918]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_chain",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 917,
- "name": "ElementaryTypeName",
- "src": "6580:5:1"
- }
- ],
- "id": 918,
- "name": "VariableDeclaration",
- "src": "6580:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_70_by_1",
- "typeString": "int_const 70"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 919,
- "name": "Identifier",
- "src": "6600:4:1"
- }
- ],
- "id": 920,
- "name": "MemberAccess",
- "src": "6600:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3730",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 70",
- "value": "70"
- },
- "id": 921,
- "name": "Literal",
- "src": "6613:2:1"
- }
- ],
- "id": 922,
- "name": "FunctionCall",
- "src": "6600:16:1"
- }
- ],
- "id": 923,
- "name": "VariableDeclarationStatement",
- "src": "6580:36:1"
- },
- {
- "attributes": {
- "assignments": [925]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 924,
- "name": "ElementaryTypeName",
- "src": "6680:7:1"
- }
- ],
- "id": 925,
- "name": "VariableDeclaration",
- "src": "6680:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_104_by_1",
- "typeString": "int_const 104"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint256",
- "referencedDeclaration": 271,
- "type": "function (bytes memory,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 926,
- "name": "Identifier",
- "src": "6697:4:1"
- }
- ],
- "id": 927,
- "name": "MemberAccess",
- "src": "6697:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "313034",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 104",
- "value": "104"
- },
- "id": 928,
- "name": "Literal",
- "src": "6712:3:1"
- }
- ],
- "id": 929,
- "name": "FunctionCall",
- "src": "6697:19:1"
- }
- ],
- "id": 930,
- "name": "VariableDeclarationStatement",
- "src": "6680:36:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
- "typeString": "literal_string \"same chain transfers are not supported\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 931,
- "name": "Identifier",
- "src": "6727:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 895,
- "type": "uint8",
- "value": "source_chain"
- },
- "id": 932,
- "name": "Identifier",
- "src": "6735:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 902,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 933,
- "name": "Identifier",
- "src": "6751:12:1"
- }
- ],
- "id": 934,
- "name": "BinaryOperation",
- "src": "6735:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"same chain transfers are not supported\"",
- "value": "same chain transfers are not supported"
- },
- "id": 935,
- "name": "Literal",
- "src": "6765:40:1"
- }
- ],
- "id": 936,
- "name": "FunctionCall",
- "src": "6727:79:1"
- }
- ],
- "id": 937,
- "name": "ExpressionStatement",
- "src": "6727:79:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
- "typeString": "literal_string \"transfer must be incoming\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 938,
- "name": "Identifier",
- "src": "6816:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 902,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 939,
- "name": "Identifier",
- "src": "6824:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 940,
- "name": "Identifier",
- "src": "6840:8:1"
- }
- ],
- "id": 941,
- "name": "BinaryOperation",
- "src": "6824:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "7472616e73666572206d75737420626520696e636f6d696e67",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"transfer must be incoming\"",
- "value": "transfer must be incoming"
- },
- "id": 942,
- "name": "Literal",
- "src": "6850:27:1"
- }
- ],
- "id": 943,
- "name": "FunctionCall",
- "src": "6816:62:1"
- }
- ],
- "id": 944,
- "name": "ExpressionStatement",
- "src": "6816:62:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 918,
- "type": "uint8",
- "value": "token_chain"
- },
- "id": 945,
- "name": "Identifier",
- "src": "6893:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 946,
- "name": "Identifier",
- "src": "6908:8:1"
- }
- ],
- "id": 947,
- "name": "BinaryOperation",
- "src": "6893:23:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [949]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_address",
- "overrides": null,
- "scope": 1003,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 948,
- "name": "ElementaryTypeName",
- "src": "6932:7:1"
- }
- ],
- "id": 949,
- "name": "VariableDeclaration",
- "src": "6932:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toBytes32",
- "referencedDeclaration": 298,
- "type": "function (bytes memory,uint256) pure returns (bytes32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 950,
- "name": "Identifier",
- "src": "6956:4:1"
- }
- ],
- "id": 951,
- "name": "MemberAccess",
- "src": "6956:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3731",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 71",
- "value": "71"
- },
- "id": 952,
- "name": "Literal",
- "src": "6971:2:1"
- }
- ],
- "id": 953,
- "name": "FunctionCall",
- "src": "6956:18:1"
- }
- ],
- "id": 954,
- "name": "VariableDeclarationStatement",
- "src": "6932:42:1"
- },
- {
- "attributes": {
- "assignments": [956]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset_id",
- "overrides": null,
- "scope": 1003,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 955,
- "name": "ElementaryTypeName",
- "src": "6988:7:1"
- }
- ],
- "id": 956,
- "name": "VariableDeclaration",
- "src": "6988:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": -8,
- "type": "function (bytes memory) pure returns (bytes32)",
- "value": "keccak256"
- },
- "id": 957,
- "name": "Identifier",
- "src": "7007:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "member_name": "encodePacked",
- "referencedDeclaration": null,
- "type": "function () pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -1,
- "type": "abi",
- "value": "abi"
- },
- "id": 958,
- "name": "Identifier",
- "src": "7017:3:1"
- }
- ],
- "id": 959,
- "name": "MemberAccess",
- "src": "7017:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 918,
- "type": "uint8",
- "value": "token_chain"
- },
- "id": 960,
- "name": "Identifier",
- "src": "7034:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 949,
- "type": "bytes32",
- "value": "token_address"
- },
- "id": 961,
- "name": "Identifier",
- "src": "7047:13:1"
- }
- ],
- "id": 962,
- "name": "FunctionCall",
- "src": "7017:44:1"
- }
- ],
- "id": 963,
- "name": "FunctionCall",
- "src": "7007:55:1"
- }
- ],
- "id": 964,
- "name": "VariableDeclarationStatement",
- "src": "6988:74:1"
- },
- {
- "attributes": {
- "assignments": [966]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "wrapped_asset",
- "overrides": null,
- "scope": 1003,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 965,
- "name": "ElementaryTypeName",
- "src": "7154:7:1"
- }
- ],
- "id": 966,
- "name": "VariableDeclaration",
- "src": "7154:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 424,
- "type": "mapping(bytes32 => address)",
- "value": "wrappedAssets"
- },
- "id": 967,
- "name": "Identifier",
- "src": "7178:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 956,
- "type": "bytes32",
- "value": "asset_id"
- },
- "id": 968,
- "name": "Identifier",
- "src": "7192:8:1"
- }
- ],
- "id": 969,
- "name": "IndexAccess",
- "src": "7178:23:1"
- }
- ],
- "id": 970,
- "name": "VariableDeclarationStatement",
- "src": "7154:47:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 966,
- "type": "address",
- "value": "wrapped_asset"
- },
- "id": 971,
- "name": "Identifier",
- "src": "7219:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 972,
- "name": "ElementaryTypeName",
- "src": "7236:7:1"
- }
- ],
- "id": 973,
- "name": "ElementaryTypeNameExpression",
- "src": "7236:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 974,
- "name": "Literal",
- "src": "7244:1:1"
- }
- ],
- "id": 975,
- "name": "FunctionCall",
- "src": "7236:10:1"
- }
- ],
- "id": 976,
- "name": "BinaryOperation",
- "src": "7219:27:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [978]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset_decimals",
- "overrides": null,
- "scope": 993,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 977,
- "name": "ElementaryTypeName",
- "src": "7266:5:1"
- }
- ],
- "id": 978,
- "name": "VariableDeclaration",
- "src": "7266:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_103_by_1",
- "typeString": "int_const 103"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 979,
- "name": "Identifier",
- "src": "7289:4:1"
- }
- ],
- "id": 980,
- "name": "MemberAccess",
- "src": "7289:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "313033",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 103",
- "value": "103"
- },
- "id": 981,
- "name": "Literal",
- "src": "7302:3:1"
- }
- ],
- "id": 982,
- "name": "FunctionCall",
- "src": "7289:17:1"
- }
- ],
- "id": 983,
- "name": "VariableDeclarationStatement",
- "src": "7266:40:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 966,
- "type": "address",
- "value": "wrapped_asset"
- },
- "id": 984,
- "name": "Identifier",
- "src": "7324:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1094,
- "type": "function (bytes32,uint8,bytes32,uint8) returns (address)",
- "value": "deployWrappedAsset"
- },
- "id": 985,
- "name": "Identifier",
- "src": "7340:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 956,
- "type": "bytes32",
- "value": "asset_id"
- },
- "id": 986,
- "name": "Identifier",
- "src": "7359:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 918,
- "type": "uint8",
- "value": "token_chain"
- },
- "id": 987,
- "name": "Identifier",
- "src": "7369:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 949,
- "type": "bytes32",
- "value": "token_address"
- },
- "id": 988,
- "name": "Identifier",
- "src": "7382:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 978,
- "type": "uint8",
- "value": "asset_decimals"
- },
- "id": 989,
- "name": "Identifier",
- "src": "7397:14:1"
- }
- ],
- "id": 990,
- "name": "FunctionCall",
- "src": "7340:72:1"
- }
- ],
- "id": 991,
- "name": "Assignment",
- "src": "7324:88:1"
- }
- ],
- "id": 992,
- "name": "ExpressionStatement",
- "src": "7324:88:1"
- }
- ],
- "id": 993,
- "name": "Block",
- "src": "7248:179:1"
- }
- ],
- "id": 994,
- "name": "IfStatement",
- "src": "7215:212:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "mint",
- "referencedDeclaration": 1511,
- "type": "function (address,uint256) external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 995,
- "name": "Identifier",
- "src": "7441:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 966,
- "type": "address",
- "value": "wrapped_asset"
- },
- "id": 996,
- "name": "Identifier",
- "src": "7454:13:1"
- }
- ],
- "id": 997,
- "name": "FunctionCall",
- "src": "7441:27:1"
- }
- ],
- "id": 998,
- "name": "MemberAccess",
- "src": "7441:32:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 909,
- "type": "address",
- "value": "target_address"
- },
- "id": 999,
- "name": "Identifier",
- "src": "7474:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 925,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1000,
- "name": "Identifier",
- "src": "7490:6:1"
- }
- ],
- "id": 1001,
- "name": "FunctionCall",
- "src": "7441:56:1"
- }
- ],
- "id": 1002,
- "name": "ExpressionStatement",
- "src": "7441:56:1"
- }
- ],
- "id": 1003,
- "name": "Block",
- "src": "6918:590:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1005]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_address",
- "overrides": null,
- "scope": 1048,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1004,
- "name": "ElementaryTypeName",
- "src": "7528:7:1"
- }
- ],
- "id": 1005,
- "name": "VariableDeclaration",
- "src": "7528:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toAddress",
- "referencedDeclaration": 82,
- "type": "function (bytes memory,uint256) pure returns (address)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 1006,
- "name": "Identifier",
- "src": "7552:4:1"
- }
- ],
- "id": 1007,
- "name": "MemberAccess",
- "src": "7552:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "+",
- "type": "int_const 83"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3731",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 71",
- "value": "71"
- },
- "id": 1008,
- "name": "Literal",
- "src": "7567:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3132",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 12",
- "value": "12"
- },
- "id": 1009,
- "name": "Literal",
- "src": "7572:2:1"
- }
- ],
- "id": 1010,
- "name": "BinaryOperation",
- "src": "7567:7:1"
- }
- ],
- "id": 1011,
- "name": "FunctionCall",
- "src": "7552:23:1"
- }
- ],
- "id": 1012,
- "name": "VariableDeclarationStatement",
- "src": "7528:47:1"
- },
- {
- "attributes": {
- "assignments": [1014]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "decimals",
- "overrides": null,
- "scope": 1048,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1013,
- "name": "ElementaryTypeName",
- "src": "7590:5:1"
- }
- ],
- "id": 1014,
- "name": "VariableDeclaration",
- "src": "7590:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "decimals",
- "referencedDeclaration": 2584,
- "type": "function () view external returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract ERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3008,
- "type": "type(contract ERC20)",
- "value": "ERC20"
- },
- "id": 1015,
- "name": "Identifier",
- "src": "7607:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1005,
- "type": "address",
- "value": "token_address"
- },
- "id": 1016,
- "name": "Identifier",
- "src": "7613:13:1"
- }
- ],
- "id": 1017,
- "name": "FunctionCall",
- "src": "7607:20:1"
- }
- ],
- "id": 1018,
- "name": "MemberAccess",
- "src": "7607:29:1"
- }
- ],
- "id": 1019,
- "name": "FunctionCall",
- "src": "7607:31:1"
- }
- ],
- "id": 1020,
- "name": "VariableDeclarationStatement",
- "src": "7590:48:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1014,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1021,
- "name": "Identifier",
- "src": "7727:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1022,
- "name": "Literal",
- "src": "7738:1:1"
- }
- ],
- "id": 1023,
- "name": "BinaryOperation",
- "src": "7727:12:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 925,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1024,
- "name": "Identifier",
- "src": "7759:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "mul",
- "referencedDeclaration": 2388,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 925,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1025,
- "name": "Identifier",
- "src": "7768:6:1"
- }
- ],
- "id": 1026,
- "name": "MemberAccess",
- "src": "7768:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "**",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1027,
- "name": "Literal",
- "src": "7779:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1028,
- "name": "ElementaryTypeName",
- "src": "7785:7:1"
- }
- ],
- "id": 1029,
- "name": "ElementaryTypeNameExpression",
- "src": "7785:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1014,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1030,
- "name": "Identifier",
- "src": "7793:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1031,
- "name": "Literal",
- "src": "7804:1:1"
- }
- ],
- "id": 1032,
- "name": "BinaryOperation",
- "src": "7793:12:1"
- }
- ],
- "id": 1033,
- "name": "FunctionCall",
- "src": "7785:21:1"
- }
- ],
- "id": 1034,
- "name": "BinaryOperation",
- "src": "7779:27:1"
- }
- ],
- "id": 1035,
- "name": "FunctionCall",
- "src": "7768:39:1"
- }
- ],
- "id": 1036,
- "name": "Assignment",
- "src": "7759:48:1"
- }
- ],
- "id": 1037,
- "name": "ExpressionStatement",
- "src": "7759:48:1"
- }
- ],
- "id": 1038,
- "name": "Block",
- "src": "7741:81:1"
- }
- ],
- "id": 1039,
- "name": "IfStatement",
- "src": "7723:99:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "safeTransfer",
- "referencedDeclaration": 3120,
- "type": "function (contract IERC20,address,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1040,
- "name": "Identifier",
- "src": "7835:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1005,
- "type": "address",
- "value": "token_address"
- },
- "id": 1041,
- "name": "Identifier",
- "src": "7842:13:1"
- }
- ],
- "id": 1042,
- "name": "FunctionCall",
- "src": "7835:21:1"
- }
- ],
- "id": 1043,
- "name": "MemberAccess",
- "src": "7835:34:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 909,
- "type": "address",
- "value": "target_address"
- },
- "id": 1044,
- "name": "Identifier",
- "src": "7870:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 925,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1045,
- "name": "Identifier",
- "src": "7886:6:1"
- }
- ],
- "id": 1046,
- "name": "FunctionCall",
- "src": "7835:58:1"
- }
- ],
- "id": 1047,
- "name": "ExpressionStatement",
- "src": "7835:58:1"
- }
- ],
- "id": 1048,
- "name": "Block",
- "src": "7514:390:1"
- }
- ],
- "id": 1049,
- "name": "IfStatement",
- "src": "6889:1015:1"
- }
- ],
- "id": 1050,
- "name": "Block",
- "src": "6266:1644:1"
- }
- ],
- "id": 1051,
- "name": "FunctionDefinition",
- "src": "6218:1692:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "deployWrappedAsset",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "seed",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1052,
- "name": "ElementaryTypeName",
- "src": "7944:7:1"
- }
- ],
- "id": 1053,
- "name": "VariableDeclaration",
- "src": "7944:12:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_chain",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1054,
- "name": "ElementaryTypeName",
- "src": "7958:5:1"
- }
- ],
- "id": 1055,
- "name": "VariableDeclaration",
- "src": "7958:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_address",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1056,
- "name": "ElementaryTypeName",
- "src": "7977:7:1"
- }
- ],
- "id": 1057,
- "name": "VariableDeclaration",
- "src": "7977:21:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "decimals",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1058,
- "name": "ElementaryTypeName",
- "src": "8000:5:1"
- }
- ],
- "id": 1059,
- "name": "VariableDeclaration",
- "src": "8000:14:1"
- }
- ],
- "id": 1060,
- "name": "ParameterList",
- "src": "7943:72:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1061,
- "name": "ElementaryTypeName",
- "src": "8033:7:1"
- }
- ],
- "id": 1062,
- "name": "VariableDeclaration",
- "src": "8033:13:1"
- }
- ],
- "id": 1063,
- "name": "ParameterList",
- "src": "8032:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1065]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "targetBytes",
- "overrides": null,
- "scope": 1093,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes20",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes20",
- "type": "bytes20"
- },
- "id": 1064,
- "name": "ElementaryTypeName",
- "src": "8225:7:1"
- }
- ],
- "id": 1065,
- "name": "VariableDeclaration",
- "src": "8225:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes20)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes20",
- "type": null
- },
- "id": 1066,
- "name": "ElementaryTypeName",
- "src": "8247:7:1"
- }
- ],
- "id": 1067,
- "name": "ElementaryTypeNameExpression",
- "src": "8247:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 359,
- "type": "address",
- "value": "wrappedAssetMaster"
- },
- "id": 1068,
- "name": "Identifier",
- "src": "8255:18:1"
- }
- ],
- "id": 1069,
- "name": "FunctionCall",
- "src": "8247:27:1"
- }
- ],
- "id": 1070,
- "name": "VariableDeclarationStatement",
- "src": "8225:49:1"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 1062,
- "isOffset": false,
- "isSlot": false,
- "src": "8593:5:1",
- "valueSize": 1
- },
- {
- "declaration": 1053,
- "isOffset": false,
- "isSlot": false,
- "src": "8626:4:1",
- "valueSize": 1
- },
- {
- "declaration": 1065,
- "isOffset": false,
- "isSlot": false,
- "src": "8463:11:1",
- "valueSize": 1
- }
- ],
- "operations": "{\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)\n asset := create2(0, clone, 0x37, seed)\n}"
- },
- "children": [],
- "id": 1071,
- "name": "InlineAssembly",
- "src": "8284:357:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "initialize",
- "referencedDeclaration": 1490,
- "type": "function (uint8,bytes32,uint8) external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 1072,
- "name": "Identifier",
- "src": "8679:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1062,
- "type": "address",
- "value": "asset"
- },
- "id": 1073,
- "name": "Identifier",
- "src": "8692:5:1"
- }
- ],
- "id": 1074,
- "name": "FunctionCall",
- "src": "8679:19:1"
- }
- ],
- "id": 1075,
- "name": "MemberAccess",
- "src": "8679:30:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1055,
- "type": "uint8",
- "value": "token_chain"
- },
- "id": 1076,
- "name": "Identifier",
- "src": "8710:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1057,
- "type": "bytes32",
- "value": "token_address"
- },
- "id": 1077,
- "name": "Identifier",
- "src": "8723:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1059,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1078,
- "name": "Identifier",
- "src": "8738:8:1"
- }
- ],
- "id": 1079,
- "name": "FunctionCall",
- "src": "8679:68:1"
- }
- ],
- "id": 1080,
- "name": "ExpressionStatement",
- "src": "8679:68:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 424,
- "type": "mapping(bytes32 => address)",
- "value": "wrappedAssets"
- },
- "id": 1081,
- "name": "Identifier",
- "src": "8783:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1053,
- "type": "bytes32",
- "value": "seed"
- },
- "id": 1082,
- "name": "Identifier",
- "src": "8797:4:1"
- }
- ],
- "id": 1083,
- "name": "IndexAccess",
- "src": "8783:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1062,
- "type": "address",
- "value": "asset"
- },
- "id": 1084,
- "name": "Identifier",
- "src": "8805:5:1"
- }
- ],
- "id": 1085,
- "name": "Assignment",
- "src": "8783:27:1"
- }
- ],
- "id": 1086,
- "name": "ExpressionStatement",
- "src": "8783:27:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 428,
- "type": "mapping(address => bool)",
- "value": "isWrappedAsset"
- },
- "id": 1087,
- "name": "Identifier",
- "src": "8820:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1062,
- "type": "address",
- "value": "asset"
- },
- "id": 1088,
- "name": "Identifier",
- "src": "8835:5:1"
- }
- ],
- "id": 1089,
- "name": "IndexAccess",
- "src": "8820:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1090,
- "name": "Literal",
- "src": "8844:4:1"
- }
- ],
- "id": 1091,
- "name": "Assignment",
- "src": "8820:28:1"
- }
- ],
- "id": 1092,
- "name": "ExpressionStatement",
- "src": "8820:28:1"
- }
- ],
- "id": 1093,
- "name": "Block",
- "src": "8047:808:1"
- }
- ],
- "id": 1094,
- "name": "FunctionDefinition",
- "src": "7916:939:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "70713960",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "name": "lockAssets",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1095,
- "name": "ElementaryTypeName",
- "src": "8890:7:1"
- }
- ],
- "id": 1096,
- "name": "VariableDeclaration",
- "src": "8890:13:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1097,
- "name": "ElementaryTypeName",
- "src": "8913:7:1"
- }
- ],
- "id": 1098,
- "name": "VariableDeclaration",
- "src": "8913:14:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1099,
- "name": "ElementaryTypeName",
- "src": "8937:7:1"
- }
- ],
- "id": 1100,
- "name": "VariableDeclaration",
- "src": "8937:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target_chain",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1101,
- "name": "ElementaryTypeName",
- "src": "8964:5:1"
- }
- ],
- "id": 1102,
- "name": "VariableDeclaration",
- "src": "8964:18:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "nonce",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 1103,
- "name": "ElementaryTypeName",
- "src": "8992:6:1"
- }
- ],
- "id": 1104,
- "name": "VariableDeclaration",
- "src": "8992:12:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "refund_dust",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1105,
- "name": "ElementaryTypeName",
- "src": "9014:4:1"
- }
- ],
- "id": 1106,
- "name": "VariableDeclaration",
- "src": "9014:16:1"
- }
- ],
- "id": 1107,
- "name": "ParameterList",
- "src": "8880:156:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1110,
- "name": "ParameterList",
- "src": "9057:0:1"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3657,
- "type": "modifier ()",
- "value": "nonReentrant"
- },
- "id": 1108,
- "name": "Identifier",
- "src": "9044:12:1"
- }
- ],
- "id": 1109,
- "name": "ModifierInvocation",
- "src": "9044:12:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1111,
- "name": "Identifier",
- "src": "9067:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1102,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 1112,
- "name": "Identifier",
- "src": "9075:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 1113,
- "name": "Identifier",
- "src": "9091:8:1"
- }
- ],
- "id": 1114,
- "name": "BinaryOperation",
- "src": "9075:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6d757374206e6f74207472616e7366657220746f207468652073616d6520636861696e",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"must not transfer to the same chain\"",
- "value": "must not transfer to the same chain"
- },
- "id": 1115,
- "name": "Literal",
- "src": "9101:37:1"
- }
- ],
- "id": 1116,
- "name": "FunctionCall",
- "src": "9067:72:1"
- }
- ],
- "id": 1117,
- "name": "ExpressionStatement",
- "src": "9067:72:1"
- },
- {
- "attributes": {
- "assignments": [1119]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset_chain",
- "overrides": null,
- "scope": 1313,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1118,
- "name": "ElementaryTypeName",
- "src": "9150:5:1"
- }
- ],
- "id": 1119,
- "name": "VariableDeclaration",
- "src": "9150:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 1120,
- "name": "Identifier",
- "src": "9170:8:1"
- }
- ],
- "id": 1121,
- "name": "VariableDeclarationStatement",
- "src": "9150:28:1"
- },
- {
- "attributes": {
- "assignments": [1123],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset_address",
- "overrides": null,
- "scope": 1313,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1122,
- "name": "ElementaryTypeName",
- "src": "9188:7:1"
- }
- ],
- "id": 1123,
- "name": "VariableDeclaration",
- "src": "9188:21:1"
- }
- ],
- "id": 1124,
- "name": "VariableDeclarationStatement",
- "src": "9188:21:1"
- },
- {
- "attributes": {
- "assignments": [1126]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "decimals",
- "overrides": null,
- "scope": 1313,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1125,
- "name": "ElementaryTypeName",
- "src": "9219:5:1"
- }
- ],
- "id": 1126,
- "name": "VariableDeclaration",
- "src": "9219:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "decimals",
- "referencedDeclaration": 2584,
- "type": "function () view external returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract ERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3008,
- "type": "type(contract ERC20)",
- "value": "ERC20"
- },
- "id": 1127,
- "name": "Identifier",
- "src": "9236:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1128,
- "name": "Identifier",
- "src": "9242:5:1"
- }
- ],
- "id": 1129,
- "name": "FunctionCall",
- "src": "9236:12:1"
- }
- ],
- "id": 1130,
- "name": "MemberAccess",
- "src": "9236:21:1"
- }
- ],
- "id": 1131,
- "name": "FunctionCall",
- "src": "9236:23:1"
- }
- ],
- "id": 1132,
- "name": "VariableDeclarationStatement",
- "src": "9219:40:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 428,
- "type": "mapping(address => bool)",
- "value": "isWrappedAsset"
- },
- "id": 1133,
- "name": "Identifier",
- "src": "9274:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1134,
- "name": "Identifier",
- "src": "9289:5:1"
- }
- ],
- "id": 1135,
- "name": "IndexAccess",
- "src": "9274:21:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "burn",
- "referencedDeclaration": 1532,
- "type": "function (address,uint256) external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 1136,
- "name": "Identifier",
- "src": "9311:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1137,
- "name": "Identifier",
- "src": "9324:5:1"
- }
- ],
- "id": 1138,
- "name": "FunctionCall",
- "src": "9311:19:1"
- }
- ],
- "id": 1139,
- "name": "MemberAccess",
- "src": "9311:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1140,
- "name": "Identifier",
- "src": "9336:3:1"
- }
- ],
- "id": 1141,
- "name": "MemberAccess",
- "src": "9336:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1142,
- "name": "Identifier",
- "src": "9348:6:1"
- }
- ],
- "id": 1143,
- "name": "FunctionCall",
- "src": "9311:44:1"
- }
- ],
- "id": 1144,
- "name": "ExpressionStatement",
- "src": "9311:44:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1119,
- "type": "uint8",
- "value": "asset_chain"
- },
- "id": 1145,
- "name": "Identifier",
- "src": "9369:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "assetChain",
- "referencedDeclaration": 1443,
- "type": "function () view external returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 1146,
- "name": "Identifier",
- "src": "9383:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1147,
- "name": "Identifier",
- "src": "9396:5:1"
- }
- ],
- "id": 1148,
- "name": "FunctionCall",
- "src": "9383:19:1"
- }
- ],
- "id": 1149,
- "name": "MemberAccess",
- "src": "9383:30:1"
- }
- ],
- "id": 1150,
- "name": "FunctionCall",
- "src": "9383:32:1"
- }
- ],
- "id": 1151,
- "name": "Assignment",
- "src": "9369:46:1"
- }
- ],
- "id": 1152,
- "name": "ExpressionStatement",
- "src": "9369:46:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1123,
- "type": "bytes32",
- "value": "asset_address"
- },
- "id": 1153,
- "name": "Identifier",
- "src": "9429:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "assetAddress",
- "referencedDeclaration": 1445,
- "type": "function () view external returns (bytes32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 1154,
- "name": "Identifier",
- "src": "9445:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1155,
- "name": "Identifier",
- "src": "9458:5:1"
- }
- ],
- "id": 1156,
- "name": "FunctionCall",
- "src": "9445:19:1"
- }
- ],
- "id": 1157,
- "name": "MemberAccess",
- "src": "9445:32:1"
- }
- ],
- "id": 1158,
- "name": "FunctionCall",
- "src": "9445:34:1"
- }
- ],
- "id": 1159,
- "name": "Assignment",
- "src": "9429:50:1"
- }
- ],
- "id": 1160,
- "name": "ExpressionStatement",
- "src": "9429:50:1"
- }
- ],
- "id": 1161,
- "name": "Block",
- "src": "9297:193:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1163]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "balanceBefore",
- "overrides": null,
- "scope": 1286,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1162,
- "name": "ElementaryTypeName",
- "src": "9510:7:1"
- }
- ],
- "id": 1163,
- "name": "VariableDeclaration",
- "src": "9510:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "balanceOf",
- "referencedDeclaration": 3025,
- "type": "function (address) view external returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1164,
- "name": "Identifier",
- "src": "9534:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1165,
- "name": "Identifier",
- "src": "9541:5:1"
- }
- ],
- "id": 1166,
- "name": "FunctionCall",
- "src": "9534:13:1"
- }
- ],
- "id": 1167,
- "name": "MemberAccess",
- "src": "9534:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 1168,
- "name": "ElementaryTypeName",
- "src": "9558:7:1"
- }
- ],
- "id": 1169,
- "name": "ElementaryTypeNameExpression",
- "src": "9558:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "contract Wormhole",
- "value": "this"
- },
- "id": 1170,
- "name": "Identifier",
- "src": "9566:4:1"
- }
- ],
- "id": 1171,
- "name": "FunctionCall",
- "src": "9558:13:1"
- }
- ],
- "id": 1172,
- "name": "FunctionCall",
- "src": "9534:38:1"
- }
- ],
- "id": 1173,
- "name": "VariableDeclarationStatement",
- "src": "9510:62:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "safeTransferFrom",
- "referencedDeclaration": 3145,
- "type": "function (contract IERC20,address,address,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1174,
- "name": "Identifier",
- "src": "9586:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1175,
- "name": "Identifier",
- "src": "9593:5:1"
- }
- ],
- "id": 1176,
- "name": "FunctionCall",
- "src": "9586:13:1"
- }
- ],
- "id": 1177,
- "name": "MemberAccess",
- "src": "9586:30:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1178,
- "name": "Identifier",
- "src": "9617:3:1"
- }
- ],
- "id": 1179,
- "name": "MemberAccess",
- "src": "9617:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 1180,
- "name": "ElementaryTypeName",
- "src": "9629:7:1"
- }
- ],
- "id": 1181,
- "name": "ElementaryTypeNameExpression",
- "src": "9629:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "contract Wormhole",
- "value": "this"
- },
- "id": 1182,
- "name": "Identifier",
- "src": "9637:4:1"
- }
- ],
- "id": 1183,
- "name": "FunctionCall",
- "src": "9629:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1184,
- "name": "Identifier",
- "src": "9644:6:1"
- }
- ],
- "id": 1185,
- "name": "FunctionCall",
- "src": "9586:65:1"
- }
- ],
- "id": 1186,
- "name": "ExpressionStatement",
- "src": "9586:65:1"
- },
- {
- "attributes": {
- "assignments": [1188]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "balanceAfter",
- "overrides": null,
- "scope": 1286,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1187,
- "name": "ElementaryTypeName",
- "src": "9665:7:1"
- }
- ],
- "id": 1188,
- "name": "VariableDeclaration",
- "src": "9665:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "balanceOf",
- "referencedDeclaration": 3025,
- "type": "function (address) view external returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1189,
- "name": "Identifier",
- "src": "9688:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1190,
- "name": "Identifier",
- "src": "9695:5:1"
- }
- ],
- "id": 1191,
- "name": "FunctionCall",
- "src": "9688:13:1"
- }
- ],
- "id": 1192,
- "name": "MemberAccess",
- "src": "9688:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 1193,
- "name": "ElementaryTypeName",
- "src": "9712:7:1"
- }
- ],
- "id": 1194,
- "name": "ElementaryTypeNameExpression",
- "src": "9712:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "contract Wormhole",
- "value": "this"
- },
- "id": 1195,
- "name": "Identifier",
- "src": "9720:4:1"
- }
- ],
- "id": 1196,
- "name": "FunctionCall",
- "src": "9712:13:1"
- }
- ],
- "id": 1197,
- "name": "FunctionCall",
- "src": "9688:38:1"
- }
- ],
- "id": 1198,
- "name": "VariableDeclarationStatement",
- "src": "9665:61:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1199,
- "name": "Identifier",
- "src": "9931:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2354,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1188,
- "type": "uint256",
- "value": "balanceAfter"
- },
- "id": 1200,
- "name": "Identifier",
- "src": "9940:12:1"
- }
- ],
- "id": 1201,
- "name": "MemberAccess",
- "src": "9940:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1163,
- "type": "uint256",
- "value": "balanceBefore"
- },
- "id": 1202,
- "name": "Identifier",
- "src": "9957:13:1"
- }
- ],
- "id": 1203,
- "name": "FunctionCall",
- "src": "9940:31:1"
- }
- ],
- "id": 1204,
- "name": "Assignment",
- "src": "9931:40:1"
- }
- ],
- "id": 1205,
- "name": "ExpressionStatement",
- "src": "9931:40:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1206,
- "name": "Identifier",
- "src": "10046:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1207,
- "name": "Literal",
- "src": "10057:1:1"
- }
- ],
- "id": 1208,
- "name": "BinaryOperation",
- "src": "10046:12:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1210]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "original_amount",
- "overrides": null,
- "scope": 1253,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1209,
- "name": "ElementaryTypeName",
- "src": "10078:7:1"
- }
- ],
- "id": 1210,
- "name": "VariableDeclaration",
- "src": "10078:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1211,
- "name": "Identifier",
- "src": "10104:6:1"
- }
- ],
- "id": 1212,
- "name": "VariableDeclarationStatement",
- "src": "10078:32:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1213,
- "name": "Identifier",
- "src": "10128:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "div",
- "referencedDeclaration": 2410,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1214,
- "name": "Identifier",
- "src": "10137:6:1"
- }
- ],
- "id": 1215,
- "name": "MemberAccess",
- "src": "10137:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "**",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1216,
- "name": "Literal",
- "src": "10148:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1217,
- "name": "ElementaryTypeName",
- "src": "10154:7:1"
- }
- ],
- "id": 1218,
- "name": "ElementaryTypeNameExpression",
- "src": "10154:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1219,
- "name": "Identifier",
- "src": "10162:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1220,
- "name": "Literal",
- "src": "10173:1:1"
- }
- ],
- "id": 1221,
- "name": "BinaryOperation",
- "src": "10162:12:1"
- }
- ],
- "id": 1222,
- "name": "FunctionCall",
- "src": "10154:21:1"
- }
- ],
- "id": 1223,
- "name": "BinaryOperation",
- "src": "10148:27:1"
- }
- ],
- "id": 1224,
- "name": "FunctionCall",
- "src": "10137:39:1"
- }
- ],
- "id": 1225,
- "name": "Assignment",
- "src": "10128:48:1"
- }
- ],
- "id": 1226,
- "name": "ExpressionStatement",
- "src": "10128:48:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1106,
- "type": "bool",
- "value": "refund_dust"
- },
- "id": 1227,
- "name": "Identifier",
- "src": "10199:11:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "safeTransfer",
- "referencedDeclaration": 3120,
- "type": "function (contract IERC20,address,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1228,
- "name": "Identifier",
- "src": "10234:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1229,
- "name": "Identifier",
- "src": "10241:5:1"
- }
- ],
- "id": 1230,
- "name": "FunctionCall",
- "src": "10234:13:1"
- }
- ],
- "id": 1231,
- "name": "MemberAccess",
- "src": "10234:26:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1232,
- "name": "Identifier",
- "src": "10261:3:1"
- }
- ],
- "id": 1233,
- "name": "MemberAccess",
- "src": "10261:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "mod",
- "referencedDeclaration": 2432,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1210,
- "type": "uint256",
- "value": "original_amount"
- },
- "id": 1234,
- "name": "Identifier",
- "src": "10273:15:1"
- }
- ],
- "id": 1235,
- "name": "MemberAccess",
- "src": "10273:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "**",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1236,
- "name": "Literal",
- "src": "10293:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1237,
- "name": "ElementaryTypeName",
- "src": "10299:7:1"
- }
- ],
- "id": 1238,
- "name": "ElementaryTypeNameExpression",
- "src": "10299:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1239,
- "name": "Identifier",
- "src": "10307:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1240,
- "name": "Literal",
- "src": "10318:1:1"
- }
- ],
- "id": 1241,
- "name": "BinaryOperation",
- "src": "10307:12:1"
- }
- ],
- "id": 1242,
- "name": "FunctionCall",
- "src": "10299:21:1"
- }
- ],
- "id": 1243,
- "name": "BinaryOperation",
- "src": "10293:27:1"
- }
- ],
- "id": 1244,
- "name": "FunctionCall",
- "src": "10273:48:1"
- }
- ],
- "id": 1245,
- "name": "FunctionCall",
- "src": "10234:88:1"
- }
- ],
- "id": 1246,
- "name": "ExpressionStatement",
- "src": "10234:88:1"
- }
- ],
- "id": 1247,
- "name": "Block",
- "src": "10212:129:1"
- }
- ],
- "id": 1248,
- "name": "IfStatement",
- "src": "10195:146:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1249,
- "name": "Identifier",
- "src": "10359:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1250,
- "name": "Literal",
- "src": "10370:1:1"
- }
- ],
- "id": 1251,
- "name": "Assignment",
- "src": "10359:12:1"
- }
- ],
- "id": 1252,
- "name": "ExpressionStatement",
- "src": "10359:12:1"
- }
- ],
- "id": 1253,
- "name": "Block",
- "src": "10060:326:1"
- }
- ],
- "id": 1254,
- "name": "IfStatement",
- "src": "10042:344:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4",
- "typeString": "literal_string \"bridge balance would exceed maximum\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1255,
- "name": "Identifier",
- "src": "10400:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "div",
- "referencedDeclaration": 2410,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1188,
- "type": "uint256",
- "value": "balanceAfter"
- },
- "id": 1256,
- "name": "Identifier",
- "src": "10408:12:1"
- }
- ],
- "id": 1257,
- "name": "MemberAccess",
- "src": "10408:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "**",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1258,
- "name": "Literal",
- "src": "10425:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1259,
- "name": "ElementaryTypeName",
- "src": "10431:7:1"
- }
- ],
- "id": 1260,
- "name": "ElementaryTypeNameExpression",
- "src": "10431:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- null
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "decimals",
- "referencedDeclaration": 2584,
- "type": "function () view external returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "contract ERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 3008,
- "type": "type(contract ERC20)",
- "value": "ERC20"
- },
- "id": 1261,
- "name": "Identifier",
- "src": "10439:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1262,
- "name": "Identifier",
- "src": "10445:5:1"
- }
- ],
- "id": 1263,
- "name": "FunctionCall",
- "src": "10439:12:1"
- }
- ],
- "id": 1264,
- "name": "MemberAccess",
- "src": "10439:21:1"
- }
- ],
- "id": 1265,
- "name": "FunctionCall",
- "src": "10439:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1266,
- "name": "Literal",
- "src": "10465:1:1"
- }
- ],
- "id": 1267,
- "name": "BinaryOperation",
- "src": "10439:27:1"
- }
- ],
- "id": 1268,
- "name": "FunctionCall",
- "src": "10431:36:1"
- }
- ],
- "id": 1269,
- "name": "BinaryOperation",
- "src": "10425:42:1"
- }
- ],
- "id": 1270,
- "name": "FunctionCall",
- "src": "10408:60:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 357,
- "type": "uint64",
- "value": "MAX_UINT64"
- },
- "id": 1271,
- "name": "Identifier",
- "src": "10472:10:1"
- }
- ],
- "id": 1272,
- "name": "BinaryOperation",
- "src": "10408:74:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6272696467652062616c616e636520776f756c6420657863656564206d6178696d756d",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"bridge balance would exceed maximum\"",
- "value": "bridge balance would exceed maximum"
- },
- "id": 1273,
- "name": "Literal",
- "src": "10484:37:1"
- }
- ],
- "id": 1274,
- "name": "FunctionCall",
- "src": "10400:122:1"
- }
- ],
- "id": 1275,
- "name": "ExpressionStatement",
- "src": "10400:122:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1123,
- "type": "bytes32",
- "value": "asset_address"
- },
- "id": 1276,
- "name": "Identifier",
- "src": "10537:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes32)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": null
- },
- "id": 1277,
- "name": "ElementaryTypeName",
- "src": "10553:7:1"
- }
- ],
- "id": 1278,
- "name": "ElementaryTypeNameExpression",
- "src": "10553:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1279,
- "name": "ElementaryTypeName",
- "src": "10561:7:1"
- }
- ],
- "id": 1280,
- "name": "ElementaryTypeNameExpression",
- "src": "10561:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1281,
- "name": "Identifier",
- "src": "10569:5:1"
- }
- ],
- "id": 1282,
- "name": "FunctionCall",
- "src": "10561:14:1"
- }
- ],
- "id": 1283,
- "name": "FunctionCall",
- "src": "10553:23:1"
- }
- ],
- "id": 1284,
- "name": "Assignment",
- "src": "10537:39:1"
- }
- ],
- "id": 1285,
- "name": "ExpressionStatement",
- "src": "10537:39:1"
- }
- ],
- "id": 1286,
- "name": "Block",
- "src": "9496:1091:1"
- }
- ],
- "id": 1287,
- "name": "IfStatement",
- "src": "9270:1317:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1288,
- "name": "Identifier",
- "src": "10636:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1289,
- "name": "Identifier",
- "src": "10644:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1290,
- "name": "Literal",
- "src": "10654:1:1"
- }
- ],
- "id": 1291,
- "name": "BinaryOperation",
- "src": "10644:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "7472756e636174656420616d6f756e74206d757374206e6f742062652030",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"truncated amount must not be 0\"",
- "value": "truncated amount must not be 0"
- },
- "id": 1292,
- "name": "Literal",
- "src": "10657:32:1"
- }
- ],
- "id": 1293,
- "name": "FunctionCall",
- "src": "10636:54:1"
- }
- ],
- "id": 1294,
- "name": "ExpressionStatement",
- "src": "10636:54:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 395,
- "type": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)",
- "value": "LogTokensLocked"
- },
- "id": 1295,
- "name": "Identifier",
- "src": "10706:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1102,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 1296,
- "name": "Identifier",
- "src": "10722:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1119,
- "type": "uint8",
- "value": "asset_chain"
- },
- "id": 1297,
- "name": "Identifier",
- "src": "10736:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1298,
- "name": "Identifier",
- "src": "10749:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1123,
- "type": "bytes32",
- "value": "asset_address"
- },
- "id": 1299,
- "name": "Identifier",
- "src": "10759:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes32)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": null
- },
- "id": 1300,
- "name": "ElementaryTypeName",
- "src": "10774:7:1"
- }
- ],
- "id": 1301,
- "name": "ElementaryTypeNameExpression",
- "src": "10774:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1302,
- "name": "ElementaryTypeName",
- "src": "10782:7:1"
- }
- ],
- "id": 1303,
- "name": "ElementaryTypeNameExpression",
- "src": "10782:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1304,
- "name": "Identifier",
- "src": "10790:3:1"
- }
- ],
- "id": 1305,
- "name": "MemberAccess",
- "src": "10790:10:1"
- }
- ],
- "id": 1306,
- "name": "FunctionCall",
- "src": "10782:19:1"
- }
- ],
- "id": 1307,
- "name": "FunctionCall",
- "src": "10774:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1100,
- "type": "bytes32",
- "value": "recipient"
- },
- "id": 1308,
- "name": "Identifier",
- "src": "10804:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1309,
- "name": "Identifier",
- "src": "10815:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1104,
- "type": "uint32",
- "value": "nonce"
- },
- "id": 1310,
- "name": "Identifier",
- "src": "10823:5:1"
- }
- ],
- "id": 1311,
- "name": "FunctionCall",
- "src": "10706:123:1"
- }
- ],
- "id": 1312,
- "name": "EmitStatement",
- "src": "10701:128:1"
- }
- ],
- "id": 1313,
- "name": "Block",
- "src": "9057:1779:1"
- }
- ],
- "id": 1314,
- "name": "FunctionDefinition",
- "src": "8861:1975:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "58d62e46",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "name": "lockETH",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 1403,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1315,
- "name": "ElementaryTypeName",
- "src": "10868:7:1"
- }
- ],
- "id": 1316,
- "name": "VariableDeclaration",
- "src": "10868:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target_chain",
- "overrides": null,
- "scope": 1403,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1317,
- "name": "ElementaryTypeName",
- "src": "10895:5:1"
- }
- ],
- "id": 1318,
- "name": "VariableDeclaration",
- "src": "10895:18:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "nonce",
- "overrides": null,
- "scope": 1403,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 1319,
- "name": "ElementaryTypeName",
- "src": "10923:6:1"
- }
- ],
- "id": 1320,
- "name": "VariableDeclaration",
- "src": "10923:12:1"
- }
- ],
- "id": 1321,
- "name": "ParameterList",
- "src": "10858:83:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1324,
- "name": "ParameterList",
- "src": "10970:0:1"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3657,
- "type": "modifier ()",
- "value": "nonReentrant"
- },
- "id": 1322,
- "name": "Identifier",
- "src": "10957:12:1"
- }
- ],
- "id": 1323,
- "name": "ModifierInvocation",
- "src": "10957:12:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1325,
- "name": "Identifier",
- "src": "10980:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1318,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 1326,
- "name": "Identifier",
- "src": "10988:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 1327,
- "name": "Identifier",
- "src": "11004:8:1"
- }
- ],
- "id": 1328,
- "name": "BinaryOperation",
- "src": "10988:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6d757374206e6f74207472616e7366657220746f207468652073616d6520636861696e",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"must not transfer to the same chain\"",
- "value": "must not transfer to the same chain"
- },
- "id": 1329,
- "name": "Literal",
- "src": "11014:37:1"
- }
- ],
- "id": 1330,
- "name": "FunctionCall",
- "src": "10980:72:1"
- }
- ],
- "id": 1331,
- "name": "ExpressionStatement",
- "src": "10980:72:1"
- },
- {
- "attributes": {
- "assignments": [1333]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "remainder",
- "overrides": null,
- "scope": 1402,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1332,
- "name": "ElementaryTypeName",
- "src": "11063:7:1"
- }
- ],
- "id": 1333,
- "name": "VariableDeclaration",
- "src": "11063:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "mod",
- "referencedDeclaration": 2432,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "value",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1334,
- "name": "Identifier",
- "src": "11083:3:1"
- }
- ],
- "id": 1335,
- "name": "MemberAccess",
- "src": "11083:9:1"
- }
- ],
- "id": 1336,
- "name": "MemberAccess",
- "src": "11083:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "**",
- "type": "int_const 1000000000"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1337,
- "name": "Literal",
- "src": "11097:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1338,
- "name": "Literal",
- "src": "11103:1:1"
- }
- ],
- "id": 1339,
- "name": "BinaryOperation",
- "src": "11097:7:1"
- }
- ],
- "id": 1340,
- "name": "FunctionCall",
- "src": "11083:22:1"
- }
- ],
- "id": 1341,
- "name": "VariableDeclarationStatement",
- "src": "11063:42:1"
- },
- {
- "attributes": {
- "assignments": [1343]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "transfer_amount",
- "overrides": null,
- "scope": 1402,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1342,
- "name": "ElementaryTypeName",
- "src": "11115:7:1"
- }
- ],
- "id": 1343,
- "name": "VariableDeclaration",
- "src": "11115:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "div",
- "referencedDeclaration": 2410,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "value",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1344,
- "name": "Identifier",
- "src": "11141:3:1"
- }
- ],
- "id": 1345,
- "name": "MemberAccess",
- "src": "11141:9:1"
- }
- ],
- "id": 1346,
- "name": "MemberAccess",
- "src": "11141:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "**",
- "type": "int_const 1000000000"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1347,
- "name": "Literal",
- "src": "11155:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1348,
- "name": "Literal",
- "src": "11161:1:1"
- }
- ],
- "id": 1349,
- "name": "BinaryOperation",
- "src": "11155:7:1"
- }
- ],
- "id": 1350,
- "name": "FunctionCall",
- "src": "11141:22:1"
- }
- ],
- "id": 1351,
- "name": "VariableDeclarationStatement",
- "src": "11115:48:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1352,
- "name": "Identifier",
- "src": "11173:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1343,
- "type": "uint256",
- "value": "transfer_amount"
- },
- "id": 1353,
- "name": "Identifier",
- "src": "11181:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1354,
- "name": "Literal",
- "src": "11200:1:1"
- }
- ],
- "id": 1355,
- "name": "BinaryOperation",
- "src": "11181:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "7472756e636174656420616d6f756e74206d757374206e6f742062652030",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"truncated amount must not be 0\"",
- "value": "truncated amount must not be 0"
- },
- "id": 1356,
- "name": "Literal",
- "src": "11203:32:1"
- }
- ],
- "id": 1357,
- "name": "FunctionCall",
- "src": "11173:63:1"
- }
- ],
- "id": 1358,
- "name": "ExpressionStatement",
- "src": "11173:63:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "transfer",
- "referencedDeclaration": null,
- "type": "function (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1359,
- "name": "Identifier",
- "src": "11282:3:1"
- }
- ],
- "id": 1362,
- "name": "MemberAccess",
- "src": "11282:10:1"
- }
- ],
- "id": 1363,
- "name": "MemberAccess",
- "src": "11282:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1333,
- "type": "uint256",
- "value": "remainder"
- },
- "id": 1364,
- "name": "Identifier",
- "src": "11302:9:1"
- }
- ],
- "id": 1365,
- "name": "FunctionCall",
- "src": "11282:30:1"
- }
- ],
- "id": 1366,
- "name": "ExpressionStatement",
- "src": "11282:30:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "names": ["value"],
- "type": "function () payable external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "deposit",
- "referencedDeclaration": 1425,
- "type": "function () payable external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WETH",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1431,
- "type": "type(contract WETH)",
- "value": "WETH"
- },
- "id": 1367,
- "name": "Identifier",
- "src": "11356:4:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 365,
- "type": "address",
- "value": "WETHAddress"
- },
- "id": 1368,
- "name": "Identifier",
- "src": "11361:11:1"
- }
- ],
- "id": 1369,
- "name": "FunctionCall",
- "src": "11356:17:1"
- }
- ],
- "id": 1370,
- "name": "MemberAccess",
- "src": "11356:25:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "value",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1371,
- "name": "Identifier",
- "src": "11390:3:1"
- }
- ],
- "id": 1372,
- "name": "MemberAccess",
- "src": "11390:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1333,
- "type": "uint256",
- "value": "remainder"
- },
- "id": 1373,
- "name": "Identifier",
- "src": "11402:9:1"
- }
- ],
- "id": 1374,
- "name": "BinaryOperation",
- "src": "11390:21:1"
- }
- ],
- "id": 1375,
- "name": "FunctionCallOptions",
- "src": "11356:56:1"
- }
- ],
- "id": 1376,
- "name": "FunctionCall",
- "src": "11356:58:1"
- }
- ],
- "id": 1377,
- "name": "ExpressionStatement",
- "src": "11356:58:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 395,
- "type": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)",
- "value": "LogTokensLocked"
- },
- "id": 1378,
- "name": "Identifier",
- "src": "11461:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1318,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 1379,
- "name": "Identifier",
- "src": "11477:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 1380,
- "name": "Identifier",
- "src": "11491:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1381,
- "name": "Literal",
- "src": "11501:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes32)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": null
- },
- "id": 1382,
- "name": "ElementaryTypeName",
- "src": "11504:7:1"
- }
- ],
- "id": 1383,
- "name": "ElementaryTypeNameExpression",
- "src": "11504:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1384,
- "name": "ElementaryTypeName",
- "src": "11512:7:1"
- }
- ],
- "id": 1385,
- "name": "ElementaryTypeNameExpression",
- "src": "11512:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 365,
- "type": "address",
- "value": "WETHAddress"
- },
- "id": 1386,
- "name": "Identifier",
- "src": "11520:11:1"
- }
- ],
- "id": 1387,
- "name": "FunctionCall",
- "src": "11512:20:1"
- }
- ],
- "id": 1388,
- "name": "FunctionCall",
- "src": "11504:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes32)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": null
- },
- "id": 1389,
- "name": "ElementaryTypeName",
- "src": "11535:7:1"
- }
- ],
- "id": 1390,
- "name": "ElementaryTypeNameExpression",
- "src": "11535:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1391,
- "name": "ElementaryTypeName",
- "src": "11543:7:1"
- }
- ],
- "id": 1392,
- "name": "ElementaryTypeNameExpression",
- "src": "11543:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1393,
- "name": "Identifier",
- "src": "11551:3:1"
- }
- ],
- "id": 1394,
- "name": "MemberAccess",
- "src": "11551:10:1"
- }
- ],
- "id": 1395,
- "name": "FunctionCall",
- "src": "11543:19:1"
- }
- ],
- "id": 1396,
- "name": "FunctionCall",
- "src": "11535:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1316,
- "type": "bytes32",
- "value": "recipient"
- },
- "id": 1397,
- "name": "Identifier",
- "src": "11565:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1343,
- "type": "uint256",
- "value": "transfer_amount"
- },
- "id": 1398,
- "name": "Identifier",
- "src": "11576:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1320,
- "type": "uint32",
- "value": "nonce"
- },
- "id": 1399,
- "name": "Identifier",
- "src": "11593:5:1"
- }
- ],
- "id": 1400,
- "name": "FunctionCall",
- "src": "11461:138:1"
- }
- ],
- "id": 1401,
- "name": "EmitStatement",
- "src": "11456:143:1"
- }
- ],
- "id": 1402,
- "name": "Block",
- "src": "10970:636:1"
- }
- ],
- "id": 1403,
- "name": "FunctionDefinition",
- "src": "10842:764:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "fallback",
- "modifiers": [null],
- "name": "",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1404,
- "name": "ParameterList",
- "src": "11620:2:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1405,
- "name": "ParameterList",
- "src": "11640:0:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- }
- ],
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "type": "function (string memory) pure",
- "value": "revert"
- },
- "id": 1406,
- "name": "Identifier",
- "src": "11641:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"please use lockETH to transfer ETH to Solana\"",
- "value": "please use lockETH to transfer ETH to Solana"
- },
- "id": 1407,
- "name": "Literal",
- "src": "11648:46:1"
- }
- ],
- "id": 1408,
- "name": "FunctionCall",
- "src": "11641:54:1"
- }
- ],
- "id": 1409,
- "name": "ExpressionStatement",
- "src": "11641:54:1"
- }
- ],
- "id": 1410,
- "name": "Block",
- "src": "11640:57:1"
- }
- ],
- "id": 1411,
- "name": "FunctionDefinition",
- "src": "11612:85:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "receive",
- "modifiers": [null],
- "name": "",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1412,
- "name": "ParameterList",
- "src": "11710:2:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1413,
- "name": "ParameterList",
- "src": "11730:0:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- }
- ],
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "type": "function (string memory) pure",
- "value": "revert"
- },
- "id": 1414,
- "name": "Identifier",
- "src": "11731:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"please use lockETH to transfer ETH to Solana\"",
- "value": "please use lockETH to transfer ETH to Solana"
- },
- "id": 1415,
- "name": "Literal",
- "src": "11738:46:1"
- }
- ],
- "id": 1416,
- "name": "FunctionCall",
- "src": "11731:54:1"
- }
- ],
- "id": 1417,
- "name": "ExpressionStatement",
- "src": "11731:54:1"
- }
- ],
- "id": 1418,
- "name": "Block",
- "src": "11730:57:1"
- }
- ],
- "id": 1419,
- "name": "FunctionDefinition",
- "src": "11703:84:1"
- }
- ],
- "id": 1420,
- "name": "ContractDefinition",
- "src": "463:11326:1"
- },
- {
- "attributes": {
- "abstract": false,
- "contractDependencies": [3086],
- "contractKind": "interface",
- "documentation": null,
- "fullyImplemented": false,
- "linearizedBaseContracts": [1431, 3086],
- "name": "WETH",
- "scope": 1432
- },
- "children": [
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 1421,
- "name": "UserDefinedTypeName",
- "src": "11810:6:1"
- }
- ],
- "id": 1422,
- "name": "InheritanceSpecifier",
- "src": "11810:6:1"
- },
- {
- "attributes": {
- "body": null,
- "documentation": null,
- "functionSelector": "d0e30db0",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "deposit",
- "overrides": null,
- "scope": 1431,
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1423,
- "name": "ParameterList",
- "src": "11839:2:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1424,
- "name": "ParameterList",
- "src": "11858:0:1"
- }
- ],
- "id": 1425,
- "name": "FunctionDefinition",
- "src": "11823:36:1"
- },
- {
- "attributes": {
- "body": null,
- "documentation": null,
- "functionSelector": "2e1a7d4d",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "withdraw",
- "overrides": null,
- "scope": 1431,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1430,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1426,
- "name": "ElementaryTypeName",
- "src": "11883:7:1"
- }
- ],
- "id": 1427,
- "name": "VariableDeclaration",
- "src": "11883:14:1"
- }
- ],
- "id": 1428,
- "name": "ParameterList",
- "src": "11882:16:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1429,
- "name": "ParameterList",
- "src": "11907:0:1"
- }
- ],
- "id": 1430,
- "name": "FunctionDefinition",
- "src": "11865:43:1"
- }
- ],
- "id": 1431,
- "name": "ContractDefinition",
- "src": "11792:118:1"
- }
- ],
- "id": 1432,
- "name": "SourceUnit",
- "src": "64:11847:1"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.871Z",
- "devdoc": {
- "kind": "dev",
- "methods": {
- "allowance(address,address)": {
- "details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
- },
- "approve(address,uint256)": {
- "details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
- },
- "balanceOf(address)": {
- "details": "Returns the amount of tokens owned by `account`."
- },
- "totalSupply()": {
- "details": "Returns the amount of tokens in existence."
- },
- "transfer(address,uint256)": {
- "details": "Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
- },
- "transferFrom(address,address,uint256)": {
- "details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
- }
- },
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/Wormhole.json b/packages/bridge-sdk/contracts/Wormhole.json
deleted file mode 100644
index 410f7b1..0000000
--- a/packages/bridge-sdk/contracts/Wormhole.json
+++ /dev/null
@@ -1,32263 +0,0 @@
-{
- "contractName": "Wormhole",
- "abi": [
- {
- "inputs": [
- {
- "components": [
- {
- "internalType": "address[]",
- "name": "keys",
- "type": "address[]"
- },
- {
- "internalType": "uint32",
- "name": "expiration_time",
- "type": "uint32"
- }
- ],
- "internalType": "struct Wormhole.GuardianSet",
- "name": "initial_guardian_set",
- "type": "tuple"
- },
- {
- "internalType": "address",
- "name": "wrapped_asset_master",
- "type": "address"
- },
- {
- "internalType": "uint32",
- "name": "_guardian_set_expirity",
- "type": "uint32"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint32",
- "name": "oldGuardianIndex",
- "type": "uint32"
- },
- {
- "indexed": false,
- "internalType": "uint32",
- "name": "newGuardianIndex",
- "type": "uint32"
- }
- ],
- "name": "LogGuardianSetChanged",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint8",
- "name": "target_chain",
- "type": "uint8"
- },
- {
- "indexed": false,
- "internalType": "uint8",
- "name": "token_chain",
- "type": "uint8"
- },
- {
- "indexed": false,
- "internalType": "uint8",
- "name": "token_decimals",
- "type": "uint8"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "token",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "sender",
- "type": "bytes32"
- },
- {
- "indexed": false,
- "internalType": "bytes32",
- "name": "recipient",
- "type": "bytes32"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint32",
- "name": "nonce",
- "type": "uint32"
- }
- ],
- "name": "LogTokensLocked",
- "type": "event"
- },
- {
- "stateMutability": "payable",
- "type": "fallback"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "name": "consumedVAAs",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "guardian_set_expirity",
- "outputs": [
- {
- "internalType": "uint32",
- "name": "",
- "type": "uint32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "guardian_set_index",
- "outputs": [
- {
- "internalType": "uint32",
- "name": "",
- "type": "uint32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint32",
- "name": "",
- "type": "uint32"
- }
- ],
- "name": "guardian_sets",
- "outputs": [
- {
- "internalType": "uint32",
- "name": "expiration_time",
- "type": "uint32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "isWrappedAsset",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "wrappedAssetMaster",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "name": "wrappedAssets",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "stateMutability": "payable",
- "type": "receive"
- },
- {
- "inputs": [
- {
- "internalType": "uint32",
- "name": "idx",
- "type": "uint32"
- }
- ],
- "name": "getGuardianSet",
- "outputs": [
- {
- "components": [
- {
- "internalType": "address[]",
- "name": "keys",
- "type": "address[]"
- },
- {
- "internalType": "uint32",
- "name": "expiration_time",
- "type": "uint32"
- }
- ],
- "internalType": "struct Wormhole.GuardianSet",
- "name": "gs",
- "type": "tuple"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes",
- "name": "vaa",
- "type": "bytes"
- }
- ],
- "name": "submitVAA",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes",
- "name": "vaa",
- "type": "bytes"
- }
- ],
- "name": "parseAndVerifyVAA",
- "outputs": [
- {
- "components": [
- {
- "internalType": "uint8",
- "name": "version",
- "type": "uint8"
- },
- {
- "internalType": "bytes32",
- "name": "hash",
- "type": "bytes32"
- },
- {
- "internalType": "uint32",
- "name": "guardian_set_index",
- "type": "uint32"
- },
- {
- "internalType": "uint32",
- "name": "timestamp",
- "type": "uint32"
- },
- {
- "internalType": "uint8",
- "name": "action",
- "type": "uint8"
- },
- {
- "internalType": "bytes",
- "name": "payload",
- "type": "bytes"
- }
- ],
- "internalType": "struct Wormhole.ParsedVAA",
- "name": "parsed_vaa",
- "type": "tuple"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "asset",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "internalType": "bytes32",
- "name": "recipient",
- "type": "bytes32"
- },
- {
- "internalType": "uint8",
- "name": "target_chain",
- "type": "uint8"
- },
- {
- "internalType": "uint32",
- "name": "nonce",
- "type": "uint32"
- },
- {
- "internalType": "bool",
- "name": "refund_dust",
- "type": "bool"
- }
- ],
- "name": "lockAssets",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "recipient",
- "type": "bytes32"
- },
- {
- "internalType": "uint8",
- "name": "target_chain",
- "type": "uint8"
- },
- {
- "internalType": "uint32",
- "name": "nonce",
- "type": "uint32"
- }
- ],
- "name": "lockETH",
- "outputs": [],
- "stateMutability": "payable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"initial_guardian_set\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"wrapped_asset_master\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_guardian_set_expirity\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"oldGuardianIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newGuardianIndex\",\"type\":\"uint32\"}],\"name\":\"LogGuardianSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"token_chain\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"token_decimals\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"LogTokensLocked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"consumedVAAs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"idx\",\"type\":\"uint32\"}],\"name\":\"getGuardianSet\",\"outputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"gs\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian_set_expirity\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian_set_index\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"guardian_sets\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isWrappedAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"refund_dust\",\"type\":\"bool\"}],\"name\":\"lockAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"lockETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"vaa\",\"type\":\"bytes\"}],\"name\":\"parseAndVerifyVAA\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"guardian_set_index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"timestamp\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct Wormhole.ParsedVAA\",\"name\":\"parsed_vaa\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"vaa\",\"type\":\"bytes\"}],\"name\":\"submitVAA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedAssetMaster\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"wrappedAssets\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol\":\"Wormhole\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol\":{\"keccak256\":\"0x4a28e69afc4c1c1aee48c7b497f9b8452b295ddcf4bbf453d594a1467016d5f2\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://279e22c43f79567e9f7842cfca8ad2329bbbad2eac30413b620796d51f308719\",\"dweb:/ipfs/QmbdRLJYoKJxDbDLeverNMHsNFEcxnohAA713UFLjLm3Jy\"]},\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol\":{\"keccak256\":\"0xdbd8e88a0a6cb69b6edc83c34d3c51a67560cb0a88d52e908c6d391435242999\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://630e2d852c4e534cff7d1beb00c3fc165a73d6e3a7ee394c5850cbf4047b0a32\",\"dweb:/ipfs/QmUe3mc6HwXCoL1Q6NACA4kMb6mavMKdZxDqVYG2jycoTh\"]},\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol\":{\"keccak256\":\"0x1aca747b823c4d8492ae379cfd9495e8ff19726302d943da56b2bb71aebecc73\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://716c755b41c76deb60297664878f07e0972867918fde13c20c196263d3daa554\",\"dweb:/ipfs/QmbrxvDYfcgSjBBnDdXyZJcwd8pYyyrQhYqY5h6DaxWKcy\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x9486045e189facd2e868ece35249872598ef03f1087fb6fa4d1161842daa2287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77c3a04ef8453788b14b1ebbc24dd3f0a18ceb2615cd156aac949a611e552af8\",\"dweb:/ipfs/QmcmqWGguRM3iLuF57tcyrN3F6EA63kzeNkDfQuteBnurr\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xca0c2396dbeb3503b51abf4248ebf77a1461edad513c01529df51850a012bee3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://991b44ff44e0496e8554a90f4c0512c28faed45104d40430019f3c67ea67740e\",\"dweb:/ipfs/Qmc3nRapVbcctELoZS5qe17zLkFB3bETBfwzCTMF1CSuGE\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf12dfbe97e6276980b83d2830bb0eb75e0cf4f3e626c2471137f82158ae6a0fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a849c2d95e85463909e5b5c920b13e7a11216ca14127085e16d22b9379d52a\",\"dweb:/ipfs/QmUg3CZDbCCcQdroEpexBy5ZFd5vD1UWijWQq9qHZjtJNQ\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x8bbbc2f5c10065ee272592ae0a7a6ceb23de2fbd81564ee0bb015ecf404d5f61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b95e56c1640d0ef789fc5c16269e141e992f6c8ac97cc6d377bd3825e9cab182\",\"dweb:/ipfs/QmVzaxJZY51EhagrcNnkxoU6Uq17RhATe7aHvtkC6wUkgK\"]}},\"version\":1}",
- "bytecode": "0x60806040526002600160146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b50604051620044543803806200445483398181016040528101906200005391906200033e565b600160008190555082600260008063ffffffff1681526020019081526020016000206000820151816000019080519060200190620000939291906200014b565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055509050506000600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200047c565b828054828255906000526020600020908101928215620001c7579160200282015b82811115620001c65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200016c565b5b509050620001d69190620001da565b5090565b5b808211156200021357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620001db565b5090565b600081519050620002288162000448565b92915050565b600082601f8301126200024057600080fd5b8151620002576200025182620003db565b620003ad565b915081818352602084019350602081019050838560208402820111156200027d57600080fd5b60005b83811015620002b1578162000296888262000217565b84526020840193506020830192505060018101905062000280565b5050505092915050565b600060408284031215620002ce57600080fd5b620002da6040620003ad565b9050600082015167ffffffffffffffff811115620002f757600080fd5b62000305848285016200022e565b60008301525060206200031b8482850162000327565b60208301525092915050565b600081519050620003388162000462565b92915050565b6000806000606084860312156200035457600080fd5b600084015167ffffffffffffffff8111156200036f57600080fd5b6200037d86828701620002bb565b9350506020620003908682870162000217565b9250506040620003a38682870162000327565b9150509250925092565b6000604051905081810181811067ffffffffffffffff82111715620003d157600080fd5b8060405250919050565b600067ffffffffffffffff821115620003f357600080fd5b602082029050602081019050919050565b6000620004118262000418565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600063ffffffff82169050919050565b620004538162000404565b81146200045f57600080fd5b50565b6200046d8162000438565b81146200047957600080fd5b50565b613fc8806200048c6000396000f3fe6080604052600436106100ab5760003560e01c80637071396011610064578063707139601461024d578063822d82b31461027657806399da1d3c146102a1578063a31fe409146102cc578063b6694c2a14610309578063f951975a14610346576100eb565b80631a2be4da146101265780633bc0aee61461016357806342b0aefa1461018c5780634db47840146101c957806358d62e46146101f4578063600b9aa614610210576100eb565b366100eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e290613927565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011d90613927565b60405180910390fd5b34801561013257600080fd5b5061014d60048036038101906101489190612a8a565b610383565b60405161015a9190613845565b60405180910390f35b34801561016f57600080fd5b5061018a60048036038101906101859190612c06565b6103a3565b005b34801561019857600080fd5b506101b360048036038101906101ae9190612c74565b610526565b6040516101c09190613c2b565b60405180910390f35b3480156101d557600080fd5b506101de610554565b6040516101eb9190613c2b565b60405180910390f35b61020e60048036038101906102099190612bb7565b61056a565b005b34801561021c57600080fd5b5061023760048036038101906102329190612c06565b6107f0565b6040516102449190613c09565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190612ab3565b611094565b005b34801561028257600080fd5b5061028b61172a565b6040516102989190613c2b565b60405180910390f35b3480156102ad57600080fd5b506102b6611740565b6040516102c39190613786565b60405180910390f35b3480156102d857600080fd5b506102f360048036038101906102ee9190612b65565b611766565b6040516103009190613845565b60405180910390f35b34801561031557600080fd5b50610330600480360381019061032b9190612b65565b611786565b60405161033d9190613786565b60405180910390f35b34801561035257600080fd5b5061036d60048036038101906103689190612c74565b6117b9565b60405161037a9190613be7565b60405180910390f35b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156103e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e090613ba7565b60405180910390fd5b60026000819055506103f961283e565b61040383836107f0565b90506001816080015160ff16141561048b57600360009054906101000a900463ffffffff1663ffffffff16816040015163ffffffff1614610479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047090613987565b60405180910390fd5b6104868160a001516118a6565b6104e9565b6010816080015160ff1614156104ad576104a88160a00151611b87565b6104e8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104df906138e7565b60405180910390fd5b5b6001600460008360200151815260200190815260200160002060006101000a81548160ff0219169083151502179055505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b600360049054906101000a900463ffffffff1681565b600260005414156105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a790613ba7565b60405180910390fd5b6002600081905550600160149054906101000a900460ff1660ff168260ff161415610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790613a27565b60405180910390fd5b6000610629633b9aca0034611f0590919063ffffffff16565b90506000610644633b9aca0034611f5b90919063ffffffff16565b9050600081141561068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190613a87565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156106d0573d6000803e3d6000fd5b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db08334036040518263ffffffff1660e01b81526004016000604051808303818588803b15801561072f57600080fd5b505af1158015610743573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab886600160149054906101000a900460ff1660098a878a6040516107d996959493929190613ca6565b60405180910390a350506001600081905550505050565b6107f861283e565b610850600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b816000019060ff16908160ff16815250506001816000015160ff16146108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a2906139e7565b60405180910390fd5b610903600184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061200f90919063ffffffff16565b816040019063ffffffff16908163ffffffff16815250506000610974600585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b60ff16905060008160420260060190506109db8186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061200f90919063ffffffff16565b836060019063ffffffff16908163ffffffff1681525050610a508182878790500387878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061206d9092919063ffffffff16565b80519060200120836020018181525050600460008460200151815260200190815260200160002060009054906101000a900460ff1615610ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abc90613907565b60405180910390fd5b610acd612889565b60026000856040015163ffffffff1663ffffffff16815260200190815260200160002060405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610b8057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b36575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050600081600001515111610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090613bc7565b60405180910390fd5b6000816020015163ffffffff161480610c1b575042816020015163ffffffff16115b610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613b07565b60405180910390fd5b826001600a60026003600a8660000151510281610c7357fe5b040281610c7c57fe5b04011115610cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb690613ac7565b60405180910390fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905060005b84811015610fb2576000610d4e604283026006018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b90508260010b8160ff1613610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90613b47565b60405180910390fd5b8060ff1692506000610dfd604284026007018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061212f90919063ffffffff16565b90506000610e5e604285026027018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061212f90919063ffffffff16565b90506000610ebf604286026047018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b9050601b8101905086600001518460ff1681518110610eda57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660018b6020015183868660405160008152602001604052604051610f1f9493929190613860565b6020604051602081039080840390855afa158015610f41573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890613a47565b60405180910390fd5b505050508080600101915050610ce7565b5061100d6004840188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b856080019060ff16908160ff16815250506110826005840160058501898990500389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061206d9092919063ffffffff16565b8560a001819052505050505092915050565b600260005414156110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190613ba7565b60405180910390fd5b6002600081905550600160149054906101000a900460ff1660ff168360ff16141561113a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113190613a27565b60405180910390fd5b6000600160149054906101000a900460ff1690506000808873ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561119757600080fd5b505afa1580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf9190612c9d565b9050600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611395578873ffffffffffffffffffffffffffffffffffffffff16639dc29fac338a6040518363ffffffff1660e01b815260040161125e9291906137bc565b600060405180830381600087803b15801561127857600080fd5b505af115801561128c573d6000803e3d6000fd5b505050508873ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190612c9d565b92508873ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561135657600080fd5b505afa15801561136a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138e9190612b8e565b9150611677565b60008973ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113d091906137a1565b60206040518083038186803b1580156113e857600080fd5b505afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114209190612c4b565b905061144f33308b8d73ffffffffffffffffffffffffffffffffffffffff1661218d909392919063ffffffff16565b60008a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161148a91906137a1565b60206040518083038186803b1580156114a257600080fd5b505afa1580156114b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114da9190612c4b565b90506114ef828261221690919063ffffffff16565b995060098360ff1611156115735760008a905061151e6009850360ff16600a0a8c611f5b90919063ffffffff16565b9a50861561156d5761156c336115466009870360ff16600a0a84611f0590919063ffffffff16565b8e73ffffffffffffffffffffffffffffffffffffffff166122669092919063ffffffff16565b5b60099350505b67ffffffffffffffff801661161760098d73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156115c957600080fd5b505afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116019190612c9d565b0360ff16600a0a83611f5b90919063ffffffff16565b1115611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f906138c7565b60405180910390fd5b8a73ffffffffffffffffffffffffffffffffffffffff1660001b935050505b60008814156116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290613a87565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1660001b827f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab88886858c8e8c60405161170f96959493929190613d07565b60405180910390a35050506001600081905550505050505050565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117c1612889565b600260008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561187057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611826575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b60006118bc60008361200f90919063ffffffff16565b90506001600360009054906101000a900463ffffffff160163ffffffff168163ffffffff1614611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890613aa7565b60405180910390fd5b6000611937600484611fb190919063ffffffff16565b905060608160ff1667ffffffffffffffff8111801561195557600080fd5b506040519080825280602002602001820160405280156119845781602001602082028036833780820191505090505b50905060005b8260ff16811015611a075760006119b060148302600501876122ec90919063ffffffff16565b9050808383815181106119bf57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061198a565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff160217905550611a48612889565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000019080519060200190611ab49291906128a9565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff16604051611b77929190613c46565b60405180910390a1505050505050565b6000611b9d600483611fb190919063ffffffff16565b90506000611bb5600584611fb190919063ffffffff16565b90506000611bcd6032856122ec90919063ffffffff16565b90506000611be5604686611fb190919063ffffffff16565b90506000611bfd60688761235990919063ffffffff16565b90508360ff168560ff161415611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613b87565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9690613ae7565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611e0a576000611cd160478861212f90919063ffffffff16565b905060008382604051602001611ce892919061375a565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d95576000611d8360678b611fb190919063ffffffff16565b9050611d91838786846123b7565b9150505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611dd092919061381c565b600060405180830381600087803b158015611dea57600080fd5b505af1158015611dfe573d6000803e3d6000fd5b50505050505050611efd565b6000611e206053886122ec90919063ffffffff16565b905060008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6a57600080fd5b505afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea29190612c9d565b905060098160ff161115611ecf57611ecc6009820360ff16600a0a8461256090919063ffffffff16565b92505b611efa85848473ffffffffffffffffffffffffffffffffffffffff166122669092919063ffffffff16565b50505b505050505050565b6000808211611f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4090613a07565b60405180910390fd5b818381611f5257fe5b06905092915050565b6000808211611f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f96906139a7565b60405180910390fd5b818381611fa857fe5b04905092915050565b60006001820183511015611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff1906139c7565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f906139c7565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156120b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ac906139c7565b60405180910390fd5b60608215600081146120d257604051915060208201604052612123565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561211057805183526020830192506020810190506120f3565b50868552601f19601f8301166040525050505b50809150509392505050565b60006020820183511015612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216f906139c7565b60405180910390fd5b60008260208501015190508091505092915050565b612210846323b872dd60e01b8585856040516024016121ae939291906137e5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506125d0565b50505050565b60008282111561225b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225290613947565b60405180910390fd5b818303905092915050565b6122e78363a9059cbb60e01b848460405160240161228592919061381c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506125d0565b505050565b60006014820183511015612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c906139c7565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b600060208201835110156123a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612399906139c7565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152866037826000f59250508173ffffffffffffffffffffffffffffffffffffffff1663a7a2d3fb8686866040518463ffffffff1660e01b815260040161247b93929190613c6f565b600060405180830381600087803b15801561249557600080fd5b505af11580156124a9573d6000803e3d6000fd5b50505050816005600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050949350505050565b60008083141561257357600090506125ca565b600082840290508284828161258457fe5b04146125c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bc90613a67565b60405180910390fd5b809150505b92915050565b6060612632826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166126979092919063ffffffff16565b905060008151111561269257808060200190518101906126529190612b3c565b612691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268890613b67565b60405180910390fd5b5b505050565b60606126a684846000856126af565b90509392505050565b6060824710156126f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126eb90613967565b60405180910390fd5b6126fd856127c4565b61273c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273390613b27565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516127669190613743565b60006040518083038185875af1925050503d80600081146127a3576040519150601f19603f3d011682016040523d82523d6000602084013e6127a8565b606091505b50915091506127b88282866127d7565b92505050949350505050565b600080823b905060008111915050919050565b606083156127e757829050612837565b6000835111156127fa5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282e91906138a5565b60405180910390fd5b9392505050565b6040518060c00160405280600060ff16815260200160008019168152602001600063ffffffff168152602001600063ffffffff168152602001600060ff168152602001606081525090565b604051806040016040528060608152602001600063ffffffff1681525090565b828054828255906000526020600020908101928215612922579160200282015b828111156129215782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906128c9565b5b50905061292f9190612933565b5090565b5b8082111561296a57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612934565b5090565b60008135905061297d81613f08565b92915050565b60008135905061299281613f1f565b92915050565b6000815190506129a781613f1f565b92915050565b6000813590506129bc81613f36565b92915050565b6000815190506129d181613f36565b92915050565b60008083601f8401126129e957600080fd5b8235905067ffffffffffffffff811115612a0257600080fd5b602083019150836001820283011115612a1a57600080fd5b9250929050565b600081359050612a3081613f4d565b92915050565b600081519050612a4581613f4d565b92915050565b600081359050612a5a81613f64565b92915050565b600081359050612a6f81613f7b565b92915050565b600081519050612a8481613f7b565b92915050565b600060208284031215612a9c57600080fd5b6000612aaa8482850161296e565b91505092915050565b60008060008060008060c08789031215612acc57600080fd5b6000612ada89828a0161296e565b9650506020612aeb89828a01612a21565b9550506040612afc89828a016129ad565b9450506060612b0d89828a01612a60565b9350506080612b1e89828a01612a4b565b92505060a0612b2f89828a01612983565b9150509295509295509295565b600060208284031215612b4e57600080fd5b6000612b5c84828501612998565b91505092915050565b600060208284031215612b7757600080fd5b6000612b85848285016129ad565b91505092915050565b600060208284031215612ba057600080fd5b6000612bae848285016129c2565b91505092915050565b600080600060608486031215612bcc57600080fd5b6000612bda868287016129ad565b9350506020612beb86828701612a60565b9250506040612bfc86828701612a4b565b9150509250925092565b60008060208385031215612c1957600080fd5b600083013567ffffffffffffffff811115612c3357600080fd5b612c3f858286016129d7565b92509250509250929050565b600060208284031215612c5d57600080fd5b6000612c6b84828501612a36565b91505092915050565b600060208284031215612c8657600080fd5b6000612c9484828501612a4b565b91505092915050565b600060208284031215612caf57600080fd5b6000612cbd84828501612a75565b91505092915050565b6000612cd28383612ced565b60208301905092915050565b612ce781613e53565b82525050565b612cf681613de4565b82525050565b612d0581613de4565b82525050565b6000612d1682613d78565b612d208185613da6565b9350612d2b83613d68565b8060005b83811015612d5c578151612d438882612cc6565b9750612d4e83613d99565b925050600181019050612d2f565b5085935050505092915050565b612d7281613df6565b82525050565b612d8181613e02565b82525050565b612d9081613e02565b82525050565b612da7612da282613e02565b613ece565b82525050565b6000612db882613d83565b612dc28185613db7565b9350612dd2818560208601613e9b565b612ddb81613eea565b840191505092915050565b6000612df182613d83565b612dfb8185613dc8565b9350612e0b818560208601613e9b565b80840191505092915050565b612e2081613e65565b82525050565b6000612e3182613d8e565b612e3b8185613dd3565b9350612e4b818560208601613e9b565b612e5481613eea565b840191505092915050565b6000612e6c602383613dd3565b91507f6272696467652062616c616e636520776f756c6420657863656564206d61786960008301527f6d756d00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ed2601283613dd3565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000612f12601883613dd3565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612f52602c83613dd3565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b6000612fb8601e83613dd3565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612ff8602683613dd3565b91507f416464726573733a20696e73756666696369656e742062616c616e636520666f60008301527f722063616c6c00000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061305e603983613dd3565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b60006130c4601a83613dd3565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000613104601283613dd3565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000613144601883613dd3565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000613184601883613dd3565b91507f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000006000830152602082019050919050565b60006131c4602383613dd3565b91507f6d757374206e6f74207472616e7366657220746f207468652073616d6520636860008301527f61696e00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061322a601583613dd3565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061326a602183613dd3565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132d0601e83613dd3565b91507f7472756e636174656420616d6f756e74206d757374206e6f74206265203000006000830152602082019050919050565b6000613310602183613dd3565b91507f696e646578206d75737420696e63726561736520696e207374657073206f662060008301527f31000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613376600983613dd3565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b60006133b6601983613dd3565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006133f6601883613dd3565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000613436601d83613dd3565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000613476602383613dd3565b91507f7369676e617475726520696e6469636573206d75737420626520617363656e6460008301527f696e6700000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134dc602a83613dd3565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000613542602683613dd3565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135a8601f83613dd3565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006135e8601483613dd3565b91507f696e76616c696420677561726469616e207365740000000000000000000000006000830152602082019050919050565b600060408301600083015184820360008601526136388282612d0b565b915050602083015161364d60208601826136f0565b508091505092915050565b600060c083016000830151613670600086018261370e565b5060208301516136836020860182612d78565b50604083015161369660408601826136f0565b5060608301516136a960608601826136f0565b5060808301516136bc608086018261370e565b5060a083015184820360a08601526136d48282612dad565b9150508091505092915050565b6136ea81613e2c565b82525050565b6136f981613e36565b82525050565b61370881613e36565b82525050565b61371781613e46565b82525050565b61372681613e46565b82525050565b61373d61373882613e46565b613ed8565b82525050565b600061374f8284612de6565b915081905092915050565b6000613766828561372c565b6001820191506137768284612d96565b6020820191508190509392505050565b600060208201905061379b6000830184612cfc565b92915050565b60006020820190506137b66000830184612cde565b92915050565b60006040820190506137d16000830185612cde565b6137de60208301846136e1565b9392505050565b60006060820190506137fa6000830186612cfc565b6138076020830185612cfc565b61381460408301846136e1565b949350505050565b60006040820190506138316000830185612cfc565b61383e60208301846136e1565b9392505050565b600060208201905061385a6000830184612d69565b92915050565b60006080820190506138756000830187612d87565b613882602083018661371d565b61388f6040830185612d87565b61389c6060830184612d87565b95945050505050565b600060208201905081810360008301526138bf8184612e26565b905092915050565b600060208201905081810360008301526138e081612e5f565b9050919050565b6000602082019050818103600083015261390081612ec5565b9050919050565b6000602082019050818103600083015261392081612f05565b9050919050565b6000602082019050818103600083015261394081612f45565b9050919050565b6000602082019050818103600083015261396081612fab565b9050919050565b6000602082019050818103600083015261398081612feb565b9050919050565b600060208201905081810360008301526139a081613051565b9050919050565b600060208201905081810360008301526139c0816130b7565b9050919050565b600060208201905081810360008301526139e0816130f7565b9050919050565b60006020820190508181036000830152613a0081613137565b9050919050565b60006020820190508181036000830152613a2081613177565b9050919050565b60006020820190508181036000830152613a40816131b7565b9050919050565b60006020820190508181036000830152613a608161321d565b9050919050565b60006020820190508181036000830152613a808161325d565b9050919050565b60006020820190508181036000830152613aa0816132c3565b9050919050565b60006020820190508181036000830152613ac081613303565b9050919050565b60006020820190508181036000830152613ae081613369565b9050919050565b60006020820190508181036000830152613b00816133a9565b9050919050565b60006020820190508181036000830152613b20816133e9565b9050919050565b60006020820190508181036000830152613b4081613429565b9050919050565b60006020820190508181036000830152613b6081613469565b9050919050565b60006020820190508181036000830152613b80816134cf565b9050919050565b60006020820190508181036000830152613ba081613535565b9050919050565b60006020820190508181036000830152613bc08161359b565b9050919050565b60006020820190508181036000830152613be0816135db565b9050919050565b60006020820190508181036000830152613c01818461361b565b905092915050565b60006020820190508181036000830152613c238184613658565b905092915050565b6000602082019050613c4060008301846136ff565b92915050565b6000604082019050613c5b60008301856136ff565b613c6860208301846136ff565b9392505050565b6000606082019050613c84600083018661371d565b613c916020830185612d87565b613c9e604083018461371d565b949350505050565b600060c082019050613cbb600083018961371d565b613cc8602083018861371d565b613cd56040830187612e17565b613ce26060830186612d87565b613cef60808301856136e1565b613cfc60a08301846136ff565b979650505050505050565b600060c082019050613d1c600083018961371d565b613d29602083018861371d565b613d36604083018761371d565b613d436060830186612d87565b613d5060808301856136e1565b613d5d60a08301846136ff565b979650505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613def82613e0c565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000613e5e82613e77565b9050919050565b6000613e7082613e46565b9050919050565b6000613e8282613e89565b9050919050565b6000613e9482613e0c565b9050919050565b60005b83811015613eb9578082015181840152602081019050613e9e565b83811115613ec8576000848401525b50505050565b6000819050919050565b6000613ee382613efb565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b613f1181613de4565b8114613f1c57600080fd5b50565b613f2881613df6565b8114613f3357600080fd5b50565b613f3f81613e02565b8114613f4a57600080fd5b50565b613f5681613e2c565b8114613f6157600080fd5b50565b613f6d81613e36565b8114613f7857600080fd5b50565b613f8481613e46565b8114613f8f57600080fd5b5056fea2646970667358221220be6268c55fc12db2a6d48a837359a790ca4e234bc0d1c3c7914a3dcb9598614464736f6c634300060c0033",
- "deployedBytecode": "0x6080604052600436106100ab5760003560e01c80637071396011610064578063707139601461024d578063822d82b31461027657806399da1d3c146102a1578063a31fe409146102cc578063b6694c2a14610309578063f951975a14610346576100eb565b80631a2be4da146101265780633bc0aee61461016357806342b0aefa1461018c5780634db47840146101c957806358d62e46146101f4578063600b9aa614610210576100eb565b366100eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e290613927565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011d90613927565b60405180910390fd5b34801561013257600080fd5b5061014d60048036038101906101489190612a8a565b610383565b60405161015a9190613845565b60405180910390f35b34801561016f57600080fd5b5061018a60048036038101906101859190612c06565b6103a3565b005b34801561019857600080fd5b506101b360048036038101906101ae9190612c74565b610526565b6040516101c09190613c2b565b60405180910390f35b3480156101d557600080fd5b506101de610554565b6040516101eb9190613c2b565b60405180910390f35b61020e60048036038101906102099190612bb7565b61056a565b005b34801561021c57600080fd5b5061023760048036038101906102329190612c06565b6107f0565b6040516102449190613c09565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190612ab3565b611094565b005b34801561028257600080fd5b5061028b61172a565b6040516102989190613c2b565b60405180910390f35b3480156102ad57600080fd5b506102b6611740565b6040516102c39190613786565b60405180910390f35b3480156102d857600080fd5b506102f360048036038101906102ee9190612b65565b611766565b6040516103009190613845565b60405180910390f35b34801561031557600080fd5b50610330600480360381019061032b9190612b65565b611786565b60405161033d9190613786565b60405180910390f35b34801561035257600080fd5b5061036d60048036038101906103689190612c74565b6117b9565b60405161037a9190613be7565b60405180910390f35b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156103e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e090613ba7565b60405180910390fd5b60026000819055506103f961283e565b61040383836107f0565b90506001816080015160ff16141561048b57600360009054906101000a900463ffffffff1663ffffffff16816040015163ffffffff1614610479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047090613987565b60405180910390fd5b6104868160a001516118a6565b6104e9565b6010816080015160ff1614156104ad576104a88160a00151611b87565b6104e8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104df906138e7565b60405180910390fd5b5b6001600460008360200151815260200190815260200160002060006101000a81548160ff0219169083151502179055505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b600360049054906101000a900463ffffffff1681565b600260005414156105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a790613ba7565b60405180910390fd5b6002600081905550600160149054906101000a900460ff1660ff168260ff161415610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790613a27565b60405180910390fd5b6000610629633b9aca0034611f0590919063ffffffff16565b90506000610644633b9aca0034611f5b90919063ffffffff16565b9050600081141561068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190613a87565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156106d0573d6000803e3d6000fd5b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db08334036040518263ffffffff1660e01b81526004016000604051808303818588803b15801561072f57600080fd5b505af1158015610743573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab886600160149054906101000a900460ff1660098a878a6040516107d996959493929190613ca6565b60405180910390a350506001600081905550505050565b6107f861283e565b610850600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b816000019060ff16908160ff16815250506001816000015160ff16146108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a2906139e7565b60405180910390fd5b610903600184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061200f90919063ffffffff16565b816040019063ffffffff16908163ffffffff16815250506000610974600585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b60ff16905060008160420260060190506109db8186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061200f90919063ffffffff16565b836060019063ffffffff16908163ffffffff1681525050610a508182878790500387878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061206d9092919063ffffffff16565b80519060200120836020018181525050600460008460200151815260200190815260200160002060009054906101000a900460ff1615610ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abc90613907565b60405180910390fd5b610acd612889565b60026000856040015163ffffffff1663ffffffff16815260200190815260200160002060405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610b8057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b36575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050600081600001515111610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090613bc7565b60405180910390fd5b6000816020015163ffffffff161480610c1b575042816020015163ffffffff16115b610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613b07565b60405180910390fd5b826001600a60026003600a8660000151510281610c7357fe5b040281610c7c57fe5b04011115610cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb690613ac7565b60405180910390fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905060005b84811015610fb2576000610d4e604283026006018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b90508260010b8160ff1613610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90613b47565b60405180910390fd5b8060ff1692506000610dfd604284026007018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061212f90919063ffffffff16565b90506000610e5e604285026027018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061212f90919063ffffffff16565b90506000610ebf604286026047018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b9050601b8101905086600001518460ff1681518110610eda57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660018b6020015183868660405160008152602001604052604051610f1f9493929190613860565b6020604051602081039080840390855afa158015610f41573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890613a47565b60405180910390fd5b505050508080600101915050610ce7565b5061100d6004840188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b856080019060ff16908160ff16815250506110826005840160058501898990500389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061206d9092919063ffffffff16565b8560a001819052505050505092915050565b600260005414156110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190613ba7565b60405180910390fd5b6002600081905550600160149054906101000a900460ff1660ff168360ff16141561113a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113190613a27565b60405180910390fd5b6000600160149054906101000a900460ff1690506000808873ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561119757600080fd5b505afa1580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf9190612c9d565b9050600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611395578873ffffffffffffffffffffffffffffffffffffffff16639dc29fac338a6040518363ffffffff1660e01b815260040161125e9291906137bc565b600060405180830381600087803b15801561127857600080fd5b505af115801561128c573d6000803e3d6000fd5b505050508873ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190612c9d565b92508873ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561135657600080fd5b505afa15801561136a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138e9190612b8e565b9150611677565b60008973ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113d091906137a1565b60206040518083038186803b1580156113e857600080fd5b505afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114209190612c4b565b905061144f33308b8d73ffffffffffffffffffffffffffffffffffffffff1661218d909392919063ffffffff16565b60008a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161148a91906137a1565b60206040518083038186803b1580156114a257600080fd5b505afa1580156114b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114da9190612c4b565b90506114ef828261221690919063ffffffff16565b995060098360ff1611156115735760008a905061151e6009850360ff16600a0a8c611f5b90919063ffffffff16565b9a50861561156d5761156c336115466009870360ff16600a0a84611f0590919063ffffffff16565b8e73ffffffffffffffffffffffffffffffffffffffff166122669092919063ffffffff16565b5b60099350505b67ffffffffffffffff801661161760098d73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156115c957600080fd5b505afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116019190612c9d565b0360ff16600a0a83611f5b90919063ffffffff16565b1115611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f906138c7565b60405180910390fd5b8a73ffffffffffffffffffffffffffffffffffffffff1660001b935050505b60008814156116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290613a87565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1660001b827f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab88886858c8e8c60405161170f96959493929190613d07565b60405180910390a35050506001600081905550505050505050565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117c1612889565b600260008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561187057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611826575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b60006118bc60008361200f90919063ffffffff16565b90506001600360009054906101000a900463ffffffff160163ffffffff168163ffffffff1614611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890613aa7565b60405180910390fd5b6000611937600484611fb190919063ffffffff16565b905060608160ff1667ffffffffffffffff8111801561195557600080fd5b506040519080825280602002602001820160405280156119845781602001602082028036833780820191505090505b50905060005b8260ff16811015611a075760006119b060148302600501876122ec90919063ffffffff16565b9050808383815181106119bf57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061198a565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff160217905550611a48612889565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000019080519060200190611ab49291906128a9565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff16604051611b77929190613c46565b60405180910390a1505050505050565b6000611b9d600483611fb190919063ffffffff16565b90506000611bb5600584611fb190919063ffffffff16565b90506000611bcd6032856122ec90919063ffffffff16565b90506000611be5604686611fb190919063ffffffff16565b90506000611bfd60688761235990919063ffffffff16565b90508360ff168560ff161415611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613b87565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9690613ae7565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611e0a576000611cd160478861212f90919063ffffffff16565b905060008382604051602001611ce892919061375a565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d95576000611d8360678b611fb190919063ffffffff16565b9050611d91838786846123b7565b9150505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611dd092919061381c565b600060405180830381600087803b158015611dea57600080fd5b505af1158015611dfe573d6000803e3d6000fd5b50505050505050611efd565b6000611e206053886122ec90919063ffffffff16565b905060008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6a57600080fd5b505afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea29190612c9d565b905060098160ff161115611ecf57611ecc6009820360ff16600a0a8461256090919063ffffffff16565b92505b611efa85848473ffffffffffffffffffffffffffffffffffffffff166122669092919063ffffffff16565b50505b505050505050565b6000808211611f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4090613a07565b60405180910390fd5b818381611f5257fe5b06905092915050565b6000808211611f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f96906139a7565b60405180910390fd5b818381611fa857fe5b04905092915050565b60006001820183511015611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff1906139c7565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f906139c7565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156120b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ac906139c7565b60405180910390fd5b60608215600081146120d257604051915060208201604052612123565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561211057805183526020830192506020810190506120f3565b50868552601f19601f8301166040525050505b50809150509392505050565b60006020820183511015612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216f906139c7565b60405180910390fd5b60008260208501015190508091505092915050565b612210846323b872dd60e01b8585856040516024016121ae939291906137e5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506125d0565b50505050565b60008282111561225b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225290613947565b60405180910390fd5b818303905092915050565b6122e78363a9059cbb60e01b848460405160240161228592919061381c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506125d0565b505050565b60006014820183511015612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c906139c7565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b600060208201835110156123a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612399906139c7565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152866037826000f59250508173ffffffffffffffffffffffffffffffffffffffff1663a7a2d3fb8686866040518463ffffffff1660e01b815260040161247b93929190613c6f565b600060405180830381600087803b15801561249557600080fd5b505af11580156124a9573d6000803e3d6000fd5b50505050816005600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050949350505050565b60008083141561257357600090506125ca565b600082840290508284828161258457fe5b04146125c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bc90613a67565b60405180910390fd5b809150505b92915050565b6060612632826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166126979092919063ffffffff16565b905060008151111561269257808060200190518101906126529190612b3c565b612691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268890613b67565b60405180910390fd5b5b505050565b60606126a684846000856126af565b90509392505050565b6060824710156126f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126eb90613967565b60405180910390fd5b6126fd856127c4565b61273c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273390613b27565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516127669190613743565b60006040518083038185875af1925050503d80600081146127a3576040519150601f19603f3d011682016040523d82523d6000602084013e6127a8565b606091505b50915091506127b88282866127d7565b92505050949350505050565b600080823b905060008111915050919050565b606083156127e757829050612837565b6000835111156127fa5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282e91906138a5565b60405180910390fd5b9392505050565b6040518060c00160405280600060ff16815260200160008019168152602001600063ffffffff168152602001600063ffffffff168152602001600060ff168152602001606081525090565b604051806040016040528060608152602001600063ffffffff1681525090565b828054828255906000526020600020908101928215612922579160200282015b828111156129215782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906128c9565b5b50905061292f9190612933565b5090565b5b8082111561296a57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612934565b5090565b60008135905061297d81613f08565b92915050565b60008135905061299281613f1f565b92915050565b6000815190506129a781613f1f565b92915050565b6000813590506129bc81613f36565b92915050565b6000815190506129d181613f36565b92915050565b60008083601f8401126129e957600080fd5b8235905067ffffffffffffffff811115612a0257600080fd5b602083019150836001820283011115612a1a57600080fd5b9250929050565b600081359050612a3081613f4d565b92915050565b600081519050612a4581613f4d565b92915050565b600081359050612a5a81613f64565b92915050565b600081359050612a6f81613f7b565b92915050565b600081519050612a8481613f7b565b92915050565b600060208284031215612a9c57600080fd5b6000612aaa8482850161296e565b91505092915050565b60008060008060008060c08789031215612acc57600080fd5b6000612ada89828a0161296e565b9650506020612aeb89828a01612a21565b9550506040612afc89828a016129ad565b9450506060612b0d89828a01612a60565b9350506080612b1e89828a01612a4b565b92505060a0612b2f89828a01612983565b9150509295509295509295565b600060208284031215612b4e57600080fd5b6000612b5c84828501612998565b91505092915050565b600060208284031215612b7757600080fd5b6000612b85848285016129ad565b91505092915050565b600060208284031215612ba057600080fd5b6000612bae848285016129c2565b91505092915050565b600080600060608486031215612bcc57600080fd5b6000612bda868287016129ad565b9350506020612beb86828701612a60565b9250506040612bfc86828701612a4b565b9150509250925092565b60008060208385031215612c1957600080fd5b600083013567ffffffffffffffff811115612c3357600080fd5b612c3f858286016129d7565b92509250509250929050565b600060208284031215612c5d57600080fd5b6000612c6b84828501612a36565b91505092915050565b600060208284031215612c8657600080fd5b6000612c9484828501612a4b565b91505092915050565b600060208284031215612caf57600080fd5b6000612cbd84828501612a75565b91505092915050565b6000612cd28383612ced565b60208301905092915050565b612ce781613e53565b82525050565b612cf681613de4565b82525050565b612d0581613de4565b82525050565b6000612d1682613d78565b612d208185613da6565b9350612d2b83613d68565b8060005b83811015612d5c578151612d438882612cc6565b9750612d4e83613d99565b925050600181019050612d2f565b5085935050505092915050565b612d7281613df6565b82525050565b612d8181613e02565b82525050565b612d9081613e02565b82525050565b612da7612da282613e02565b613ece565b82525050565b6000612db882613d83565b612dc28185613db7565b9350612dd2818560208601613e9b565b612ddb81613eea565b840191505092915050565b6000612df182613d83565b612dfb8185613dc8565b9350612e0b818560208601613e9b565b80840191505092915050565b612e2081613e65565b82525050565b6000612e3182613d8e565b612e3b8185613dd3565b9350612e4b818560208601613e9b565b612e5481613eea565b840191505092915050565b6000612e6c602383613dd3565b91507f6272696467652062616c616e636520776f756c6420657863656564206d61786960008301527f6d756d00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ed2601283613dd3565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000612f12601883613dd3565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612f52602c83613dd3565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b6000612fb8601e83613dd3565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612ff8602683613dd3565b91507f416464726573733a20696e73756666696369656e742062616c616e636520666f60008301527f722063616c6c00000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061305e603983613dd3565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b60006130c4601a83613dd3565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000613104601283613dd3565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000613144601883613dd3565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000613184601883613dd3565b91507f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000006000830152602082019050919050565b60006131c4602383613dd3565b91507f6d757374206e6f74207472616e7366657220746f207468652073616d6520636860008301527f61696e00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061322a601583613dd3565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061326a602183613dd3565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132d0601e83613dd3565b91507f7472756e636174656420616d6f756e74206d757374206e6f74206265203000006000830152602082019050919050565b6000613310602183613dd3565b91507f696e646578206d75737420696e63726561736520696e207374657073206f662060008301527f31000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613376600983613dd3565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b60006133b6601983613dd3565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006133f6601883613dd3565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000613436601d83613dd3565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000613476602383613dd3565b91507f7369676e617475726520696e6469636573206d75737420626520617363656e6460008301527f696e6700000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134dc602a83613dd3565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000613542602683613dd3565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135a8601f83613dd3565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006135e8601483613dd3565b91507f696e76616c696420677561726469616e207365740000000000000000000000006000830152602082019050919050565b600060408301600083015184820360008601526136388282612d0b565b915050602083015161364d60208601826136f0565b508091505092915050565b600060c083016000830151613670600086018261370e565b5060208301516136836020860182612d78565b50604083015161369660408601826136f0565b5060608301516136a960608601826136f0565b5060808301516136bc608086018261370e565b5060a083015184820360a08601526136d48282612dad565b9150508091505092915050565b6136ea81613e2c565b82525050565b6136f981613e36565b82525050565b61370881613e36565b82525050565b61371781613e46565b82525050565b61372681613e46565b82525050565b61373d61373882613e46565b613ed8565b82525050565b600061374f8284612de6565b915081905092915050565b6000613766828561372c565b6001820191506137768284612d96565b6020820191508190509392505050565b600060208201905061379b6000830184612cfc565b92915050565b60006020820190506137b66000830184612cde565b92915050565b60006040820190506137d16000830185612cde565b6137de60208301846136e1565b9392505050565b60006060820190506137fa6000830186612cfc565b6138076020830185612cfc565b61381460408301846136e1565b949350505050565b60006040820190506138316000830185612cfc565b61383e60208301846136e1565b9392505050565b600060208201905061385a6000830184612d69565b92915050565b60006080820190506138756000830187612d87565b613882602083018661371d565b61388f6040830185612d87565b61389c6060830184612d87565b95945050505050565b600060208201905081810360008301526138bf8184612e26565b905092915050565b600060208201905081810360008301526138e081612e5f565b9050919050565b6000602082019050818103600083015261390081612ec5565b9050919050565b6000602082019050818103600083015261392081612f05565b9050919050565b6000602082019050818103600083015261394081612f45565b9050919050565b6000602082019050818103600083015261396081612fab565b9050919050565b6000602082019050818103600083015261398081612feb565b9050919050565b600060208201905081810360008301526139a081613051565b9050919050565b600060208201905081810360008301526139c0816130b7565b9050919050565b600060208201905081810360008301526139e0816130f7565b9050919050565b60006020820190508181036000830152613a0081613137565b9050919050565b60006020820190508181036000830152613a2081613177565b9050919050565b60006020820190508181036000830152613a40816131b7565b9050919050565b60006020820190508181036000830152613a608161321d565b9050919050565b60006020820190508181036000830152613a808161325d565b9050919050565b60006020820190508181036000830152613aa0816132c3565b9050919050565b60006020820190508181036000830152613ac081613303565b9050919050565b60006020820190508181036000830152613ae081613369565b9050919050565b60006020820190508181036000830152613b00816133a9565b9050919050565b60006020820190508181036000830152613b20816133e9565b9050919050565b60006020820190508181036000830152613b4081613429565b9050919050565b60006020820190508181036000830152613b6081613469565b9050919050565b60006020820190508181036000830152613b80816134cf565b9050919050565b60006020820190508181036000830152613ba081613535565b9050919050565b60006020820190508181036000830152613bc08161359b565b9050919050565b60006020820190508181036000830152613be0816135db565b9050919050565b60006020820190508181036000830152613c01818461361b565b905092915050565b60006020820190508181036000830152613c238184613658565b905092915050565b6000602082019050613c4060008301846136ff565b92915050565b6000604082019050613c5b60008301856136ff565b613c6860208301846136ff565b9392505050565b6000606082019050613c84600083018661371d565b613c916020830185612d87565b613c9e604083018461371d565b949350505050565b600060c082019050613cbb600083018961371d565b613cc8602083018861371d565b613cd56040830187612e17565b613ce26060830186612d87565b613cef60808301856136e1565b613cfc60a08301846136ff565b979650505050505050565b600060c082019050613d1c600083018961371d565b613d29602083018861371d565b613d36604083018761371d565b613d436060830186612d87565b613d5060808301856136e1565b613d5d60a08301846136ff565b979650505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613def82613e0c565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000613e5e82613e77565b9050919050565b6000613e7082613e46565b9050919050565b6000613e8282613e89565b9050919050565b6000613e9482613e0c565b9050919050565b60005b83811015613eb9578082015181840152602081019050613e9e565b83811115613ec8576000848401525b50505050565b6000819050919050565b6000613ee382613efb565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b613f1181613de4565b8114613f1c57600080fd5b50565b613f2881613df6565b8114613f3357600080fd5b50565b613f3f81613e02565b8114613f4a57600080fd5b50565b613f5681613e2c565b8114613f6157600080fd5b50565b613f6d81613e36565b8114613f7857600080fd5b50565b613f8481613e46565b8114613f8f57600080fd5b5056fea2646970667358221220be6268c55fc12db2a6d48a837359a790ca4e234bc0d1c3c7914a3dcb9598614464736f6c634300060c0033",
- "immutableReferences": {},
- "sourceMap": "463:11326:1:-:0;;;793:1;776:18;;;;;;;;;;;;;;;;;;;;2106:360;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1645:1:10;1760:7;:22;;;;2256:20:1;2237:13;:16;2251:1;2237:16;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350:1;2329:18;;:22;;;;;;;;;;;;;;;;;;2385;2361:21;;:46;;;;;;;;;;;;;;;;;;2439:20;2418:18;;:41;;;;;;;;;;;;;;;;;;2106:360;;;463:11326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:134:-1:-;;89:6;83:13;74:22;;101:33;128:5;101:33;:::i;:::-;68:71;;;;:::o;164:722::-;;292:3;285:4;277:6;273:17;269:27;259:2;;310:1;307;300:12;259:2;340:6;334:13;362:80;377:64;434:6;377:64;:::i;:::-;362:80;:::i;:::-;353:89;;459:5;484:6;477:5;470:21;514:4;506:6;502:17;492:27;;536:4;531:3;527:14;520:21;;589:6;636:3;628:4;620:6;616:17;611:3;607:27;604:36;601:2;;;653:1;650;643:12;601:2;678:1;663:217;688:6;685:1;682:13;663:217;;;746:3;768:48;812:3;800:10;768:48;:::i;:::-;763:3;756:61;840:4;835:3;831:14;824:21;;868:4;863:3;859:14;852:21;;720:160;710:1;707;703:9;698:14;;663:217;;;667:14;252:634;;;;;;;:::o;928:617::-;;1056:4;1044:9;1039:3;1035:19;1031:30;1028:2;;;1074:1;1071;1064:12;1028:2;1092:20;1107:4;1092:20;:::i;:::-;1083:29;;1183:1;1172:9;1168:17;1162:24;1206:18;1198:6;1195:30;1192:2;;;1238:1;1235;1228:12;1192:2;1273:85;1354:3;1345:6;1334:9;1330:22;1273:85;:::i;:::-;1266:4;1259:5;1255:16;1248:111;1122:248;1431:2;1464:59;1519:3;1510:6;1499:9;1495:22;1464:59;:::i;:::-;1457:4;1450:5;1446:16;1439:85;1380:155;1022:523;;;;:::o;1552:132::-;;1635:6;1629:13;1620:22;;1647:32;1673:5;1647:32;:::i;:::-;1614:70;;;;:::o;1691:668::-;;;;1867:2;1855:9;1846:7;1842:23;1838:32;1835:2;;;1883:1;1880;1873:12;1835:2;1939:1;1928:9;1924:17;1918:24;1962:18;1954:6;1951:30;1948:2;;;1994:1;1991;1984:12;1948:2;2014:92;2098:7;2089:6;2078:9;2074:22;2014:92;:::i;:::-;2004:102;;1897:215;2143:2;2161:64;2217:7;2208:6;2197:9;2193:22;2161:64;:::i;:::-;2151:74;;2122:109;2262:2;2280:63;2335:7;2326:6;2315:9;2311:22;2280:63;:::i;:::-;2270:73;;2241:108;1829:530;;;;;:::o;2366:256::-;;2428:2;2422:9;2412:19;;2466:4;2458:6;2454:17;2565:6;2553:10;2550:22;2529:18;2517:10;2514:34;2511:62;2508:2;;;2586:1;2583;2576:12;2508:2;2606:10;2602:2;2595:22;2406:216;;;;:::o;2629:304::-;;2788:18;2780:6;2777:30;2774:2;;;2820:1;2817;2810:12;2774:2;2855:4;2847:6;2843:17;2835:25;;2918:4;2912;2908:15;2900:23;;2711:222;;;:::o;2940:91::-;;3002:24;3020:5;3002:24;:::i;:::-;2991:35;;2985:46;;;:::o;3038:121::-;;3111:42;3104:5;3100:54;3089:65;;3083:76;;;:::o;3166:88::-;;3238:10;3231:5;3227:22;3216:33;;3210:44;;;:::o;3261:117::-;3330:24;3348:5;3330:24;:::i;:::-;3323:5;3320:35;3310:2;;3369:1;3366;3359:12;3310:2;3304:74;:::o;3385:115::-;3453:23;3470:5;3453:23;:::i;:::-;3446:5;3443:34;3433:2;;3491:1;3488;3481:12;3433:2;3427:73;:::o;463:11326:1:-;;;;;;;",
- "deployedSourceMap": "463:11326:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11731:54;;;;;;;;;;:::i;:::-;;;;;;;;463:11326;11641:54;;;;;;;;;;:::i;:::-;;;;;;;;2053:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2600:639;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1609:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1819:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10842:764;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3445:1845;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8861:1975;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1701:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;708:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1900:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1999:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2472:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2053:46;;;;;;;;;;;;;;;;;;;;;;:::o;2600:639::-;1688:1:10;2277:7;;:19;;2269:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1688:1;2407:7;:18;;;;2683:27:1::1;;:::i;:::-;2713:22;2731:3;;2713:17;:22::i;:::-;2683:52;;2793:4;2772:10;:17;;;:25;;;2768:383;;;2854:18;;;;;;;;;;;2821:51;;:10;:29;;;:51;;;2813:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;2948:40;2969:10;:18;;;2948:20;:40::i;:::-;2768:383;;;3030:4;3009:10;:17;;;:25;;;3005:146;;;3050:31;3062:10;:18;;;3050:11;:31::i;:::-;3005:146;;;3112:28;;;;;;;;;;:::i;:::-;;;;;;;;3005:146;2768:383;3228:4;3196:12;:29;3209:10;:15;;;3196:29;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;2436:1:10;1645::::0;2580:7;:22;;;;2600:639:1;;:::o;1609:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1819:35::-;;;;;;;;;;;;;:::o;10842:764::-;1688:1:10;2277:7;;:19;;2269:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1688:1;2407:7;:18;;;;11004:8:1::1;;;;;;;;;;;10988:24;;:12;:24;;;;10980:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11063:17;11083:22;11097:7;11083:9;:13;;:22;;;;:::i;:::-;11063:42;;11115:23;11141:22;11155:7;11141:9;:13;;:22;;;;:::i;:::-;11115:48;;11200:1;11181:15;:20;;11173:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11282:10;:19;;:30;11302:9;11282:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;877:42;11356:25;;;11402:9;11390;:21;11356:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;11551:10;11543:19;;11535:28;;877:42;11512:20;;11504:29;;11461:138;11477:12;11491:8;;;;;;;;;;;11501:1;11565:9;11576:15;11593:5;11461:138;;;;;;;;;;;:::i;:::-;;;;;;;;2436:1:10;;1645::::0;2580:7;:22;;;;10842:764:1;;;:::o;3445:1845::-;3513:27;;:::i;:::-;3573:14;3585:1;3573:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;3552:10;:18;;:35;;;;;;;;;;;3627:1;3605:10;:18;;;:23;;;3597:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;3746:15;3759:1;3746:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;3714:10;:29;;:47;;;;;;;;;;;3772:19;3794:14;3806:1;3794:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;3772:36;;;;3818:11;3841;3836:2;:16;3832:1;:20;3818:34;;3920:20;3933:6;3920:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;3897:10;:20;;:43;;;;;;;;;;;4004:38;4014:6;4035;4022:3;;:10;;:19;4004:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;:::i;:::-;3994:49;;;;;;3976:10;:15;;:67;;;;;4062:12;:29;4075:10;:15;;;4062:29;;;;;;;;;;;;;;;;;;;;;4061:30;4053:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4131:31;;:::i;:::-;4165:13;:44;4179:10;:29;;;4165:44;;;;;;;;;;;;;;;4131:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4254:1;4227:12;:17;;;:24;:28;4219:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;4330:1;4298:12;:28;;;:33;;;:83;;;;4366:15;4335:12;:28;;;:46;;;4298:83;4290:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;4579:11;4574:1;4569:2;4564:1;4559;4554:2;4527:12;:17;;;:24;:29;:33;;;;;;4526:39;4525:46;;;;;;:50;:65;;4517:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;4615:16;4634:3;4615:22;;4652:6;4647:504;4668:11;4664:1;:15;4647:504;;;4700:11;4714:23;4734:2;4730:1;:6;4726:1;:10;4714:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;4700:37;;4767:10;4759:18;;:5;:18;;;4751:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;4850:5;4844:12;;4831:25;;4871:9;4883:25;4905:2;4901:1;:6;4897:1;:10;4883:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;4871:37;;4922:9;4934:26;4957:2;4953:1;:6;4948:2;:11;4934:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;4922:38;;4974:7;4984:24;5005:2;5001:1;:6;4996:2;:11;4984:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;4974:34;;5027:2;5022:7;;;;5090:12;:17;;;5108:5;5090:24;;;;;;;;;;;;;;;;5051:63;;:35;5061:10;:15;;;5078:1;5081;5084;5051:35;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;5043:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4647:504;;;;4681:3;;;;;;;4647:504;;;;5181:23;5202:1;5193:6;:10;5181:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;5161:10;:17;;:43;;;;;;;;;;;5235:48;5254:1;5245:6;:10;5280:1;5271:6;:10;5257:3;;:10;;:25;5235:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;:::i;:::-;5214:10;:18;;:69;;;;3445:1845;;;;;;;;:::o;8861:1975::-;1688:1:10;2277:7;;:19;;2269:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1688:1;2407:7;:18;;;;9091:8:1::1;;;;;;;;;;;9075:24;;:12;:24;;;;9067:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9150:17;9170:8;;;;;;;;;;;9150:28;;9188:21;9219:14:::0;9242:5:::1;9236:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9219:40;;9274:14;:21;9289:5;9274:21;;;;;;;;;;;;;;;;;;;;;;;;;9270:1317;;;9324:5;9311:24;;;9336:10;9348:6;9311:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9396:5;9383:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9369:46;;9458:5;9445:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9429:50;;9270:1317;;;9510:21;9541:5;9534:23;;;9566:4;9534:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9510:62;;9586:65;9617:10;9637:4;9644:6;9593:5;9586:30;;;;:65;;;;;;:::i;:::-;9665:20;9695:5;9688:23;;;9720:4;9688:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9665:61;;9940:31;9957:13;9940:12;:16;;:31;;;;:::i;:::-;9931:40;;10057:1;10046:8;:12;;;10042:344;;;10078:23;10104:6;10078:32;;10137:39;10173:1;10162:8;:12;10154:21;;10148:2;:27;10137:6;:10;;:39;;;;:::i;:::-;10128:48;;10199:11;10195:146;;;10234:88;10261:10;10273:48;10318:1;10307:8;:12;10299:21;;10293:2;:27;10273:15;:19;;:48;;;;:::i;:::-;10241:5;10234:26;;;;:88;;;;;:::i;:::-;10195:146;10370:1;10359:12;;10042:344;;630:26;10408:74:::0;::::1;:60;10465:1;10445:5;10439:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:27;10431:36;;10425:2;:42;10408:12;:16;;:60;;;;:::i;:::-;:74;;10400:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;10569:5;10561:14;;10553:23;;10537:39;;9270:1317;;;10654:1;10644:6;:11;;10636:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10790:10;10782:19;;10774:28;;10759:13;10706:123;10722:12;10736:11;10749:8;10804:9;10815:6;10823:5;10706:123;;;;;;;;;;;:::i;:::-;;;;;;;;2436:1:10;;;1645::::0;2580:7;:22;;;;8861:1975:1;;;;;;:::o;1701:32::-;;;;;;;;;;;;;:::o;708:33::-;;;;;;;;;;;;;:::o;1900:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;1999:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2472:122::-;2529:21;;:::i;:::-;2569:13;:18;2583:3;2569:18;;;;;;;;;;;;;;;2562:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2472:122;;;:::o;5296:916::-;5363:29;5395:16;5409:1;5395:4;:13;;:16;;;;:::i;:::-;5363:48;;5476:1;5455:18;;;;;;;;;;;:22;5429:48;;:22;:48;;;5421:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;5525:9;5537:15;5550:1;5537:4;:12;;:15;;;;:::i;:::-;5525:27;;5563:30;5610:3;5596:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5563:51;;5629:6;5624:134;5645:3;5641:7;;:1;:7;5624:134;;;5669:12;5684:26;5707:2;5703:1;:6;5699:1;:10;5684:4;:14;;:26;;;;:::i;:::-;5669:41;;5743:4;5724:13;5738:1;5724:16;;;;;;;;;;;;;:23;;;;;;;;;;;5624:134;5650:3;;;;;;;5624:134;;;;5768:29;5800:18;;;;;;;;;;;5768:50;;5849:22;5828:18;;:43;;;;;;;;;;;;;;;;;;5882:35;;:::i;:::-;5920:29;;;;;;;;5932:13;5920:29;;;;5947:1;5920:29;;;;;5882:67;;5995:16;5959:13;:33;5973:18;;;;;;;;;;;5959:33;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6103:21;;;;;;;;;;;6084:15;6077:47;6021:13;:37;6035:22;6021:37;;;;;;;;;;;;;;;:53;;;:103;;;;;;;;;;;;;;;;;;6140:65;6162:22;6186:18;;;;;;;;;;;6140:65;;;;;;;:::i;:::-;;;;;;;;5296:916;;;;;;:::o;6218:1692::-;6319:18;6340:15;6353:1;6340:4;:12;;:15;;;;:::i;:::-;6319:36;;6366:18;6387:15;6400:1;6387:4;:12;;:15;;;;:::i;:::-;6366:36;;6521:22;6546:23;6561:7;6546:4;:14;;:23;;;;:::i;:::-;6521:48;;6580:17;6600:16;6613:2;6600:4;:12;;:16;;;;:::i;:::-;6580:36;;6680:14;6697:19;6712:3;6697:4;:14;;:19;;;;:::i;:::-;6680:36;;6751:12;6735:28;;:12;:28;;;;6727:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6840:8;;;;;;;;;;;6824:24;;:12;:24;;;6816:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6908:8;;;;;;;;;;;6893:23;;:11;:23;;;6889:1015;;6932:21;6956:18;6971:2;6956:4;:14;;:18;;;;:::i;:::-;6932:42;;6988:16;7034:11;7047:13;7017:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7007:55;;;;;;6988:74;;7154:21;7178:13;:23;7192:8;7178:23;;;;;;;;;;;;;;;;;;;;;7154:47;;7244:1;7219:27;;:13;:27;;;7215:212;;;7266:20;7289:17;7302:3;7289:4;:12;;:17;;;;:::i;:::-;7266:40;;7340:72;7359:8;7369:11;7382:13;7397:14;7340:18;:72::i;:::-;7324:88;;7215:212;;7454:13;7441:32;;;7474:14;7490:6;7441:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6889:1015;;;;;;7528:21;7552:23;7567:7;7552:4;:14;;:23;;;;:::i;:::-;7528:47;;7590:14;7613:13;7607:29;;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7590:48;;7738:1;7727:8;:12;;;7723:99;;;7768:39;7804:1;7793:8;:12;7785:21;;7779:2;:27;7768:6;:10;;:39;;;;:::i;:::-;7759:48;;7723:99;7835:58;7870:14;7886:6;7842:13;7835:34;;;;:58;;;;;:::i;:::-;6889:1015;;;6218:1692;;;;;;:::o;4820:148:4:-;4878:7;4909:1;4905;:5;4897:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;4960:1;4956;:5;;;;;;4949:12;;4820:148;;;;:::o;4217:150::-;4275:7;4306:1;4302;:5;4294:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;4359:1;4355;:5;;;;;;4348:12;;4217:150;;;;:::o;11710:302:0:-;11787:5;11839:1;11830:6;:10;11812:6;:13;:29;;11804:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11874:14;11962:6;11956:3;11948:6;11944:16;11940:29;11934:36;11922:48;;11997:8;11990:15;;;11710:302;;;;:::o;12329:305::-;12407:6;12460:1;12451:6;:10;12433:6;:13;:29;;12425:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12495:15;12584:6;12578:3;12570:6;12566:16;12562:29;12556:36;12544:48;;12619:8;12612:15;;;12329:305;;;;:::o;8865:2480::-;8999:12;9062:7;9053:6;:16;9035:6;:13;:35;;9027:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9104:22;9174:7;9167:15;9200:1;9195:1895;;;;11231:4;11225:11;11212:24;;11282:4;11271:9;11267:20;11261:4;11254:34;9160:2142;;9195:1895;9369:4;9363:11;9350:24;;9996:2;9987:7;9983:16;10362:9;10355:17;10349:4;10345:28;10333:9;10322;10318:25;10314:60;10410:7;10406:2;10402:16;10654:6;10640:9;10633:17;10627:4;10623:28;10611:9;10603:6;10599:22;10595:57;10591:70;10436:417;10687:3;10683:2;10680:11;10436:417;;;10831:2;10825:9;10821:2;10814:21;10728:4;10724:2;10720:13;10714:19;;10768:4;10764:2;10760:13;10754:19;;10436:417;;;10440:239;10889:7;10878:9;10871:26;11071:2;11067:7;11062:2;11058;11054:11;11050:25;11044:4;11037:39;9202:1888;;;9160:2142;;11329:9;11322:16;;;8865:2480;;;;;:::o;13895:319::-;13974:7;14028:2;14019:6;:11;14001:6;:13;:30;;13993:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;14064:19;14161:6;14154:4;14146:6;14142:17;14138:30;14132:37;14117:52;;14196:11;14189:18;;;13895:319;;;;:::o;885:203:7:-;985:96;1005:5;1035:27;;;1064:4;1070:2;1074:5;1012:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;985:19;:96::i;:::-;885:203;;;;:::o;3136:155:4:-;3194:7;3226:1;3221;:6;;3213:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;3283:1;3279;:5;3272:12;;3136:155;;;;:::o;704:175:7:-;786:86;806:5;836:23;;;861:2;865:5;813:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;786:19;:86::i;:::-;704:175;;;:::o;11351:353:0:-;11430:7;11484:2;11475:6;:11;11457:6;:13;:30;;11449:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11520:19;11631:27;11621:6;11614:4;11606:6;11602:17;11598:30;11592:37;11588:71;11573:86;;11686:11;11679:18;;;11351:353;;;;:::o;13579:310::-;13658:7;13712:2;13703:6;:11;13685:6;:13;:30;;13677:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13748:16;13839:6;13832:4;13824:6;13820:17;13816:30;13810:37;13798:49;;13874:8;13867:15;;;13579:310;;;;:::o;7916:939:1:-;8033:13;8225:19;8255:18;;;;;;;;;;;8247:27;;8225:49;;8326:4;8320:11;8358:66;8351:5;8344:81;8463:11;8456:4;8449:5;8445:16;8438:37;8513:66;8506:4;8499:5;8495:16;8488:92;8626:4;8620;8613:5;8610:1;8602:29;8593:38;;8293:348;8692:5;8679:30;;;8710:11;8723:13;8738:8;8679:68;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8805:5;8783:13;:19;8797:4;8783:19;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;8844:4;8820:14;:21;8835:5;8820:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;7916:939;;;;;;;:::o;3538:215:4:-;3596:7;3624:1;3619;:6;3615:20;;;3634:1;3627:8;;;;3615:20;3645:9;3661:1;3657;:5;3645:17;;3689:1;3684;3680;:5;;;;;;:10;3672:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3745:1;3738:8;;;3538:215;;;;;:::o;2967:751:7:-;3386:23;3412:69;3440:4;3412:69;;;;;;;;;;;;;;;;;3420:5;3412:27;;;;:69;;;;;:::i;:::-;3386:95;;3515:1;3495:10;:17;:21;3491:221;;;3635:10;3624:30;;;;;;;;;;;;:::i;:::-;3616:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3491:221;2967:751;;;:::o;3581:193:8:-;3684:12;3715:52;3737:6;3745:4;3751:1;3754:12;3715:21;:52::i;:::-;3708:59;;3581:193;;;;;:::o;4608:523::-;4735:12;4792:5;4767:21;:30;;4759:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;4858:18;4869:6;4858:10;:18::i;:::-;4850:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;4981:12;4995:23;5022:6;:11;;5042:5;5050:4;5022:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4980:75;;;;5072:52;5090:7;5099:10;5111:12;5072:17;:52::i;:::-;5065:59;;;;4608:523;;;;;;:::o;726:413::-;786:4;989:12;1098:7;1086:20;1078:28;;1131:1;1124:4;:8;1117:15;;;726:413;;;:::o;7091:725::-;7206:12;7234:7;7230:580;;;7264:10;7257:17;;;;7230:580;7395:1;7375:10;:17;:21;7371:429;;;7633:10;7627:17;7693:15;7680:10;7676:2;7672:19;7665:44;7582:145;7772:12;7765:20;;;;;;;;;;;:::i;:::-;;;;;;;;7091:725;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:124::-;;219:6;206:20;197:29;;231:30;255:5;231:30;:::i;:::-;191:75;;;;:::o;273:128::-;;354:6;348:13;339:22;;366:30;390:5;366:30;:::i;:::-;333:68;;;;:::o;408:130::-;;488:6;475:20;466:29;;500:33;527:5;500:33;:::i;:::-;460:78;;;;:::o;545:134::-;;629:6;623:13;614:22;;641:33;668:5;641:33;:::i;:::-;608:71;;;;:::o;700:336::-;;;814:3;807:4;799:6;795:17;791:27;781:2;;832:1;829;822:12;781:2;865:6;852:20;842:30;;892:18;884:6;881:30;878:2;;;924:1;921;914:12;878:2;958:4;950:6;946:17;934:29;;1009:3;1001:4;993:6;989:17;979:8;975:32;972:41;969:2;;;1026:1;1023;1016:12;969:2;774:262;;;;;:::o;1044:130::-;;1124:6;1111:20;1102:29;;1136:33;1163:5;1136:33;:::i;:::-;1096:78;;;;:::o;1181:134::-;;1265:6;1259:13;1250:22;;1277:33;1304:5;1277:33;:::i;:::-;1244:71;;;;:::o;1322:128::-;;1401:6;1388:20;1379:29;;1413:32;1439:5;1413:32;:::i;:::-;1373:77;;;;:::o;1457:126::-;;1535:6;1522:20;1513:29;;1547:31;1572:5;1547:31;:::i;:::-;1507:76;;;;:::o;1590:130::-;;1672:6;1666:13;1657:22;;1684:31;1709:5;1684:31;:::i;:::-;1651:69;;;;:::o;1727:241::-;;1831:2;1819:9;1810:7;1806:23;1802:32;1799:2;;;1847:1;1844;1837:12;1799:2;1882:1;1899:53;1944:7;1935:6;1924:9;1920:22;1899:53;:::i;:::-;1889:63;;1861:97;1793:175;;;;:::o;1975:857::-;;;;;;;2158:3;2146:9;2137:7;2133:23;2129:33;2126:2;;;2175:1;2172;2165:12;2126:2;2210:1;2227:53;2272:7;2263:6;2252:9;2248:22;2227:53;:::i;:::-;2217:63;;2189:97;2317:2;2335:53;2380:7;2371:6;2360:9;2356:22;2335:53;:::i;:::-;2325:63;;2296:98;2425:2;2443:53;2488:7;2479:6;2468:9;2464:22;2443:53;:::i;:::-;2433:63;;2404:98;2533:2;2551:51;2594:7;2585:6;2574:9;2570:22;2551:51;:::i;:::-;2541:61;;2512:96;2639:3;2658:52;2702:7;2693:6;2682:9;2678:22;2658:52;:::i;:::-;2648:62;;2618:98;2747:3;2766:50;2808:7;2799:6;2788:9;2784:22;2766:50;:::i;:::-;2756:60;;2726:96;2120:712;;;;;;;;:::o;2839:257::-;;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2967:1;2964;2957:12;2919:2;3002:1;3019:61;3072:7;3063:6;3052:9;3048:22;3019:61;:::i;:::-;3009:71;;2981:105;2913:183;;;;:::o;3103:241::-;;3207:2;3195:9;3186:7;3182:23;3178:32;3175:2;;;3223:1;3220;3213:12;3175:2;3258:1;3275:53;3320:7;3311:6;3300:9;3296:22;3275:53;:::i;:::-;3265:63;;3237:97;3169:175;;;;:::o;3351:263::-;;3466:2;3454:9;3445:7;3441:23;3437:32;3434:2;;;3482:1;3479;3472:12;3434:2;3517:1;3534:64;3590:7;3581:6;3570:9;3566:22;3534:64;:::i;:::-;3524:74;;3496:108;3428:186;;;;:::o;3621:485::-;;;;3756:2;3744:9;3735:7;3731:23;3727:32;3724:2;;;3772:1;3769;3762:12;3724:2;3807:1;3824:53;3869:7;3860:6;3849:9;3845:22;3824:53;:::i;:::-;3814:63;;3786:97;3914:2;3932:51;3975:7;3966:6;3955:9;3951:22;3932:51;:::i;:::-;3922:61;;3893:96;4020:2;4038:52;4082:7;4073:6;4062:9;4058:22;4038:52;:::i;:::-;4028:62;;3999:97;3718:388;;;;;:::o;4113:365::-;;;4236:2;4224:9;4215:7;4211:23;4207:32;4204:2;;;4252:1;4249;4242:12;4204:2;4315:1;4304:9;4300:17;4287:31;4338:18;4330:6;4327:30;4324:2;;;4370:1;4367;4360:12;4324:2;4398:64;4454:7;4445:6;4434:9;4430:22;4398:64;:::i;:::-;4380:82;;;;4266:202;4198:280;;;;;:::o;4485:263::-;;4600:2;4588:9;4579:7;4575:23;4571:32;4568:2;;;4616:1;4613;4606:12;4568:2;4651:1;4668:64;4724:7;4715:6;4704:9;4700:22;4668:64;:::i;:::-;4658:74;;4630:108;4562:186;;;;:::o;4755:239::-;;4858:2;4846:9;4837:7;4833:23;4829:32;4826:2;;;4874:1;4871;4864:12;4826:2;4909:1;4926:52;4970:7;4961:6;4950:9;4946:22;4926:52;:::i;:::-;4916:62;;4888:96;4820:174;;;;:::o;5001:259::-;;5114:2;5102:9;5093:7;5089:23;5085:32;5082:2;;;5130:1;5127;5120:12;5082:2;5165:1;5182:62;5236:7;5227:6;5216:9;5212:22;5182:62;:::i;:::-;5172:72;;5144:106;5076:184;;;;:::o;5268:173::-;;5355:46;5397:3;5389:6;5355:46;:::i;:::-;5430:4;5425:3;5421:14;5407:28;;5348:93;;;;:::o;5449:142::-;5540:45;5579:5;5540:45;:::i;:::-;5535:3;5528:58;5522:69;;:::o;5598:103::-;5671:24;5689:5;5671:24;:::i;:::-;5666:3;5659:37;5653:48;;:::o;5708:113::-;5791:24;5809:5;5791:24;:::i;:::-;5786:3;5779:37;5773:48;;:::o;5859:670::-;;5994:54;6042:5;5994:54;:::i;:::-;6061:76;6130:6;6125:3;6061:76;:::i;:::-;6054:83;;6158:56;6208:5;6158:56;:::i;:::-;6234:7;6262:1;6247:260;6272:6;6269:1;6266:13;6247:260;;;6339:6;6333:13;6360:63;6419:3;6404:13;6360:63;:::i;:::-;6353:70;;6440:60;6493:6;6440:60;:::i;:::-;6430:70;;6304:203;6294:1;6291;6287:9;6282:14;;6247:260;;;6251:14;6520:3;6513:10;;5973:556;;;;;;;:::o;6537:104::-;6614:21;6629:5;6614:21;:::i;:::-;6609:3;6602:34;6596:45;;:::o;6648:103::-;6721:24;6739:5;6721:24;:::i;:::-;6716:3;6709:37;6703:48;;:::o;6758:113::-;6841:24;6859:5;6841:24;:::i;:::-;6836:3;6829:37;6823:48;;:::o;6878:152::-;6979:45;6999:24;7017:5;6999:24;:::i;:::-;6979:45;:::i;:::-;6974:3;6967:58;6961:69;;:::o;7037:323::-;;7137:38;7169:5;7137:38;:::i;:::-;7187:60;7240:6;7235:3;7187:60;:::i;:::-;7180:67;;7252:52;7297:6;7292:3;7285:4;7278:5;7274:16;7252:52;:::i;:::-;7325:29;7347:6;7325:29;:::i;:::-;7320:3;7316:39;7309:46;;7117:243;;;;;:::o;7367:356::-;;7495:38;7527:5;7495:38;:::i;:::-;7545:88;7626:6;7621:3;7545:88;:::i;:::-;7538:95;;7638:52;7683:6;7678:3;7671:4;7664:5;7660:16;7638:52;:::i;:::-;7711:6;7706:3;7702:16;7695:23;;7475:248;;;;;:::o;7730:138::-;7819:43;7856:5;7819:43;:::i;:::-;7814:3;7807:56;7801:67;;:::o;7875:347::-;;7987:39;8020:5;7987:39;:::i;:::-;8038:71;8102:6;8097:3;8038:71;:::i;:::-;8031:78;;8114:52;8159:6;8154:3;8147:4;8140:5;8136:16;8114:52;:::i;:::-;8187:29;8209:6;8187:29;:::i;:::-;8182:3;8178:39;8171:46;;7967:255;;;;;:::o;8230:372::-;;8390:67;8454:2;8449:3;8390:67;:::i;:::-;8383:74;;8490:34;8486:1;8481:3;8477:11;8470:55;8559:5;8554:2;8549:3;8545:12;8538:27;8593:2;8588:3;8584:12;8577:19;;8376:226;;;:::o;8611:318::-;;8771:67;8835:2;8830:3;8771:67;:::i;:::-;8764:74;;8871:20;8867:1;8862:3;8858:11;8851:41;8920:2;8915:3;8911:12;8904:19;;8757:172;;;:::o;8938:324::-;;9098:67;9162:2;9157:3;9098:67;:::i;:::-;9091:74;;9198:26;9194:1;9189:3;9185:11;9178:47;9253:2;9248:3;9244:12;9237:19;;9084:178;;;:::o;9271:381::-;;9431:67;9495:2;9490:3;9431:67;:::i;:::-;9424:74;;9531:34;9527:1;9522:3;9518:11;9511:55;9600:14;9595:2;9590:3;9586:12;9579:36;9643:2;9638:3;9634:12;9627:19;;9417:235;;;:::o;9661:330::-;;9821:67;9885:2;9880:3;9821:67;:::i;:::-;9814:74;;9921:32;9917:1;9912:3;9908:11;9901:53;9982:2;9977:3;9973:12;9966:19;;9807:184;;;:::o;10000:375::-;;10160:67;10224:2;10219:3;10160:67;:::i;:::-;10153:74;;10260:34;10256:1;10251:3;10247:11;10240:55;10329:8;10324:2;10319:3;10315:12;10308:30;10366:2;10361:3;10357:12;10350:19;;10146:229;;;:::o;10384:394::-;;10544:67;10608:2;10603:3;10544:67;:::i;:::-;10537:74;;10644:34;10640:1;10635:3;10631:11;10624:55;10713:27;10708:2;10703:3;10699:12;10692:49;10769:2;10764:3;10760:12;10753:19;;10530:248;;;:::o;10787:326::-;;10947:67;11011:2;11006:3;10947:67;:::i;:::-;10940:74;;11047:28;11043:1;11038:3;11034:11;11027:49;11104:2;11099:3;11095:12;11088:19;;10933:180;;;:::o;11122:318::-;;11282:67;11346:2;11341:3;11282:67;:::i;:::-;11275:74;;11382:20;11378:1;11373:3;11369:11;11362:41;11431:2;11426:3;11422:12;11415:19;;11268:172;;;:::o;11449:324::-;;11609:67;11673:2;11668:3;11609:67;:::i;:::-;11602:74;;11709:26;11705:1;11700:3;11696:11;11689:47;11764:2;11759:3;11755:12;11748:19;;11595:178;;;:::o;11782:324::-;;11942:67;12006:2;12001:3;11942:67;:::i;:::-;11935:74;;12042:26;12038:1;12033:3;12029:11;12022:47;12097:2;12092:3;12088:12;12081:19;;11928:178;;;:::o;12115:372::-;;12275:67;12339:2;12334:3;12275:67;:::i;:::-;12268:74;;12375:34;12371:1;12366:3;12362:11;12355:55;12444:5;12439:2;12434:3;12430:12;12423:27;12478:2;12473:3;12469:12;12462:19;;12261:226;;;:::o;12496:321::-;;12656:67;12720:2;12715:3;12656:67;:::i;:::-;12649:74;;12756:23;12752:1;12747:3;12743:11;12736:44;12808:2;12803:3;12799:12;12792:19;;12642:175;;;:::o;12826:370::-;;12986:67;13050:2;13045:3;12986:67;:::i;:::-;12979:74;;13086:34;13082:1;13077:3;13073:11;13066:55;13155:3;13150:2;13145:3;13141:12;13134:25;13187:2;13182:3;13178:12;13171:19;;12972:224;;;:::o;13205:330::-;;13365:67;13429:2;13424:3;13365:67;:::i;:::-;13358:74;;13465:32;13461:1;13456:3;13452:11;13445:53;13526:2;13521:3;13517:12;13510:19;;13351:184;;;:::o;13544:370::-;;13704:67;13768:2;13763:3;13704:67;:::i;:::-;13697:74;;13804:34;13800:1;13795:3;13791:11;13784:55;13873:3;13868:2;13863:3;13859:12;13852:25;13905:2;13900:3;13896:12;13889:19;;13690:224;;;:::o;13923:308::-;;14083:66;14147:1;14142:3;14083:66;:::i;:::-;14076:73;;14182:11;14178:1;14173:3;14169:11;14162:32;14222:2;14217:3;14213:12;14206:19;;14069:162;;;:::o;14240:325::-;;14400:67;14464:2;14459:3;14400:67;:::i;:::-;14393:74;;14500:27;14496:1;14491:3;14487:11;14480:48;14556:2;14551:3;14547:12;14540:19;;14386:179;;;:::o;14574:324::-;;14734:67;14798:2;14793:3;14734:67;:::i;:::-;14727:74;;14834:26;14830:1;14825:3;14821:11;14814:47;14889:2;14884:3;14880:12;14873:19;;14720:178;;;:::o;14907:329::-;;15067:67;15131:2;15126:3;15067:67;:::i;:::-;15060:74;;15167:31;15163:1;15158:3;15154:11;15147:52;15227:2;15222:3;15218:12;15211:19;;15053:183;;;:::o;15245:372::-;;15405:67;15469:2;15464:3;15405:67;:::i;:::-;15398:74;;15505:34;15501:1;15496:3;15492:11;15485:55;15574:5;15569:2;15564:3;15560:12;15553:27;15608:2;15603:3;15599:12;15592:19;;15391:226;;;:::o;15626:379::-;;15786:67;15850:2;15845:3;15786:67;:::i;:::-;15779:74;;15886:34;15882:1;15877:3;15873:11;15866:55;15955:12;15950:2;15945:3;15941:12;15934:34;15996:2;15991:3;15987:12;15980:19;;15772:233;;;:::o;16014:375::-;;16174:67;16238:2;16233:3;16174:67;:::i;:::-;16167:74;;16274:34;16270:1;16265:3;16261:11;16254:55;16343:8;16338:2;16333:3;16329:12;16322:30;16380:2;16375:3;16371:12;16364:19;;16160:229;;;:::o;16398:331::-;;16558:67;16622:2;16617:3;16558:67;:::i;:::-;16551:74;;16658:33;16654:1;16649:3;16645:11;16638:54;16720:2;16715:3;16711:12;16704:19;;16544:185;;;:::o;16738:320::-;;16898:67;16962:2;16957:3;16898:67;:::i;:::-;16891:74;;16998:22;16994:1;16989:3;16985:11;16978:43;17049:2;17044:3;17040:12;17033:19;;16884:174;;;:::o;17131:616::-;;17288:4;17283:3;17279:14;17371:4;17364:5;17360:16;17354:23;17423:3;17417:4;17413:14;17406:4;17401:3;17397:14;17390:38;17443:103;17541:4;17527:12;17443:103;:::i;:::-;17435:111;;17308:250;17642:4;17635:5;17631:16;17625:23;17654:61;17709:4;17704:3;17700:14;17686:12;17654:61;:::i;:::-;17568:153;17738:4;17731:11;;17261:486;;;;;:::o;17815:1202::-;;17968:4;17963:3;17959:14;18054:4;18047:5;18043:16;18037:23;18066:59;18119:4;18114:3;18110:14;18096:12;18066:59;:::i;:::-;17988:143;18204:4;18197:5;18193:16;18187:23;18216:63;18273:4;18268:3;18264:14;18250:12;18216:63;:::i;:::-;18141:144;18372:4;18365:5;18361:16;18355:23;18384:61;18439:4;18434:3;18430:14;18416:12;18384:61;:::i;:::-;18295:156;18529:4;18522:5;18518:16;18512:23;18541:61;18596:4;18591:3;18587:14;18573:12;18541:61;:::i;:::-;18461:147;18683:4;18676:5;18672:16;18666:23;18695:59;18748:4;18743:3;18739:14;18725:12;18695:59;:::i;:::-;18618:142;18836:4;18829:5;18825:16;18819:23;18888:3;18882:4;18878:14;18871:4;18866:3;18862:14;18855:38;18908:71;18974:4;18960:12;18908:71;:::i;:::-;18900:79;;18770:221;19008:4;19001:11;;17941:1076;;;;;:::o;19024:113::-;19107:24;19125:5;19107:24;:::i;:::-;19102:3;19095:37;19089:48;;:::o;19144:100::-;19215:23;19232:5;19215:23;:::i;:::-;19210:3;19203:36;19197:47;;:::o;19251:110::-;19332:23;19349:5;19332:23;:::i;:::-;19327:3;19320:36;19314:47;;:::o;19368:97::-;19437:22;19453:5;19437:22;:::i;:::-;19432:3;19425:35;19419:46;;:::o;19472:107::-;19551:22;19567:5;19551:22;:::i;:::-;19546:3;19539:35;19533:46;;:::o;19586:144::-;19683:41;19701:22;19717:5;19701:22;:::i;:::-;19683:41;:::i;:::-;19678:3;19671:54;19665:65;;:::o;19737:271::-;;19890:93;19979:3;19970:6;19890:93;:::i;:::-;19883:100;;20000:3;19993:10;;19871:137;;;;:::o;20015:383::-;;20167:71;20234:3;20225:6;20167:71;:::i;:::-;20260:1;20255:3;20251:11;20244:18;;20273:75;20344:3;20335:6;20273:75;:::i;:::-;20370:2;20365:3;20361:12;20354:19;;20390:3;20383:10;;20155:243;;;;;:::o;20405:222::-;;20532:2;20521:9;20517:18;20509:26;;20546:71;20614:1;20603:9;20599:17;20590:6;20546:71;:::i;:::-;20503:124;;;;:::o;20634:238::-;;20769:2;20758:9;20754:18;20746:26;;20783:79;20859:1;20848:9;20844:17;20835:6;20783:79;:::i;:::-;20740:132;;;;:::o;20879:349::-;;21042:2;21031:9;21027:18;21019:26;;21056:79;21132:1;21121:9;21117:17;21108:6;21056:79;:::i;:::-;21146:72;21214:2;21203:9;21199:18;21190:6;21146:72;:::i;:::-;21013:215;;;;;:::o;21235:444::-;;21418:2;21407:9;21403:18;21395:26;;21432:71;21500:1;21489:9;21485:17;21476:6;21432:71;:::i;:::-;21514:72;21582:2;21571:9;21567:18;21558:6;21514:72;:::i;:::-;21597;21665:2;21654:9;21650:18;21641:6;21597:72;:::i;:::-;21389:290;;;;;;:::o;21686:333::-;;21841:2;21830:9;21826:18;21818:26;;21855:71;21923:1;21912:9;21908:17;21899:6;21855:71;:::i;:::-;21937:72;22005:2;21994:9;21990:18;21981:6;21937:72;:::i;:::-;21812:207;;;;;:::o;22026:210::-;;22147:2;22136:9;22132:18;22124:26;;22161:65;22223:1;22212:9;22208:17;22199:6;22161:65;:::i;:::-;22118:118;;;;:::o;22243:548::-;;22450:3;22439:9;22435:19;22427:27;;22465:71;22533:1;22522:9;22518:17;22509:6;22465:71;:::i;:::-;22547:68;22611:2;22600:9;22596:18;22587:6;22547:68;:::i;:::-;22626:72;22694:2;22683:9;22679:18;22670:6;22626:72;:::i;:::-;22709;22777:2;22766:9;22762:18;22753:6;22709:72;:::i;:::-;22421:370;;;;;;;:::o;22798:310::-;;22945:2;22934:9;22930:18;22922:26;;22995:9;22989:4;22985:20;22981:1;22970:9;22966:17;22959:47;23020:78;23093:4;23084:6;23020:78;:::i;:::-;23012:86;;22916:192;;;;:::o;23115:416::-;;23315:2;23304:9;23300:18;23292:26;;23365:9;23359:4;23355:20;23351:1;23340:9;23336:17;23329:47;23390:131;23516:4;23390:131;:::i;:::-;23382:139;;23286:245;;;:::o;23538:416::-;;23738:2;23727:9;23723:18;23715:26;;23788:9;23782:4;23778:20;23774:1;23763:9;23759:17;23752:47;23813:131;23939:4;23813:131;:::i;:::-;23805:139;;23709:245;;;:::o;23961:416::-;;24161:2;24150:9;24146:18;24138:26;;24211:9;24205:4;24201:20;24197:1;24186:9;24182:17;24175:47;24236:131;24362:4;24236:131;:::i;:::-;24228:139;;24132:245;;;:::o;24384:416::-;;24584:2;24573:9;24569:18;24561:26;;24634:9;24628:4;24624:20;24620:1;24609:9;24605:17;24598:47;24659:131;24785:4;24659:131;:::i;:::-;24651:139;;24555:245;;;:::o;24807:416::-;;25007:2;24996:9;24992:18;24984:26;;25057:9;25051:4;25047:20;25043:1;25032:9;25028:17;25021:47;25082:131;25208:4;25082:131;:::i;:::-;25074:139;;24978:245;;;:::o;25230:416::-;;25430:2;25419:9;25415:18;25407:26;;25480:9;25474:4;25470:20;25466:1;25455:9;25451:17;25444:47;25505:131;25631:4;25505:131;:::i;:::-;25497:139;;25401:245;;;:::o;25653:416::-;;25853:2;25842:9;25838:18;25830:26;;25903:9;25897:4;25893:20;25889:1;25878:9;25874:17;25867:47;25928:131;26054:4;25928:131;:::i;:::-;25920:139;;25824:245;;;:::o;26076:416::-;;26276:2;26265:9;26261:18;26253:26;;26326:9;26320:4;26316:20;26312:1;26301:9;26297:17;26290:47;26351:131;26477:4;26351:131;:::i;:::-;26343:139;;26247:245;;;:::o;26499:416::-;;26699:2;26688:9;26684:18;26676:26;;26749:9;26743:4;26739:20;26735:1;26724:9;26720:17;26713:47;26774:131;26900:4;26774:131;:::i;:::-;26766:139;;26670:245;;;:::o;26922:416::-;;27122:2;27111:9;27107:18;27099:26;;27172:9;27166:4;27162:20;27158:1;27147:9;27143:17;27136:47;27197:131;27323:4;27197:131;:::i;:::-;27189:139;;27093:245;;;:::o;27345:416::-;;27545:2;27534:9;27530:18;27522:26;;27595:9;27589:4;27585:20;27581:1;27570:9;27566:17;27559:47;27620:131;27746:4;27620:131;:::i;:::-;27612:139;;27516:245;;;:::o;27768:416::-;;27968:2;27957:9;27953:18;27945:26;;28018:9;28012:4;28008:20;28004:1;27993:9;27989:17;27982:47;28043:131;28169:4;28043:131;:::i;:::-;28035:139;;27939:245;;;:::o;28191:416::-;;28391:2;28380:9;28376:18;28368:26;;28441:9;28435:4;28431:20;28427:1;28416:9;28412:17;28405:47;28466:131;28592:4;28466:131;:::i;:::-;28458:139;;28362:245;;;:::o;28614:416::-;;28814:2;28803:9;28799:18;28791:26;;28864:9;28858:4;28854:20;28850:1;28839:9;28835:17;28828:47;28889:131;29015:4;28889:131;:::i;:::-;28881:139;;28785:245;;;:::o;29037:416::-;;29237:2;29226:9;29222:18;29214:26;;29287:9;29281:4;29277:20;29273:1;29262:9;29258:17;29251:47;29312:131;29438:4;29312:131;:::i;:::-;29304:139;;29208:245;;;:::o;29460:416::-;;29660:2;29649:9;29645:18;29637:26;;29710:9;29704:4;29700:20;29696:1;29685:9;29681:17;29674:47;29735:131;29861:4;29735:131;:::i;:::-;29727:139;;29631:245;;;:::o;29883:416::-;;30083:2;30072:9;30068:18;30060:26;;30133:9;30127:4;30123:20;30119:1;30108:9;30104:17;30097:47;30158:131;30284:4;30158:131;:::i;:::-;30150:139;;30054:245;;;:::o;30306:416::-;;30506:2;30495:9;30491:18;30483:26;;30556:9;30550:4;30546:20;30542:1;30531:9;30527:17;30520:47;30581:131;30707:4;30581:131;:::i;:::-;30573:139;;30477:245;;;:::o;30729:416::-;;30929:2;30918:9;30914:18;30906:26;;30979:9;30973:4;30969:20;30965:1;30954:9;30950:17;30943:47;31004:131;31130:4;31004:131;:::i;:::-;30996:139;;30900:245;;;:::o;31152:416::-;;31352:2;31341:9;31337:18;31329:26;;31402:9;31396:4;31392:20;31388:1;31377:9;31373:17;31366:47;31427:131;31553:4;31427:131;:::i;:::-;31419:139;;31323:245;;;:::o;31575:416::-;;31775:2;31764:9;31760:18;31752:26;;31825:9;31819:4;31815:20;31811:1;31800:9;31796:17;31789:47;31850:131;31976:4;31850:131;:::i;:::-;31842:139;;31746:245;;;:::o;31998:416::-;;32198:2;32187:9;32183:18;32175:26;;32248:9;32242:4;32238:20;32234:1;32223:9;32219:17;32212:47;32273:131;32399:4;32273:131;:::i;:::-;32265:139;;32169:245;;;:::o;32421:416::-;;32621:2;32610:9;32606:18;32598:26;;32671:9;32665:4;32661:20;32657:1;32646:9;32642:17;32635:47;32696:131;32822:4;32696:131;:::i;:::-;32688:139;;32592:245;;;:::o;32844:416::-;;33044:2;33033:9;33029:18;33021:26;;33094:9;33088:4;33084:20;33080:1;33069:9;33065:17;33058:47;33119:131;33245:4;33119:131;:::i;:::-;33111:139;;33015:245;;;:::o;33267:416::-;;33467:2;33456:9;33452:18;33444:26;;33517:9;33511:4;33507:20;33503:1;33492:9;33488:17;33481:47;33542:131;33668:4;33542:131;:::i;:::-;33534:139;;33438:245;;;:::o;33690:382::-;;33873:2;33862:9;33858:18;33850:26;;33923:9;33917:4;33913:20;33909:1;33898:9;33894:17;33887:47;33948:114;34057:4;34048:6;33948:114;:::i;:::-;33940:122;;33844:228;;;;:::o;34079:374::-;;34258:2;34247:9;34243:18;34235:26;;34308:9;34302:4;34298:20;34294:1;34283:9;34279:17;34272:47;34333:110;34438:4;34429:6;34333:110;:::i;:::-;34325:118;;34229:224;;;;:::o;34460:218::-;;34585:2;34574:9;34570:18;34562:26;;34599:69;34665:1;34654:9;34650:17;34641:6;34599:69;:::i;:::-;34556:122;;;;:::o;34685:325::-;;34836:2;34825:9;34821:18;34813:26;;34850:69;34916:1;34905:9;34901:17;34892:6;34850:69;:::i;:::-;34930:70;34996:2;34985:9;34981:18;34972:6;34930:70;:::i;:::-;34807:203;;;;;:::o;35017:428::-;;35192:2;35181:9;35177:18;35169:26;;35206:67;35270:1;35259:9;35255:17;35246:6;35206:67;:::i;:::-;35284:72;35352:2;35341:9;35337:18;35328:6;35284:72;:::i;:::-;35367:68;35431:2;35420:9;35416:18;35407:6;35367:68;:::i;:::-;35163:282;;;;;;:::o;35452:772::-;;35715:3;35704:9;35700:19;35692:27;;35730:67;35794:1;35783:9;35779:17;35770:6;35730:67;:::i;:::-;35808:68;35872:2;35861:9;35857:18;35848:6;35808:68;:::i;:::-;35887:78;35961:2;35950:9;35946:18;35937:6;35887:78;:::i;:::-;35976:72;36044:2;36033:9;36029:18;36020:6;35976:72;:::i;:::-;36059:73;36127:3;36116:9;36112:19;36103:6;36059:73;:::i;:::-;36143:71;36209:3;36198:9;36194:19;36185:6;36143:71;:::i;:::-;35686:538;;;;;;;;;:::o;36231:752::-;;36484:3;36473:9;36469:19;36461:27;;36499:67;36563:1;36552:9;36548:17;36539:6;36499:67;:::i;:::-;36577:68;36641:2;36630:9;36626:18;36617:6;36577:68;:::i;:::-;36656;36720:2;36709:9;36705:18;36696:6;36656:68;:::i;:::-;36735:72;36803:2;36792:9;36788:18;36779:6;36735:72;:::i;:::-;36818:73;36886:3;36875:9;36871:19;36862:6;36818:73;:::i;:::-;36902:71;36968:3;36957:9;36953:19;36944:6;36902:71;:::i;:::-;36455:528;;;;;;;;;:::o;36990:151::-;;37076:3;37068:11;;37114:4;37109:3;37105:14;37097:22;;37062:79;;;:::o;37148:137::-;;37257:5;37251:12;37241:22;;37222:63;;;:::o;37292:121::-;;37385:5;37379:12;37369:22;;37350:63;;;:::o;37420:122::-;;37514:5;37508:12;37498:22;;37479:63;;;:::o;37549:108::-;;37647:4;37642:3;37638:14;37630:22;;37624:33;;;:::o;37665:168::-;;37785:6;37780:3;37773:19;37822:4;37817:3;37813:14;37798:29;;37766:67;;;;:::o;37842:152::-;;37946:6;37941:3;37934:19;37983:4;37978:3;37974:14;37959:29;;37927:67;;;;:::o;38003:144::-;;38138:3;38123:18;;38116:31;;;;:::o;38156:163::-;;38271:6;38266:3;38259:19;38308:4;38303:3;38299:14;38284:29;;38252:67;;;;:::o;38327:91::-;;38389:24;38407:5;38389:24;:::i;:::-;38378:35;;38372:46;;;:::o;38425:85::-;;38498:5;38491:13;38484:21;38473:32;;38467:43;;;:::o;38517:72::-;;38579:5;38568:16;;38562:27;;;:::o;38596:121::-;;38669:42;38662:5;38658:54;38647:65;;38641:76;;;:::o;38724:72::-;;38786:5;38775:16;;38769:27;;;:::o;38803:88::-;;38875:10;38868:5;38864:22;38853:33;;38847:44;;;:::o;38898:81::-;;38969:4;38962:5;38958:16;38947:27;;38941:38;;;:::o;38986:129::-;;39073:37;39104:5;39073:37;:::i;:::-;39060:50;;39054:61;;;:::o;39122:112::-;;39207:22;39223:5;39207:22;:::i;:::-;39194:35;;39188:46;;;:::o;39241:121::-;;39320:37;39351:5;39320:37;:::i;:::-;39307:50;;39301:61;;;:::o;39369:108::-;;39448:24;39466:5;39448:24;:::i;:::-;39435:37;;39429:48;;;:::o;39485:268::-;39550:1;39557:101;39571:6;39568:1;39565:13;39557:101;;;39647:1;39642:3;39638:11;39632:18;39628:1;39623:3;39619:11;39612:39;39593:2;39590:1;39586:10;39581:15;;39557:101;;;39673:6;39670:1;39667:13;39664:2;;;39738:1;39729:6;39724:3;39720:16;39713:27;39664:2;39534:219;;;;:::o;39761:74::-;;39825:5;39814:16;;39808:27;;;:::o;39842:88::-;;39904:21;39919:5;39904:21;:::i;:::-;39893:32;;39887:43;;;:::o;39937:97::-;;40025:2;40021:7;40016:2;40009:5;40005:14;40001:28;39991:38;;39985:49;;;:::o;40042:96::-;;40122:5;40117:3;40113:15;40091:37;;40085:53;;;:::o;40146:117::-;40215:24;40233:5;40215:24;:::i;:::-;40208:5;40205:35;40195:2;;40254:1;40251;40244:12;40195:2;40189:74;:::o;40270:111::-;40336:21;40351:5;40336:21;:::i;:::-;40329:5;40326:32;40316:2;;40372:1;40369;40362:12;40316:2;40310:71;:::o;40388:117::-;40457:24;40475:5;40457:24;:::i;:::-;40450:5;40447:35;40437:2;;40496:1;40493;40486:12;40437:2;40431:74;:::o;40512:117::-;40581:24;40599:5;40581:24;:::i;:::-;40574:5;40571:35;40561:2;;40620:1;40617;40610:12;40561:2;40555:74;:::o;40636:115::-;40704:23;40721:5;40704:23;:::i;:::-;40697:5;40694:34;40684:2;;40742:1;40739;40732:12;40684:2;40678:73;:::o;40758:113::-;40825:22;40841:5;40825:22;:::i;:::-;40818:5;40815:33;40805:2;;40862:1;40859;40852:12;40805:2;40799:72;:::o",
- "source": "// contracts/Wormhole.sol\n// SPDX-License-Identifier: Apache 2\n\npragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\nimport \"./BytesLib.sol\";\nimport \"./WrappedAsset.sol\";\n\ncontract Wormhole is ReentrancyGuard {\n using SafeERC20 for IERC20;\n using BytesLib for bytes;\n using SafeMath for uint256;\n\n uint64 constant MAX_UINT64 = 18_446_744_073_709_551_615;\n\n // Address of the Wrapped asset template\n address public wrappedAssetMaster;\n\n // Chain ID of Ethereum\n uint8 CHAIN_ID = 2;\n\n // Address of the official WETH contract\n address constant WETHAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n\n struct GuardianSet {\n address[] keys;\n uint32 expiration_time;\n }\n\n event LogGuardianSetChanged(\n uint32 oldGuardianIndex,\n uint32 newGuardianIndex\n );\n\n event LogTokensLocked(\n uint8 target_chain,\n uint8 token_chain,\n uint8 token_decimals,\n bytes32 indexed token,\n bytes32 indexed sender,\n bytes32 recipient,\n uint256 amount,\n uint32 nonce\n );\n\n struct ParsedVAA {\n uint8 version;\n bytes32 hash;\n uint32 guardian_set_index;\n uint32 timestamp;\n uint8 action;\n bytes payload;\n }\n\n // Mapping of guardian_set_index => guardian set\n mapping(uint32 => GuardianSet) public guardian_sets;\n // Current active guardian set\n uint32 public guardian_set_index;\n\n // Period for which a guardian set stays active after it has been replaced\n uint32 public guardian_set_expirity;\n\n // Mapping of already consumedVAAs\n mapping(bytes32 => bool) public consumedVAAs;\n\n // Mapping of wrapped asset ERC20 contracts\n mapping(bytes32 => address) public wrappedAssets;\n mapping(address => bool) public isWrappedAsset;\n\n constructor(GuardianSet memory initial_guardian_set, address wrapped_asset_master, uint32 _guardian_set_expirity) public {\n guardian_sets[0] = initial_guardian_set;\n // Explicitly set for doc purposes\n guardian_set_index = 0;\n guardian_set_expirity = _guardian_set_expirity;\n\n wrappedAssetMaster = wrapped_asset_master;\n }\n\n function getGuardianSet(uint32 idx) view public returns (GuardianSet memory gs) {\n return guardian_sets[idx];\n }\n\n function submitVAA(\n bytes calldata vaa\n ) public nonReentrant {\n ParsedVAA memory parsed_vaa = parseAndVerifyVAA(vaa);\n // Process VAA\n if (parsed_vaa.action == 0x01) {\n require(parsed_vaa.guardian_set_index == guardian_set_index, \"only the current guardian set can change the guardian set\");\n vaaUpdateGuardianSet(parsed_vaa.payload);\n } else if (parsed_vaa.action == 0x10) {\n vaaTransfer(parsed_vaa.payload);\n } else {\n revert(\"invalid VAA action\");\n }\n\n // Set the VAA as consumed\n consumedVAAs[parsed_vaa.hash] = true;\n }\n\n // parseAndVerifyVAA parses raw VAA data into a struct and verifies whether it contains sufficient signatures of an\n // active guardian set i.e. is valid according to Wormhole consensus rules.\n function parseAndVerifyVAA(bytes calldata vaa) public view returns (ParsedVAA memory parsed_vaa) {\n parsed_vaa.version = vaa.toUint8(0);\n require(parsed_vaa.version == 1, \"VAA version incompatible\");\n\n // Load 4 bytes starting from index 1\n parsed_vaa.guardian_set_index = vaa.toUint32(1);\n\n uint256 len_signers = vaa.toUint8(5);\n uint offset = 6 + 66 * len_signers;\n\n // Load 4 bytes timestamp\n parsed_vaa.timestamp = vaa.toUint32(offset);\n\n // Hash the body\n parsed_vaa.hash = keccak256(vaa.slice(offset, vaa.length - offset));\n require(!consumedVAAs[parsed_vaa.hash], \"VAA was already executed\");\n\n GuardianSet memory guardian_set = guardian_sets[parsed_vaa.guardian_set_index];\n require(guardian_set.keys.length > 0, \"invalid guardian set\");\n require(guardian_set.expiration_time == 0 || guardian_set.expiration_time > block.timestamp, \"guardian set has expired\");\n // We're using a fixed point number transformation with 1 decimal to deal with rounding.\n require(((guardian_set.keys.length * 10 / 3) * 2) / 10 + 1 <= len_signers, \"no quorum\");\n\n int16 last_index = - 1;\n for (uint i = 0; i < len_signers; i++) {\n uint8 index = vaa.toUint8(6 + i * 66);\n require(index > last_index, \"signature indices must be ascending\");\n last_index = int16(index);\n\n bytes32 r = vaa.toBytes32(7 + i * 66);\n bytes32 s = vaa.toBytes32(39 + i * 66);\n uint8 v = vaa.toUint8(71 + i * 66);\n v += 27;\n require(ecrecover(parsed_vaa.hash, v, r, s) == guardian_set.keys[index], \"VAA signature invalid\");\n }\n\n parsed_vaa.action = vaa.toUint8(offset + 4);\n parsed_vaa.payload = vaa.slice(offset + 5, vaa.length - (offset + 5));\n }\n\n function vaaUpdateGuardianSet(bytes memory data) private {\n uint32 new_guardian_set_index = data.toUint32(0);\n require(new_guardian_set_index == guardian_set_index + 1, \"index must increase in steps of 1\");\n uint8 len = data.toUint8(4);\n\n address[] memory new_guardians = new address[](len);\n for (uint i = 0; i < len; i++) {\n address addr = data.toAddress(5 + i * 20);\n new_guardians[i] = addr;\n }\n\n uint32 old_guardian_set_index = guardian_set_index;\n guardian_set_index = new_guardian_set_index;\n\n GuardianSet memory new_guardian_set = GuardianSet(new_guardians, 0);\n guardian_sets[guardian_set_index] = new_guardian_set;\n guardian_sets[old_guardian_set_index].expiration_time = uint32(block.timestamp) + guardian_set_expirity;\n\n emit LogGuardianSetChanged(old_guardian_set_index, guardian_set_index);\n }\n\n function vaaTransfer(bytes memory data) private {\n //uint32 nonce = data.toUint64(0);\n uint8 source_chain = data.toUint8(4);\n\n uint8 target_chain = data.toUint8(5);\n //bytes32 source_address = data.toBytes32(6);\n //bytes32 target_address = data.toBytes32(38);\n address target_address = data.toAddress(38 + 12);\n\n uint8 token_chain = data.toUint8(70);\n //bytes32 token_address = data.toBytes32(71);\n uint256 amount = data.toUint256(104);\n\n require(source_chain != target_chain, \"same chain transfers are not supported\");\n require(target_chain == CHAIN_ID, \"transfer must be incoming\");\n\n if (token_chain != CHAIN_ID) {\n bytes32 token_address = data.toBytes32(71);\n bytes32 asset_id = keccak256(abi.encodePacked(token_chain, token_address));\n\n // if yes: mint to address\n // if no: create and mint\n address wrapped_asset = wrappedAssets[asset_id];\n if (wrapped_asset == address(0)) {\n uint8 asset_decimals = data.toUint8(103);\n wrapped_asset = deployWrappedAsset(asset_id, token_chain, token_address, asset_decimals);\n }\n\n WrappedAsset(wrapped_asset).mint(target_address, amount);\n } else {\n address token_address = data.toAddress(71 + 12);\n\n uint8 decimals = ERC20(token_address).decimals();\n\n // Readjust decimals if they've previously been truncated\n if (decimals > 9) {\n amount = amount.mul(10 ** uint256(decimals - 9));\n }\n IERC20(token_address).safeTransfer(target_address, amount);\n }\n }\n\n function deployWrappedAsset(bytes32 seed, uint8 token_chain, bytes32 token_address, uint8 decimals) private returns (address asset){\n // Taken from https://github.com/OpenZeppelin/openzeppelin-sdk/blob/master/packages/lib/contracts/upgradeability/ProxyFactory.sol\n // Licensed under MIT\n bytes20 targetBytes = bytes20(wrappedAssetMaster);\n assembly {\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)\n asset := create2(0, clone, 0x37, seed)\n }\n\n // Call initializer\n WrappedAsset(asset).initialize(token_chain, token_address, decimals);\n\n // Store address\n wrappedAssets[seed] = asset;\n isWrappedAsset[asset] = true;\n }\n\n function lockAssets(\n address asset,\n uint256 amount,\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce,\n bool refund_dust\n ) public nonReentrant {\n require(target_chain != CHAIN_ID, \"must not transfer to the same chain\");\n\n uint8 asset_chain = CHAIN_ID;\n bytes32 asset_address;\n uint8 decimals = ERC20(asset).decimals();\n\n if (isWrappedAsset[asset]) {\n WrappedAsset(asset).burn(msg.sender, amount);\n asset_chain = WrappedAsset(asset).assetChain();\n asset_address = WrappedAsset(asset).assetAddress();\n } else {\n uint256 balanceBefore = IERC20(asset).balanceOf(address(this));\n IERC20(asset).safeTransferFrom(msg.sender, address(this), amount);\n uint256 balanceAfter = IERC20(asset).balanceOf(address(this));\n\n // The amount that was transferred in is the delta between balance before and after the transfer.\n // This is to properly handle tokens that charge a fee on transfer.\n amount = balanceAfter.sub(balanceBefore);\n\n // Decimal adjust amount - we keep the dust\n if (decimals > 9) {\n uint256 original_amount = amount;\n amount = amount.div(10 ** uint256(decimals - 9));\n\n if (refund_dust) {\n IERC20(asset).safeTransfer(msg.sender, original_amount.mod(10 ** uint256(decimals - 9)));\n }\n\n decimals = 9;\n }\n\n require(balanceAfter.div(10 ** uint256(ERC20(asset).decimals() - 9)) <= MAX_UINT64, \"bridge balance would exceed maximum\");\n\n asset_address = bytes32(uint256(asset));\n }\n\n // Check here after truncation\n require(amount != 0, \"truncated amount must not be 0\");\n\n emit LogTokensLocked(target_chain, asset_chain, decimals, asset_address, bytes32(uint256(msg.sender)), recipient, amount, nonce);\n }\n\n function lockETH(\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce\n ) public payable nonReentrant {\n require(target_chain != CHAIN_ID, \"must not transfer to the same chain\");\n\n uint256 remainder = msg.value.mod(10 ** 9);\n uint256 transfer_amount = msg.value.div(10 ** 9);\n require(transfer_amount != 0, \"truncated amount must not be 0\");\n\n // Transfer back remainder\n msg.sender.transfer(remainder);\n\n // Wrap tx value in WETH\n WETH(WETHAddress).deposit{value : msg.value - remainder}();\n\n // Log deposit of WETH\n emit LogTokensLocked(target_chain, CHAIN_ID, 9, bytes32(uint256(WETHAddress)), bytes32(uint256(msg.sender)), recipient, transfer_amount, nonce);\n }\n\n fallback() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\n\n receive() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\n}\n\n\ninterface WETH is IERC20 {\n function deposit() external payable;\n\n function withdraw(uint256 amount) external;\n}\n",
- "sourcePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol",
- "ast": {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol",
- "exportedSymbols": {
- "WETH": [1431],
- "Wormhole": [1420]
- },
- "id": 1432,
- "license": "Apache 2",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 335,
- "literals": ["solidity", "^", "0.6", ".0"],
- "nodeType": "PragmaDirective",
- "src": "64:23:1"
- },
- {
- "id": 336,
- "literals": ["experimental", "ABIEncoderV2"],
- "nodeType": "PragmaDirective",
- "src": "88:33:1"
- },
- {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "id": 337,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 3009,
- "src": "123:55:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "id": 338,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 3087,
- "src": "179:56:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "id": 339,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 3300,
- "src": "236:59:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "@openzeppelin/contracts/math/SafeMath.sol",
- "id": 340,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 2506,
- "src": "296:51:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "id": 341,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 3659,
- "src": "348:59:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol",
- "file": "./BytesLib.sol",
- "id": 342,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 334,
- "src": "408:24:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
- "file": "./WrappedAsset.sol",
- "id": 343,
- "nodeType": "ImportDirective",
- "scope": 1432,
- "sourceUnit": 2148,
- "src": "433:28:1",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "abstract": false,
- "baseContracts": [
- {
- "arguments": null,
- "baseName": {
- "contractScope": null,
- "id": 344,
- "name": "ReentrancyGuard",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3658,
- "src": "484:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_ReentrancyGuard_$3658",
- "typeString": "contract ReentrancyGuard"
- }
- },
- "id": 345,
- "nodeType": "InheritanceSpecifier",
- "src": "484:15:1"
- }
- ],
- "contractDependencies": [3658],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "id": 1420,
- "linearizedBaseContracts": [1420, 3658],
- "name": "Wormhole",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "id": 348,
- "libraryName": {
- "contractScope": null,
- "id": 346,
- "name": "SafeERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3299,
- "src": "512:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeERC20_$3299",
- "typeString": "library SafeERC20"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "506:27:1",
- "typeName": {
- "contractScope": null,
- "id": 347,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "526:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- }
- },
- {
- "id": 351,
- "libraryName": {
- "contractScope": null,
- "id": 349,
- "name": "BytesLib",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 333,
- "src": "544:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_BytesLib_$333",
- "typeString": "library BytesLib"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "538:25:1",
- "typeName": {
- "id": 350,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "557:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- }
- },
- {
- "id": 354,
- "libraryName": {
- "contractScope": null,
- "id": 352,
- "name": "SafeMath",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 2505,
- "src": "574:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeMath_$2505",
- "typeString": "library SafeMath"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "568:27:1",
- "typeName": {
- "id": 353,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "587:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- {
- "constant": true,
- "id": 357,
- "mutability": "constant",
- "name": "MAX_UINT64",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "601:55:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- },
- "typeName": {
- "id": 355,
- "name": "uint64",
- "nodeType": "ElementaryTypeName",
- "src": "601:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- }
- },
- "value": {
- "argumentTypes": null,
- "hexValue": "31385f3434365f3734345f3037335f3730395f3535315f363135",
- "id": 356,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "630:26:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_18446744073709551615_by_1",
- "typeString": "int_const 18446744073709551615"
- },
- "value": "18_446_744_073_709_551_615"
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "functionSelector": "99da1d3c",
- "id": 359,
- "mutability": "mutable",
- "name": "wrappedAssetMaster",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "708:33:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 358,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "708:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "id": 362,
- "mutability": "mutable",
- "name": "CHAIN_ID",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "776:18:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 360,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "776:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 361,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "793:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "visibility": "internal"
- },
- {
- "constant": true,
- "id": 365,
- "mutability": "constant",
- "name": "WETHAddress",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "846:73:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 363,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "846:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": {
- "argumentTypes": null,
- "hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332",
- "id": 364,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "877:42:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- "value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
- },
- "visibility": "internal"
- },
- {
- "canonicalName": "Wormhole.GuardianSet",
- "id": 371,
- "members": [
- {
- "constant": false,
- "id": 368,
- "mutability": "mutable",
- "name": "keys",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 371,
- "src": "955:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
- "typeString": "address[]"
- },
- "typeName": {
- "baseType": {
- "id": 366,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "955:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 367,
- "length": null,
- "nodeType": "ArrayTypeName",
- "src": "955:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
- "typeString": "address[]"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 370,
- "mutability": "mutable",
- "name": "expiration_time",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 371,
- "src": "979:22:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 369,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "979:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "name": "GuardianSet",
- "nodeType": "StructDefinition",
- "scope": 1420,
- "src": "926:82:1",
- "visibility": "public"
- },
- {
- "anonymous": false,
- "documentation": null,
- "id": 377,
- "name": "LogGuardianSetChanged",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 376,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 373,
- "indexed": false,
- "mutability": "mutable",
- "name": "oldGuardianIndex",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 377,
- "src": "1051:23:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 372,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1051:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 375,
- "indexed": false,
- "mutability": "mutable",
- "name": "newGuardianIndex",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 377,
- "src": "1084:23:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 374,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1084:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1041:72:1"
- },
- "src": "1014:100:1"
- },
- {
- "anonymous": false,
- "documentation": null,
- "id": 395,
- "name": "LogTokensLocked",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 394,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 379,
- "indexed": false,
- "mutability": "mutable",
- "name": "target_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1151:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 378,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1151:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 381,
- "indexed": false,
- "mutability": "mutable",
- "name": "token_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1179:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 380,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1179:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 383,
- "indexed": false,
- "mutability": "mutable",
- "name": "token_decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1206:20:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 382,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1206:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 385,
- "indexed": true,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1236:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 384,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1236:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 387,
- "indexed": true,
- "mutability": "mutable",
- "name": "sender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1267:22:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 386,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1267:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 389,
- "indexed": false,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1299:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 388,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1299:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 391,
- "indexed": false,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1326:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 390,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1326:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 393,
- "indexed": false,
- "mutability": "mutable",
- "name": "nonce",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 395,
- "src": "1350:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 392,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1350:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1141:227:1"
- },
- "src": "1120:249:1"
- },
- {
- "canonicalName": "Wormhole.ParsedVAA",
- "id": 408,
- "members": [
- {
- "constant": false,
- "id": 397,
- "mutability": "mutable",
- "name": "version",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1402:13:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 396,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1402:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 399,
- "mutability": "mutable",
- "name": "hash",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1425:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 398,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1425:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 401,
- "mutability": "mutable",
- "name": "guardian_set_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1447:25:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 400,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1447:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 403,
- "mutability": "mutable",
- "name": "timestamp",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1482:16:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 402,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1482:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 405,
- "mutability": "mutable",
- "name": "action",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1508:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 404,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1508:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 407,
- "mutability": "mutable",
- "name": "payload",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 408,
- "src": "1530:13:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 406,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "1530:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "name": "ParsedVAA",
- "nodeType": "StructDefinition",
- "scope": 1420,
- "src": "1375:175:1",
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "42b0aefa",
- "id": 412,
- "mutability": "mutable",
- "name": "guardian_sets",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1609:51:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)"
- },
- "typeName": {
- "id": 411,
- "keyType": {
- "id": 409,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1617:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Mapping",
- "src": "1609:30:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)"
- },
- "valueType": {
- "contractScope": null,
- "id": 410,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "1627:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "822d82b3",
- "id": 414,
- "mutability": "mutable",
- "name": "guardian_set_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1701:32:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 413,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1701:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "4db47840",
- "id": 416,
- "mutability": "mutable",
- "name": "guardian_set_expirity",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1819:35:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 415,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "1819:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "a31fe409",
- "id": 420,
- "mutability": "mutable",
- "name": "consumedVAAs",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1900:44:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- },
- "typeName": {
- "id": 419,
- "keyType": {
- "id": 417,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1908:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Mapping",
- "src": "1900:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- },
- "valueType": {
- "id": 418,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "1919:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "b6694c2a",
- "id": 424,
- "mutability": "mutable",
- "name": "wrappedAssets",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "1999:48:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- },
- "typeName": {
- "id": 423,
- "keyType": {
- "id": 421,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "2007:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Mapping",
- "src": "1999:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- },
- "valueType": {
- "id": 422,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2018:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "1a2be4da",
- "id": 428,
- "mutability": "mutable",
- "name": "isWrappedAsset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1420,
- "src": "2053:46:1",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
- "typeString": "mapping(address => bool)"
- },
- "typeName": {
- "id": 427,
- "keyType": {
- "id": 425,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2061:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Mapping",
- "src": "2053:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
- "typeString": "mapping(address => bool)"
- },
- "valueType": {
- "id": 426,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "2072:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "body": {
- "id": 455,
- "nodeType": "Block",
- "src": "2227:239:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 441,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 437,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "2237:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 439,
- "indexExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 438,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2251:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "2237:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 440,
- "name": "initial_guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 430,
- "src": "2256:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "src": "2237:39:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "id": 442,
- "nodeType": "ExpressionStatement",
- "src": "2237:39:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 445,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 443,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "2329:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 444,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2350:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2329:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 446,
- "nodeType": "ExpressionStatement",
- "src": "2329:22:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 449,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 447,
- "name": "guardian_set_expirity",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 416,
- "src": "2361:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 448,
- "name": "_guardian_set_expirity",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 434,
- "src": "2385:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "2361:46:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 450,
- "nodeType": "ExpressionStatement",
- "src": "2361:46:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 453,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 451,
- "name": "wrappedAssetMaster",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 359,
- "src": "2418:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 452,
- "name": "wrapped_asset_master",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 432,
- "src": "2439:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "2418:41:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 454,
- "nodeType": "ExpressionStatement",
- "src": "2418:41:1"
- }
- ]
- },
- "documentation": null,
- "id": 456,
- "implemented": true,
- "kind": "constructor",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 435,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 430,
- "mutability": "mutable",
- "name": "initial_guardian_set",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 456,
- "src": "2118:39:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- },
- "typeName": {
- "contractScope": null,
- "id": 429,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "2118:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 432,
- "mutability": "mutable",
- "name": "wrapped_asset_master",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 456,
- "src": "2159:28:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 431,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2159:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 434,
- "mutability": "mutable",
- "name": "_guardian_set_expirity",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 456,
- "src": "2189:29:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 433,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "2189:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2117:102:1"
- },
- "returnParameters": {
- "id": 436,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2227:0:1"
- },
- "scope": 1420,
- "src": "2106:360:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 467,
- "nodeType": "Block",
- "src": "2552:42:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 463,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "2569:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 465,
- "indexExpression": {
- "argumentTypes": null,
- "id": 464,
- "name": "idx",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 458,
- "src": "2583:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2569:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "functionReturnParameters": 462,
- "id": 466,
- "nodeType": "Return",
- "src": "2562:25:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "f951975a",
- "id": 468,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getGuardianSet",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 459,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 458,
- "mutability": "mutable",
- "name": "idx",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 468,
- "src": "2496:10:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 457,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "2496:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2495:12:1"
- },
- "returnParameters": {
- "id": 462,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 461,
- "mutability": "mutable",
- "name": "gs",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 468,
- "src": "2529:21:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- },
- "typeName": {
- "contractScope": null,
- "id": 460,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "2529:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2528:23:1"
- },
- "scope": 1420,
- "src": "2472:122:1",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 523,
- "nodeType": "Block",
- "src": "2673:566:1",
- "statements": [
- {
- "assignments": [476],
- "declarations": [
- {
- "constant": false,
- "id": 476,
- "mutability": "mutable",
- "name": "parsed_vaa",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 523,
- "src": "2683:27:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA"
- },
- "typeName": {
- "contractScope": null,
- "id": 475,
- "name": "ParsedVAA",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 408,
- "src": "2683:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_storage_ptr",
- "typeString": "struct Wormhole.ParsedVAA"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 480,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 478,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 470,
- "src": "2731:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- ],
- "id": 477,
- "name": "parseAndVerifyVAA",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 781,
- "src": "2713:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_struct$_ParsedVAA_$408_memory_ptr_$",
- "typeString": "function (bytes calldata) view returns (struct Wormhole.ParsedVAA memory)"
- }
- },
- "id": 479,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2713:22:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2683:52:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 484,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 481,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "2772:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 482,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "action",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 405,
- "src": "2772:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30783031",
- "id": 483,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2793:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "0x01"
- },
- "src": "2772:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 502,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 499,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "3009:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 500,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "action",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 405,
- "src": "3009:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30783130",
- "id": 501,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3030:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_16_by_1",
- "typeString": "int_const 16"
- },
- "value": "0x10"
- },
- "src": "3009:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "id": 513,
- "nodeType": "Block",
- "src": "3098:53:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "696e76616c69642056414120616374696f6e",
- "id": 510,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3119:20:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
- "typeString": "literal_string \"invalid VAA action\""
- },
- "value": "invalid VAA action"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
- "typeString": "literal_string \"invalid VAA action\""
- }
- ],
- "id": 509,
- "name": "revert",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "src": "3112:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (string memory) pure"
- }
- },
- "id": 511,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3112:28:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 512,
- "nodeType": "ExpressionStatement",
- "src": "3112:28:1"
- }
- ]
- },
- "id": 514,
- "nodeType": "IfStatement",
- "src": "3005:146:1",
- "trueBody": {
- "id": 508,
- "nodeType": "Block",
- "src": "3036:56:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 504,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "3062:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 505,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "payload",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 407,
- "src": "3062:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 503,
- "name": "vaaTransfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1051,
- "src": "3050:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
- "typeString": "function (bytes memory)"
- }
- },
- "id": 506,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3050:31:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 507,
- "nodeType": "ExpressionStatement",
- "src": "3050:31:1"
- }
- ]
- }
- },
- "id": 515,
- "nodeType": "IfStatement",
- "src": "2768:383:1",
- "trueBody": {
- "id": 498,
- "nodeType": "Block",
- "src": "2799:200:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 489,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 486,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "2821:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 487,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "guardian_set_index",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 401,
- "src": "2821:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "id": 488,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "2854:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "2821:51:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574",
- "id": 490,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2874:59:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
- "typeString": "literal_string \"only the current guardian set can change the guardian set\""
- },
- "value": "only the current guardian set can change the guardian set"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
- "typeString": "literal_string \"only the current guardian set can change the guardian set\""
- }
- ],
- "id": 485,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "2813:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 491,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2813:121:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 492,
- "nodeType": "ExpressionStatement",
- "src": "2813:121:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 494,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "2969:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 495,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "payload",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 407,
- "src": "2969:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 493,
- "name": "vaaUpdateGuardianSet",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 889,
- "src": "2948:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
- "typeString": "function (bytes memory)"
- }
- },
- "id": 496,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2948:40:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 497,
- "nodeType": "ExpressionStatement",
- "src": "2948:40:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 521,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 516,
- "name": "consumedVAAs",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 420,
- "src": "3196:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- }
- },
- "id": 519,
- "indexExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 517,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 476,
- "src": "3209:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 518,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "hash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 399,
- "src": "3209:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "3196:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 520,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3228:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "src": "3196:36:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 522,
- "nodeType": "ExpressionStatement",
- "src": "3196:36:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "3bc0aee6",
- "id": 524,
- "implemented": true,
- "kind": "function",
- "modifiers": [
- {
- "arguments": null,
- "id": 473,
- "modifierName": {
- "argumentTypes": null,
- "id": 472,
- "name": "nonReentrant",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3657,
- "src": "2660:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_modifier$__$",
- "typeString": "modifier ()"
- }
- },
- "nodeType": "ModifierInvocation",
- "src": "2660:12:1"
- }
- ],
- "name": "submitVAA",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 471,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 470,
- "mutability": "mutable",
- "name": "vaa",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 524,
- "src": "2628:18:1",
- "stateVariable": false,
- "storageLocation": "calldata",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 469,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "2628:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2618:34:1"
- },
- "returnParameters": {
- "id": 474,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2673:0:1"
- },
- "scope": 1420,
- "src": "2600:639:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 780,
- "nodeType": "Block",
- "src": "3542:1748:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 538,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 531,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3552:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 533,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "version",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 397,
- "src": "3552:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 536,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3585:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 534,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "3573:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 535,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "3573:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 537,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3573:14:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "3552:35:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 539,
- "nodeType": "ExpressionStatement",
- "src": "3552:35:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 544,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 541,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3605:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 542,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "version",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 397,
- "src": "3605:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 543,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3627:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "src": "3605:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "5641412076657273696f6e20696e636f6d70617469626c65",
- "id": 545,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3630:26:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
- "typeString": "literal_string \"VAA version incompatible\""
- },
- "value": "VAA version incompatible"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
- "typeString": "literal_string \"VAA version incompatible\""
- }
- ],
- "id": 540,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "3597:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 546,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3597:60:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 547,
- "nodeType": "ExpressionStatement",
- "src": "3597:60:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 555,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 548,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3714:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 550,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "guardian_set_index",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 401,
- "src": "3714:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 553,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3759:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 551,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "3746:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 552,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 163,
- "src": "3746:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint32)"
- }
- },
- "id": 554,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3746:15:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "3714:47:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 556,
- "nodeType": "ExpressionStatement",
- "src": "3714:47:1"
- },
- {
- "assignments": [558],
- "declarations": [
- {
- "constant": false,
- "id": 558,
- "mutability": "mutable",
- "name": "len_signers",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 780,
- "src": "3772:19:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 557,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3772:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 563,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 561,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3806:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 559,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "3794:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 560,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "3794:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 562,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3794:14:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "3772:36:1"
- },
- {
- "assignments": [565],
- "declarations": [
- {
- "constant": false,
- "id": 565,
- "mutability": "mutable",
- "name": "offset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 780,
- "src": "3818:11:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 564,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "3818:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 571,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 570,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "36",
- "id": 566,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3832:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_6_by_1",
- "typeString": "int_const 6"
- },
- "value": "6"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 569,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 567,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3836:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "id": 568,
- "name": "len_signers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 558,
- "src": "3841:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3836:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3832:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "3818:34:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 579,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 572,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3897:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 574,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "timestamp",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 403,
- "src": "3897:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 577,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "3933:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 575,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "3920:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 576,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 163,
- "src": "3920:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint32)"
- }
- },
- "id": 578,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3920:20:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "3897:43:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 580,
- "nodeType": "ExpressionStatement",
- "src": "3897:43:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 594,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 581,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "3976:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 583,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "hash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 399,
- "src": "3976:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 587,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "4014:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 591,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 588,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4022:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 589,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "4022:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 590,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "4035:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4022:19:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 585,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4004:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 586,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "slice",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 55,
- "src": "4004:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
- }
- },
- "id": 592,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4004:38:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 584,
- "name": "keccak256",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -8,
- "src": "3994:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
- "typeString": "function (bytes memory) pure returns (bytes32)"
- }
- },
- "id": 593,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3994:49:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "3976:67:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 595,
- "nodeType": "ExpressionStatement",
- "src": "3976:67:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 601,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "!",
- "prefix": true,
- "src": "4061:30:1",
- "subExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 597,
- "name": "consumedVAAs",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 420,
- "src": "4062:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- }
- },
- "id": 600,
- "indexExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 598,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "4075:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 599,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "hash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 399,
- "src": "4075:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4062:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "5641412077617320616c7265616479206578656375746564",
- "id": 602,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4093:26:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
- "typeString": "literal_string \"VAA was already executed\""
- },
- "value": "VAA was already executed"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
- "typeString": "literal_string \"VAA was already executed\""
- }
- ],
- "id": 596,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4053:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 603,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4053:67:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 604,
- "nodeType": "ExpressionStatement",
- "src": "4053:67:1"
- },
- {
- "assignments": [606],
- "declarations": [
- {
- "constant": false,
- "id": 606,
- "mutability": "mutable",
- "name": "guardian_set",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 780,
- "src": "4131:31:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- },
- "typeName": {
- "contractScope": null,
- "id": 605,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "4131:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 611,
- "initialValue": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 607,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "4165:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 610,
- "indexExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 608,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "4179:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 609,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "guardian_set_index",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 401,
- "src": "4179:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4165:44:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4131:78:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 617,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 613,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "4227:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 614,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "keys",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 368,
- "src": "4227:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "id": 615,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "4227:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 616,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4254:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "4227:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "696e76616c696420677561726469616e20736574",
- "id": 618,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4257:22:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_ef4d0f2354b2279f26c4ba4477a0c338dcdd31fbb9caa6ef52ec7856b55556f3",
- "typeString": "literal_string \"invalid guardian set\""
- },
- "value": "invalid guardian set"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_ef4d0f2354b2279f26c4ba4477a0c338dcdd31fbb9caa6ef52ec7856b55556f3",
- "typeString": "literal_string \"invalid guardian set\""
- }
- ],
- "id": 612,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4219:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 619,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4219:61:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 620,
- "nodeType": "ExpressionStatement",
- "src": "4219:61:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "id": 631,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 625,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 622,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "4298:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 623,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "expiration_time",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 370,
- "src": "4298:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 624,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4330:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "4298:33:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "||",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 630,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 626,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "4335:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 627,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "expiration_time",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 370,
- "src": "4335:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 628,
- "name": "block",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -4,
- "src": "4366:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_block",
- "typeString": "block"
- }
- },
- "id": 629,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "timestamp",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "4366:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4335:46:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "src": "4298:83:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "677561726469616e20736574206861732065787069726564",
- "id": 632,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4383:26:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
- "typeString": "literal_string \"guardian set has expired\""
- },
- "value": "guardian set has expired"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
- "typeString": "literal_string \"guardian set has expired\""
- }
- ],
- "id": 621,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4290:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 633,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4290:120:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 634,
- "nodeType": "ExpressionStatement",
- "src": "4290:120:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 652,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 650,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 648,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 645,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 642,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 640,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 636,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "4527:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 637,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "keys",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 368,
- "src": "4527:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "id": 638,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "4527:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 639,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4554:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "src": "4527:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "33",
- "id": 641,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4559:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_3_by_1",
- "typeString": "int_const 3"
- },
- "value": "3"
- },
- "src": "4527:33:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 643,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "4526:35:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 644,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4564:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "src": "4526:39:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 646,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "4525:41:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 647,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4569:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "src": "4525:46:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 649,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4574:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "src": "4525:50:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 651,
- "name": "len_signers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 558,
- "src": "4579:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4525:65:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6e6f2071756f72756d",
- "id": 653,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4592:11:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
- "typeString": "literal_string \"no quorum\""
- },
- "value": "no quorum"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
- "typeString": "literal_string \"no quorum\""
- }
- ],
- "id": 635,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4517:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 654,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4517:87:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 655,
- "nodeType": "ExpressionStatement",
- "src": "4517:87:1"
- },
- {
- "assignments": [657],
- "declarations": [
- {
- "constant": false,
- "id": 657,
- "mutability": "mutable",
- "name": "last_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 780,
- "src": "4615:16:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- },
- "typeName": {
- "id": 656,
- "name": "int16",
- "nodeType": "ElementaryTypeName",
- "src": "4615:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 660,
- "initialValue": {
- "argumentTypes": null,
- "id": 659,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "-",
- "prefix": true,
- "src": "4634:3:1",
- "subExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 658,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4636:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "typeDescriptions": {
- "typeIdentifier": "t_rational_minus_1_by_1",
- "typeString": "int_const -1"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4615:22:1"
- },
- {
- "body": {
- "id": 749,
- "nodeType": "Block",
- "src": "4686:465:1",
- "statements": [
- {
- "assignments": [672],
- "declarations": [
- {
- "constant": false,
- "id": 672,
- "mutability": "mutable",
- "name": "index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 749,
- "src": "4700:11:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 671,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "4700:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 681,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 679,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "36",
- "id": 675,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4726:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_6_by_1",
- "typeString": "int_const 6"
- },
- "value": "6"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 678,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 676,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4730:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 677,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4734:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "src": "4730:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4726:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 673,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4714:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 674,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "4714:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 680,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4714:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4700:37:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- },
- "id": 685,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 683,
- "name": "index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 672,
- "src": "4759:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "id": 684,
- "name": "last_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 657,
- "src": "4767:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "src": "4759:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "7369676e617475726520696e6469636573206d75737420626520617363656e64696e67",
- "id": 686,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4779:37:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_de9ff8e5647eeed7691d313f96ed0065761ad2da429d76b3b7868b564890def8",
- "typeString": "literal_string \"signature indices must be ascending\""
- },
- "value": "signature indices must be ascending"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_de9ff8e5647eeed7691d313f96ed0065761ad2da429d76b3b7868b564890def8",
- "typeString": "literal_string \"signature indices must be ascending\""
- }
- ],
- "id": 682,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "4751:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 687,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4751:66:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 688,
- "nodeType": "ExpressionStatement",
- "src": "4751:66:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 694,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 689,
- "name": "last_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 657,
- "src": "4831:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 692,
- "name": "index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 672,
- "src": "4850:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 691,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "4844:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_int16_$",
- "typeString": "type(int16)"
- },
- "typeName": {
- "id": 690,
- "name": "int16",
- "nodeType": "ElementaryTypeName",
- "src": "4844:5:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 693,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4844:12:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "src": "4831:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- }
- },
- "id": 695,
- "nodeType": "ExpressionStatement",
- "src": "4831:25:1"
- },
- {
- "assignments": [697],
- "declarations": [
- {
- "constant": false,
- "id": 697,
- "mutability": "mutable",
- "name": "r",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 749,
- "src": "4871:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 696,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "4871:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 706,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 704,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "37",
- "id": 700,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4897:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_7_by_1",
- "typeString": "int_const 7"
- },
- "value": "7"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 703,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 701,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4901:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 702,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4905:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "src": "4901:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4897:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 698,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4883:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 699,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toBytes32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 298,
- "src": "4883:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
- }
- },
- "id": 705,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4883:25:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4871:37:1"
- },
- {
- "assignments": [708],
- "declarations": [
- {
- "constant": false,
- "id": 708,
- "mutability": "mutable",
- "name": "s",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 749,
- "src": "4922:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 707,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "4922:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 717,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 715,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3339",
- "id": 711,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4948:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_39_by_1",
- "typeString": "int_const 39"
- },
- "value": "39"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 714,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 712,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4953:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 713,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4957:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "src": "4953:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4948:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 709,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4934:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 710,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toBytes32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 298,
- "src": "4934:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
- }
- },
- "id": 716,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4934:26:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4922:38:1"
- },
- {
- "assignments": [719],
- "declarations": [
- {
- "constant": false,
- "id": 719,
- "mutability": "mutable",
- "name": "v",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 749,
- "src": "4974:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 718,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "4974:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 728,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 726,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3731",
- "id": 722,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4996:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- },
- "value": "71"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 725,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 723,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "5001:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3636",
- "id": 724,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5005:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_66_by_1",
- "typeString": "int_const 66"
- },
- "value": "66"
- },
- "src": "5001:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4996:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 720,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "4984:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 721,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "4984:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 727,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4984:24:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4974:34:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 731,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 729,
- "name": "v",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 719,
- "src": "5022:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "+=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "3237",
- "id": 730,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5027:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_27_by_1",
- "typeString": "int_const 27"
- },
- "value": "27"
- },
- "src": "5022:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 732,
- "nodeType": "ExpressionStatement",
- "src": "5022:7:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 745,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 735,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "5061:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 736,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "hash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 399,
- "src": "5061:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 737,
- "name": "v",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 719,
- "src": "5078:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 738,
- "name": "r",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 697,
- "src": "5081:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 739,
- "name": "s",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 708,
- "src": "5084:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "id": 734,
- "name": "ecrecover",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -6,
- "src": "5051:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
- "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
- }
- },
- "id": 740,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5051:35:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 741,
- "name": "guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 606,
- "src": "5090:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "id": 742,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "keys",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 368,
- "src": "5090:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "id": 744,
- "indexExpression": {
- "argumentTypes": null,
- "id": 743,
- "name": "index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 672,
- "src": "5108:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "5090:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "5051:63:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "564141207369676e617475726520696e76616c6964",
- "id": 746,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5116:23:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
- "typeString": "literal_string \"VAA signature invalid\""
- },
- "value": "VAA signature invalid"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
- "typeString": "literal_string \"VAA signature invalid\""
- }
- ],
- "id": 733,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "5043:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 747,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5043:97:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 748,
- "nodeType": "ExpressionStatement",
- "src": "5043:97:1"
- }
- ]
- },
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 667,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 665,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4664:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<",
- "rightExpression": {
- "argumentTypes": null,
- "id": 666,
- "name": "len_signers",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 558,
- "src": "4668:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4664:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 750,
- "initializationExpression": {
- "assignments": [662],
- "declarations": [
- {
- "constant": false,
- "id": 662,
- "mutability": "mutable",
- "name": "i",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 750,
- "src": "4652:6:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 661,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "4652:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 664,
- "initialValue": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 663,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4661:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "4652:10:1"
- },
- "loopExpression": {
- "expression": {
- "argumentTypes": null,
- "id": 669,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "++",
- "prefix": false,
- "src": "4681:3:1",
- "subExpression": {
- "argumentTypes": null,
- "id": 668,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 662,
- "src": "4681:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 670,
- "nodeType": "ExpressionStatement",
- "src": "4681:3:1"
- },
- "nodeType": "ForStatement",
- "src": "4647:504:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 760,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 751,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "5161:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 753,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "action",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 405,
- "src": "5161:17:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 758,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 756,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "5193:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "34",
- "id": 757,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5202:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- },
- "value": "4"
- },
- "src": "5193:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 754,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "5181:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 755,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "5181:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 759,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5181:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "5161:43:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 761,
- "nodeType": "ExpressionStatement",
- "src": "5161:43:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 778,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 762,
- "name": "parsed_vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 529,
- "src": "5214:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA memory"
- }
- },
- "id": 764,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "payload",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 407,
- "src": "5214:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 769,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 767,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "5245:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 768,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5254:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- },
- "src": "5245:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 776,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 770,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "5257:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 771,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "5257:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 774,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 772,
- "name": "offset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 565,
- "src": "5271:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 773,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5280:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- },
- "src": "5271:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 775,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "5270:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5257:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 765,
- "name": "vaa",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 526,
- "src": "5235:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "id": 766,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "slice",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 55,
- "src": "5235:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
- }
- },
- "id": 777,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5235:48:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "src": "5214:69:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 779,
- "nodeType": "ExpressionStatement",
- "src": "5214:69:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "600b9aa6",
- "id": 781,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "parseAndVerifyVAA",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 527,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 526,
- "mutability": "mutable",
- "name": "vaa",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 781,
- "src": "3472:18:1",
- "stateVariable": false,
- "storageLocation": "calldata",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 525,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "3472:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3471:20:1"
- },
- "returnParameters": {
- "id": 530,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 529,
- "mutability": "mutable",
- "name": "parsed_vaa",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 781,
- "src": "3513:27:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_memory_ptr",
- "typeString": "struct Wormhole.ParsedVAA"
- },
- "typeName": {
- "contractScope": null,
- "id": 528,
- "name": "ParsedVAA",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 408,
- "src": "3513:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_ParsedVAA_$408_storage_ptr",
- "typeString": "struct Wormhole.ParsedVAA"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3512:29:1"
- },
- "scope": 1420,
- "src": "3445:1845:1",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 888,
- "nodeType": "Block",
- "src": "5353:859:1",
- "statements": [
- {
- "assignments": [787],
- "declarations": [
- {
- "constant": false,
- "id": 787,
- "mutability": "mutable",
- "name": "new_guardian_set_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5363:29:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 786,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "5363:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 792,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 790,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5409:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 788,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 783,
- "src": "5395:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 789,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 163,
- "src": "5395:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint32)"
- }
- },
- "id": 791,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5395:16:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5363:48:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 798,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 794,
- "name": "new_guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 787,
- "src": "5429:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 797,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 795,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "5455:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 796,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5476:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "src": "5455:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "5429:48:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "696e646578206d75737420696e63726561736520696e207374657073206f662031",
- "id": 799,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5479:35:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_a9c35350c4790f34190b54478b12348e0cbd9c4c717b5d4a6ca5709d71c4f33d",
- "typeString": "literal_string \"index must increase in steps of 1\""
- },
- "value": "index must increase in steps of 1"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_a9c35350c4790f34190b54478b12348e0cbd9c4c717b5d4a6ca5709d71c4f33d",
- "typeString": "literal_string \"index must increase in steps of 1\""
- }
- ],
- "id": 793,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "5421:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 800,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5421:94:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 801,
- "nodeType": "ExpressionStatement",
- "src": "5421:94:1"
- },
- {
- "assignments": [803],
- "declarations": [
- {
- "constant": false,
- "id": 803,
- "mutability": "mutable",
- "name": "len",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5525:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 802,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "5525:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 808,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "34",
- "id": 806,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5550:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- },
- "value": "4"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 804,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 783,
- "src": "5537:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 805,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "5537:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 807,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5537:15:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5525:27:1"
- },
- {
- "assignments": [813],
- "declarations": [
- {
- "constant": false,
- "id": 813,
- "mutability": "mutable",
- "name": "new_guardians",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5563:30:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[]"
- },
- "typeName": {
- "baseType": {
- "id": 811,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5563:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 812,
- "length": null,
- "nodeType": "ArrayTypeName",
- "src": "5563:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
- "typeString": "address[]"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 819,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 817,
- "name": "len",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 803,
- "src": "5610:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 816,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "NewExpression",
- "src": "5596:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
- "typeString": "function (uint256) pure returns (address[] memory)"
- },
- "typeName": {
- "baseType": {
- "id": 814,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5600:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 815,
- "length": null,
- "nodeType": "ArrayTypeName",
- "src": "5600:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
- "typeString": "address[]"
- }
- }
- },
- "id": 818,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5596:18:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5563:51:1"
- },
- {
- "body": {
- "id": 847,
- "nodeType": "Block",
- "src": "5655:103:1",
- "statements": [
- {
- "assignments": [831],
- "declarations": [
- {
- "constant": false,
- "id": 831,
- "mutability": "mutable",
- "name": "addr",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 847,
- "src": "5669:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 830,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5669:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 840,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 838,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 834,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5699:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 837,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 835,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 821,
- "src": "5703:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3230",
- "id": 836,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5707:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_20_by_1",
- "typeString": "int_const 20"
- },
- "value": "20"
- },
- "src": "5703:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5699:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 832,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 783,
- "src": "5684:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 833,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toAddress",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 82,
- "src": "5684:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (address)"
- }
- },
- "id": 839,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5684:26:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5669:41:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 845,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 841,
- "name": "new_guardians",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 813,
- "src": "5724:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- "id": 843,
- "indexExpression": {
- "argumentTypes": null,
- "id": 842,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 821,
- "src": "5738:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "5724:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 844,
- "name": "addr",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 831,
- "src": "5743:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "5724:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 846,
- "nodeType": "ExpressionStatement",
- "src": "5724:23:1"
- }
- ]
- },
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 826,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 824,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 821,
- "src": "5641:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<",
- "rightExpression": {
- "argumentTypes": null,
- "id": 825,
- "name": "len",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 803,
- "src": "5645:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "5641:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 848,
- "initializationExpression": {
- "assignments": [821],
- "declarations": [
- {
- "constant": false,
- "id": 821,
- "mutability": "mutable",
- "name": "i",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 848,
- "src": "5629:6:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 820,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "5629:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 823,
- "initialValue": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 822,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5638:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5629:10:1"
- },
- "loopExpression": {
- "expression": {
- "argumentTypes": null,
- "id": 828,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "++",
- "prefix": false,
- "src": "5650:3:1",
- "subExpression": {
- "argumentTypes": null,
- "id": 827,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 821,
- "src": "5650:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 829,
- "nodeType": "ExpressionStatement",
- "src": "5650:3:1"
- },
- "nodeType": "ForStatement",
- "src": "5624:134:1"
- },
- {
- "assignments": [850],
- "declarations": [
- {
- "constant": false,
- "id": 850,
- "mutability": "mutable",
- "name": "old_guardian_set_index",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5768:29:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 849,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "5768:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 852,
- "initialValue": {
- "argumentTypes": null,
- "id": 851,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "5800:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5768:50:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 855,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 853,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "5828:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 854,
- "name": "new_guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 787,
- "src": "5849:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "5828:43:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 856,
- "nodeType": "ExpressionStatement",
- "src": "5828:43:1"
- },
- {
- "assignments": [858],
- "declarations": [
- {
- "constant": false,
- "id": 858,
- "mutability": "mutable",
- "name": "new_guardian_set",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 888,
- "src": "5882:35:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- },
- "typeName": {
- "contractScope": null,
- "id": 857,
- "name": "GuardianSet",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 371,
- "src": "5882:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr",
- "typeString": "struct Wormhole.GuardianSet"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 863,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 860,
- "name": "new_guardians",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 813,
- "src": "5932:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 861,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5947:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- },
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 859,
- "name": "GuardianSet",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 371,
- "src": "5920:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_struct$_GuardianSet_$371_storage_ptr_$",
- "typeString": "type(struct Wormhole.GuardianSet storage pointer)"
- }
- },
- "id": 862,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "structConstructorCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5920:29:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5882:67:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 868,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 864,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "5959:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 866,
- "indexExpression": {
- "argumentTypes": null,
- "id": 865,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "5973:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "5959:33:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 867,
- "name": "new_guardian_set",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 858,
- "src": "5995:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr",
- "typeString": "struct Wormhole.GuardianSet memory"
- }
- },
- "src": "5959:52:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "id": 869,
- "nodeType": "ExpressionStatement",
- "src": "5959:52:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 881,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 870,
- "name": "guardian_sets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 412,
- "src": "6021:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$",
- "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
- }
- },
- "id": 872,
- "indexExpression": {
- "argumentTypes": null,
- "id": 871,
- "name": "old_guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 850,
- "src": "6035:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "6021:37:1",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_GuardianSet_$371_storage",
- "typeString": "struct Wormhole.GuardianSet storage ref"
- }
- },
- "id": 873,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "expiration_time",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 370,
- "src": "6021:53:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "id": 880,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 876,
- "name": "block",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -4,
- "src": "6084:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_block",
- "typeString": "block"
- }
- },
- "id": 877,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "timestamp",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "6084:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 875,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "6077:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint32_$",
- "typeString": "type(uint32)"
- },
- "typeName": {
- "id": 874,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "6077:6:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 878,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6077:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "id": 879,
- "name": "guardian_set_expirity",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 416,
- "src": "6103:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "6077:47:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "src": "6021:103:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "id": 882,
- "nodeType": "ExpressionStatement",
- "src": "6021:103:1"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 884,
- "name": "old_guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 850,
- "src": "6162:22:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- {
- "argumentTypes": null,
- "id": 885,
- "name": "guardian_set_index",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 414,
- "src": "6186:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "id": 883,
- "name": "LogGuardianSetChanged",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 377,
- "src": "6140:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$",
- "typeString": "function (uint32,uint32)"
- }
- },
- "id": 886,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6140:65:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 887,
- "nodeType": "EmitStatement",
- "src": "6135:70:1"
- }
- ]
- },
- "documentation": null,
- "id": 889,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "vaaUpdateGuardianSet",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 784,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 783,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 889,
- "src": "5326:17:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 782,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "5326:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5325:19:1"
- },
- "returnParameters": {
- "id": 785,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "5353:0:1"
- },
- "scope": 1420,
- "src": "5296:916:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- {
- "body": {
- "id": 1050,
- "nodeType": "Block",
- "src": "6266:1644:1",
- "statements": [
- {
- "assignments": [895],
- "declarations": [
- {
- "constant": false,
- "id": 895,
- "mutability": "mutable",
- "name": "source_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6319:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 894,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "6319:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 900,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "34",
- "id": 898,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6353:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- },
- "value": "4"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 896,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6340:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 897,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "6340:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 899,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6340:15:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6319:36:1"
- },
- {
- "assignments": [902],
- "declarations": [
- {
- "constant": false,
- "id": 902,
- "mutability": "mutable",
- "name": "target_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6366:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 901,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "6366:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 907,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "35",
- "id": 905,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6400:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- },
- "value": "5"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 903,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6387:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 904,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "6387:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 906,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6387:15:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6366:36:1"
- },
- {
- "assignments": [909],
- "declarations": [
- {
- "constant": false,
- "id": 909,
- "mutability": "mutable",
- "name": "target_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6521:22:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 908,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "6521:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 916,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- },
- "id": 914,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3338",
- "id": 912,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6561:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_38_by_1",
- "typeString": "int_const 38"
- },
- "value": "38"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3132",
- "id": 913,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6566:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_12_by_1",
- "typeString": "int_const 12"
- },
- "value": "12"
- },
- "src": "6561:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 910,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6546:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 911,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toAddress",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 82,
- "src": "6546:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (address)"
- }
- },
- "id": 915,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6546:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6521:48:1"
- },
- {
- "assignments": [918],
- "declarations": [
- {
- "constant": false,
- "id": 918,
- "mutability": "mutable",
- "name": "token_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6580:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 917,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "6580:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 923,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "3730",
- "id": 921,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6613:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_70_by_1",
- "typeString": "int_const 70"
- },
- "value": "70"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_70_by_1",
- "typeString": "int_const 70"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 919,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6600:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 920,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "6600:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 922,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6600:16:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6580:36:1"
- },
- {
- "assignments": [925],
- "declarations": [
- {
- "constant": false,
- "id": 925,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1050,
- "src": "6680:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 924,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6680:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 930,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "313034",
- "id": 928,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6712:3:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_104_by_1",
- "typeString": "int_const 104"
- },
- "value": "104"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_104_by_1",
- "typeString": "int_const 104"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 926,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6697:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 927,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint256",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 271,
- "src": "6697:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint256)"
- }
- },
- "id": 929,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6697:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6680:36:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 934,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 932,
- "name": "source_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 895,
- "src": "6735:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 933,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 902,
- "src": "6751:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "6735:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564",
- "id": 935,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6765:40:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
- "typeString": "literal_string \"same chain transfers are not supported\""
- },
- "value": "same chain transfers are not supported"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
- "typeString": "literal_string \"same chain transfers are not supported\""
- }
- ],
- "id": 931,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "6727:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 936,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6727:79:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 937,
- "nodeType": "ExpressionStatement",
- "src": "6727:79:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 941,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 939,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 902,
- "src": "6824:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "id": 940,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "6840:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "6824:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "7472616e73666572206d75737420626520696e636f6d696e67",
- "id": 942,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6850:27:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
- "typeString": "literal_string \"transfer must be incoming\""
- },
- "value": "transfer must be incoming"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
- "typeString": "literal_string \"transfer must be incoming\""
- }
- ],
- "id": 938,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "6816:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 943,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6816:62:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 944,
- "nodeType": "ExpressionStatement",
- "src": "6816:62:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 947,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 945,
- "name": "token_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 918,
- "src": "6893:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 946,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "6908:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "6893:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "id": 1048,
- "nodeType": "Block",
- "src": "7514:390:1",
- "statements": [
- {
- "assignments": [1005],
- "declarations": [
- {
- "constant": false,
- "id": 1005,
- "mutability": "mutable",
- "name": "token_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1048,
- "src": "7528:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1004,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7528:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1012,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- },
- "id": 1010,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3731",
- "id": 1008,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7567:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- },
- "value": "71"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3132",
- "id": 1009,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7572:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_12_by_1",
- "typeString": "int_const 12"
- },
- "value": "12"
- },
- "src": "7567:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1006,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "7552:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 1007,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toAddress",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 82,
- "src": "7552:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (address)"
- }
- },
- "id": 1011,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7552:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "7528:47:1"
- },
- {
- "assignments": [1014],
- "declarations": [
- {
- "constant": false,
- "id": 1014,
- "mutability": "mutable",
- "name": "decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1048,
- "src": "7590:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1013,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "7590:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1020,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1016,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1005,
- "src": "7613:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1015,
- "name": "ERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3008,
- "src": "7607:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_ERC20_$3008_$",
- "typeString": "type(contract ERC20)"
- }
- },
- "id": 1017,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7607:20:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_ERC20_$3008",
- "typeString": "contract ERC20"
- }
- },
- "id": 1018,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "decimals",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2584,
- "src": "7607:29:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
- "typeString": "function () view external returns (uint8)"
- }
- },
- "id": 1019,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7607:31:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "7590:48:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1023,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1021,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1014,
- "src": "7727:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1022,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7738:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "7727:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 1039,
- "nodeType": "IfStatement",
- "src": "7723:99:1",
- "trueBody": {
- "id": 1038,
- "nodeType": "Block",
- "src": "7741:81:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 1036,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1024,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 925,
- "src": "7759:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1034,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1027,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7779:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1032,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1030,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1014,
- "src": "7793:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1031,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7804:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "7793:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1029,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "7785:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1028,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7785:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1033,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7785:21:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7779:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1025,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 925,
- "src": "7768:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1026,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "mul",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2388,
- "src": "7768:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1035,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7768:39:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7759:48:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1037,
- "nodeType": "ExpressionStatement",
- "src": "7759:48:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1044,
- "name": "target_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 909,
- "src": "7870:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1045,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 925,
- "src": "7886:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1041,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1005,
- "src": "7842:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1040,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "7835:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1042,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7835:21:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1043,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "safeTransfer",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3120,
- "src": "7835:34:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$3086_$",
- "typeString": "function (contract IERC20,address,uint256)"
- }
- },
- "id": 1046,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7835:58:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1047,
- "nodeType": "ExpressionStatement",
- "src": "7835:58:1"
- }
- ]
- },
- "id": 1049,
- "nodeType": "IfStatement",
- "src": "6889:1015:1",
- "trueBody": {
- "id": 1003,
- "nodeType": "Block",
- "src": "6918:590:1",
- "statements": [
- {
- "assignments": [949],
- "declarations": [
- {
- "constant": false,
- "id": 949,
- "mutability": "mutable",
- "name": "token_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1003,
- "src": "6932:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 948,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "6932:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 954,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "3731",
- "id": 952,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6971:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- },
- "value": "71"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 950,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "6956:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 951,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toBytes32",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 298,
- "src": "6956:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (bytes32)"
- }
- },
- "id": 953,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6956:18:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6932:42:1"
- },
- {
- "assignments": [956],
- "declarations": [
- {
- "constant": false,
- "id": 956,
- "mutability": "mutable",
- "name": "asset_id",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1003,
- "src": "6988:16:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 955,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "6988:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 964,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 960,
- "name": "token_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 918,
- "src": "7034:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 961,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 949,
- "src": "7047:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 958,
- "name": "abi",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -1,
- "src": "7017:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_abi",
- "typeString": "abi"
- }
- },
- "id": 959,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "memberName": "encodePacked",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "7017:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
- "typeString": "function () pure returns (bytes memory)"
- }
- },
- "id": 962,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7017:44:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 957,
- "name": "keccak256",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -8,
- "src": "7007:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
- "typeString": "function (bytes memory) pure returns (bytes32)"
- }
- },
- "id": 963,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7007:55:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "6988:74:1"
- },
- {
- "assignments": [966],
- "declarations": [
- {
- "constant": false,
- "id": 966,
- "mutability": "mutable",
- "name": "wrapped_asset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1003,
- "src": "7154:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 965,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7154:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 970,
- "initialValue": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 967,
- "name": "wrappedAssets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 424,
- "src": "7178:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- }
- },
- "id": 969,
- "indexExpression": {
- "argumentTypes": null,
- "id": 968,
- "name": "asset_id",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 956,
- "src": "7192:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "7178:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "7154:47:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 976,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 971,
- "name": "wrapped_asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 966,
- "src": "7219:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 974,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7244:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 973,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "7236:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 972,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7236:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 975,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7236:10:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "7219:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 994,
- "nodeType": "IfStatement",
- "src": "7215:212:1",
- "trueBody": {
- "id": 993,
- "nodeType": "Block",
- "src": "7248:179:1",
- "statements": [
- {
- "assignments": [978],
- "declarations": [
- {
- "constant": false,
- "id": 978,
- "mutability": "mutable",
- "name": "asset_decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 993,
- "src": "7266:20:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 977,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "7266:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 983,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "313033",
- "id": 981,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7302:3:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_103_by_1",
- "typeString": "int_const 103"
- },
- "value": "103"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_103_by_1",
- "typeString": "int_const 103"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 979,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 891,
- "src": "7289:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 980,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "toUint8",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 109,
- "src": "7289:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
- "typeString": "function (bytes memory,uint256) pure returns (uint8)"
- }
- },
- "id": 982,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7289:17:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "7266:40:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 991,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 984,
- "name": "wrapped_asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 966,
- "src": "7324:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 986,
- "name": "asset_id",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 956,
- "src": "7359:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 987,
- "name": "token_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 918,
- "src": "7369:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 988,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 949,
- "src": "7382:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 989,
- "name": "asset_decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 978,
- "src": "7397:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 985,
- "name": "deployWrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1094,
- "src": "7340:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_uint8_$returns$_t_address_$",
- "typeString": "function (bytes32,uint8,bytes32,uint8) returns (address)"
- }
- },
- "id": 990,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7340:72:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "7324:88:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 992,
- "nodeType": "ExpressionStatement",
- "src": "7324:88:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 999,
- "name": "target_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 909,
- "src": "7474:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1000,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 925,
- "src": "7490:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 996,
- "name": "wrapped_asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 966,
- "src": "7454:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 995,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "7441:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 997,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7441:27:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 998,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "mint",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1511,
- "src": "7441:32:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,uint256) external"
- }
- },
- "id": 1001,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7441:56:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1002,
- "nodeType": "ExpressionStatement",
- "src": "7441:56:1"
- }
- ]
- }
- }
- ]
- },
- "documentation": null,
- "id": 1051,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "vaaTransfer",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 892,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 891,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1051,
- "src": "6239:17:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 890,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "6239:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6238:19:1"
- },
- "returnParameters": {
- "id": 893,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "6266:0:1"
- },
- "scope": 1420,
- "src": "6218:1692:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- {
- "body": {
- "id": 1093,
- "nodeType": "Block",
- "src": "8047:808:1",
- "statements": [
- {
- "assignments": [1065],
- "declarations": [
- {
- "constant": false,
- "id": 1065,
- "mutability": "mutable",
- "name": "targetBytes",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1093,
- "src": "8225:19:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes20",
- "typeString": "bytes20"
- },
- "typeName": {
- "id": 1064,
- "name": "bytes20",
- "nodeType": "ElementaryTypeName",
- "src": "8225:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes20",
- "typeString": "bytes20"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1070,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1068,
- "name": "wrappedAssetMaster",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 359,
- "src": "8255:18:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1067,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "8247:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes20_$",
- "typeString": "type(bytes20)"
- },
- "typeName": {
- "id": 1066,
- "name": "bytes20",
- "nodeType": "ElementaryTypeName",
- "src": "8247:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1069,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8247:27:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes20",
- "typeString": "bytes20"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "8225:49:1"
- },
- {
- "AST": {
- "nodeType": "YulBlock",
- "src": "8293:348:1",
- "statements": [
- {
- "nodeType": "YulVariableDeclaration",
- "src": "8307:24:1",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8326:4:1",
- "type": "",
- "value": "0x40"
- }
- ],
- "functionName": {
- "name": "mload",
- "nodeType": "YulIdentifier",
- "src": "8320:5:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8320:11:1"
- },
- "variables": [
- {
- "name": "clone",
- "nodeType": "YulTypedName",
- "src": "8311:5:1",
- "type": ""
- }
- ]
- },
- {
- "expression": {
- "arguments": [
- {
- "name": "clone",
- "nodeType": "YulIdentifier",
- "src": "8351:5:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8358:66:1",
- "type": "",
- "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "8344:6:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8344:81:1"
- },
- "nodeType": "YulExpressionStatement",
- "src": "8344:81:1"
- },
- {
- "expression": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "clone",
- "nodeType": "YulIdentifier",
- "src": "8449:5:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8456:4:1",
- "type": "",
- "value": "0x14"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8445:3:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8445:16:1"
- },
- {
- "name": "targetBytes",
- "nodeType": "YulIdentifier",
- "src": "8463:11:1"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "8438:6:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8438:37:1"
- },
- "nodeType": "YulExpressionStatement",
- "src": "8438:37:1"
- },
- {
- "expression": {
- "arguments": [
- {
- "arguments": [
- {
- "name": "clone",
- "nodeType": "YulIdentifier",
- "src": "8499:5:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8506:4:1",
- "type": "",
- "value": "0x28"
- }
- ],
- "functionName": {
- "name": "add",
- "nodeType": "YulIdentifier",
- "src": "8495:3:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8495:16:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8513:66:1",
- "type": "",
- "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000"
- }
- ],
- "functionName": {
- "name": "mstore",
- "nodeType": "YulIdentifier",
- "src": "8488:6:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8488:92:1"
- },
- "nodeType": "YulExpressionStatement",
- "src": "8488:92:1"
- },
- {
- "nodeType": "YulAssignment",
- "src": "8593:38:1",
- "value": {
- "arguments": [
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8610:1:1",
- "type": "",
- "value": "0"
- },
- {
- "name": "clone",
- "nodeType": "YulIdentifier",
- "src": "8613:5:1"
- },
- {
- "kind": "number",
- "nodeType": "YulLiteral",
- "src": "8620:4:1",
- "type": "",
- "value": "0x37"
- },
- {
- "name": "seed",
- "nodeType": "YulIdentifier",
- "src": "8626:4:1"
- }
- ],
- "functionName": {
- "name": "create2",
- "nodeType": "YulIdentifier",
- "src": "8602:7:1"
- },
- "nodeType": "YulFunctionCall",
- "src": "8602:29:1"
- },
- "variableNames": [
- {
- "name": "asset",
- "nodeType": "YulIdentifier",
- "src": "8593:5:1"
- }
- ]
- }
- ]
- },
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 1062,
- "isOffset": false,
- "isSlot": false,
- "src": "8593:5:1",
- "valueSize": 1
- },
- {
- "declaration": 1053,
- "isOffset": false,
- "isSlot": false,
- "src": "8626:4:1",
- "valueSize": 1
- },
- {
- "declaration": 1065,
- "isOffset": false,
- "isSlot": false,
- "src": "8463:11:1",
- "valueSize": 1
- }
- ],
- "id": 1071,
- "nodeType": "InlineAssembly",
- "src": "8284:357:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1076,
- "name": "token_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1055,
- "src": "8710:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1077,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1057,
- "src": "8723:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1078,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1059,
- "src": "8738:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1073,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1062,
- "src": "8692:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1072,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "8679:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 1074,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8679:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 1075,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "initialize",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1490,
- "src": "8679:30:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$_t_uint8_$returns$__$",
- "typeString": "function (uint8,bytes32,uint8) external"
- }
- },
- "id": 1079,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8679:68:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1080,
- "nodeType": "ExpressionStatement",
- "src": "8679:68:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1085,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1081,
- "name": "wrappedAssets",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 424,
- "src": "8783:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- }
- },
- "id": 1083,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1082,
- "name": "seed",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1053,
- "src": "8797:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "8783:19:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 1084,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1062,
- "src": "8805:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "8783:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 1086,
- "nodeType": "ExpressionStatement",
- "src": "8783:27:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1091,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1087,
- "name": "isWrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 428,
- "src": "8820:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
- "typeString": "mapping(address => bool)"
- }
- },
- "id": 1089,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1088,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1062,
- "src": "8835:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "8820:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 1090,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8844:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "src": "8820:28:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 1092,
- "nodeType": "ExpressionStatement",
- "src": "8820:28:1"
- }
- ]
- },
- "documentation": null,
- "id": 1094,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "deployWrappedAsset",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1060,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1053,
- "mutability": "mutable",
- "name": "seed",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "7944:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1052,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "7944:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1055,
- "mutability": "mutable",
- "name": "token_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "7958:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1054,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "7958:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1057,
- "mutability": "mutable",
- "name": "token_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "7977:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1056,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "7977:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1059,
- "mutability": "mutable",
- "name": "decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "8000:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1058,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "8000:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7943:72:1"
- },
- "returnParameters": {
- "id": 1063,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1062,
- "mutability": "mutable",
- "name": "asset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1094,
- "src": "8033:13:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1061,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8033:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "8032:15:1"
- },
- "scope": 1420,
- "src": "7916:939:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- {
- "body": {
- "id": 1313,
- "nodeType": "Block",
- "src": "9057:1779:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1114,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1112,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1102,
- "src": "9075:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1113,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "9091:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "9075:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6d757374206e6f74207472616e7366657220746f207468652073616d6520636861696e",
- "id": 1115,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9101:37:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- },
- "value": "must not transfer to the same chain"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- }
- ],
- "id": 1111,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "9067:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1116,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9067:72:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1117,
- "nodeType": "ExpressionStatement",
- "src": "9067:72:1"
- },
- {
- "assignments": [1119],
- "declarations": [
- {
- "constant": false,
- "id": 1119,
- "mutability": "mutable",
- "name": "asset_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1313,
- "src": "9150:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1118,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "9150:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1121,
- "initialValue": {
- "argumentTypes": null,
- "id": 1120,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "9170:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "9150:28:1"
- },
- {
- "assignments": [1123],
- "declarations": [
- {
- "constant": false,
- "id": 1123,
- "mutability": "mutable",
- "name": "asset_address",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1313,
- "src": "9188:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1122,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "9188:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1124,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "9188:21:1"
- },
- {
- "assignments": [1126],
- "declarations": [
- {
- "constant": false,
- "id": 1126,
- "mutability": "mutable",
- "name": "decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1313,
- "src": "9219:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1125,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "9219:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1132,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1128,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9242:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1127,
- "name": "ERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3008,
- "src": "9236:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_ERC20_$3008_$",
- "typeString": "type(contract ERC20)"
- }
- },
- "id": 1129,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9236:12:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_ERC20_$3008",
- "typeString": "contract ERC20"
- }
- },
- "id": 1130,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "decimals",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2584,
- "src": "9236:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
- "typeString": "function () view external returns (uint8)"
- }
- },
- "id": 1131,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9236:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "9219:40:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1133,
- "name": "isWrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 428,
- "src": "9274:14:1",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
- "typeString": "mapping(address => bool)"
- }
- },
- "id": 1135,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1134,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9289:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "9274:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "id": 1286,
- "nodeType": "Block",
- "src": "9496:1091:1",
- "statements": [
- {
- "assignments": [1163],
- "declarations": [
- {
- "constant": false,
- "id": 1163,
- "mutability": "mutable",
- "name": "balanceBefore",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1286,
- "src": "9510:21:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1162,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "9510:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1173,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1170,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "9566:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "id": 1169,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9558:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1168,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9558:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1171,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9558:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1165,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9541:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1164,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "9534:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1166,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9534:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1167,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "balanceOf",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3025,
- "src": "9534:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
- "typeString": "function (address) view external returns (uint256)"
- }
- },
- "id": 1172,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9534:38:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "9510:62:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1178,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "9617:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1179,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "9617:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1182,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "9637:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "id": 1181,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9629:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1180,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9629:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1183,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9629:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 1184,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "9644:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1175,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9593:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1174,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "9586:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1176,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9586:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1177,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "safeTransferFrom",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3145,
- "src": "9586:30:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$3086_$",
- "typeString": "function (contract IERC20,address,address,uint256)"
- }
- },
- "id": 1185,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9586:65:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1186,
- "nodeType": "ExpressionStatement",
- "src": "9586:65:1"
- },
- {
- "assignments": [1188],
- "declarations": [
- {
- "constant": false,
- "id": 1188,
- "mutability": "mutable",
- "name": "balanceAfter",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1286,
- "src": "9665:20:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1187,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "9665:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1198,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1195,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "9720:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "id": 1194,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9712:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1193,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9712:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1196,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9712:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1190,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9695:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1189,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "9688:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1191,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9688:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1192,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "balanceOf",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3025,
- "src": "9688:23:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
- "typeString": "function (address) view external returns (uint256)"
- }
- },
- "id": 1197,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9688:38:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "9665:61:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1204,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1199,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "9931:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1202,
- "name": "balanceBefore",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1163,
- "src": "9957:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1200,
- "name": "balanceAfter",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1188,
- "src": "9940:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1201,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2354,
- "src": "9940:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1203,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9940:31:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "9931:40:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1205,
- "nodeType": "ExpressionStatement",
- "src": "9931:40:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1208,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1206,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10046:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1207,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10057:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10046:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 1254,
- "nodeType": "IfStatement",
- "src": "10042:344:1",
- "trueBody": {
- "id": 1253,
- "nodeType": "Block",
- "src": "10060:326:1",
- "statements": [
- {
- "assignments": [1210],
- "declarations": [
- {
- "constant": false,
- "id": 1210,
- "mutability": "mutable",
- "name": "original_amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1253,
- "src": "10078:23:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1209,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10078:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1212,
- "initialValue": {
- "argumentTypes": null,
- "id": 1211,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10104:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "10078:32:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1225,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1213,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10128:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1223,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1216,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10148:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1221,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1219,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10162:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1220,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10173:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10162:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1218,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10154:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1217,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10154:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1222,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10154:21:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "10148:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1214,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10137:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1215,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "div",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2410,
- "src": "10137:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1224,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10137:39:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "10128:48:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1226,
- "nodeType": "ExpressionStatement",
- "src": "10128:48:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "id": 1227,
- "name": "refund_dust",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1106,
- "src": "10199:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 1248,
- "nodeType": "IfStatement",
- "src": "10195:146:1",
- "trueBody": {
- "id": 1247,
- "nodeType": "Block",
- "src": "10212:129:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1232,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "10261:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1233,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "10261:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1243,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1236,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10293:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1241,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1239,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10307:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1240,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10318:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10307:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1238,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10299:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1237,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10299:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1242,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10299:21:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "10293:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1234,
- "name": "original_amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1210,
- "src": "10273:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1235,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "mod",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2432,
- "src": "10273:19:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1244,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10273:48:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1229,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "10241:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1228,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3086,
- "src": "10234:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$3086_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1230,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10234:13:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1231,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "safeTransfer",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 3120,
- "src": "10234:26:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$3086_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$3086_$",
- "typeString": "function (contract IERC20,address,uint256)"
- }
- },
- "id": 1245,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10234:88:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1246,
- "nodeType": "ExpressionStatement",
- "src": "10234:88:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1251,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1249,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10359:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1250,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10370:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10359:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 1252,
- "nodeType": "ExpressionStatement",
- "src": "10359:12:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1272,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1269,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1258,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10425:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1267,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1262,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "10445:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1261,
- "name": "ERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3008,
- "src": "10439:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_ERC20_$3008_$",
- "typeString": "type(contract ERC20)"
- }
- },
- "id": 1263,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10439:12:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_ERC20_$3008",
- "typeString": "contract ERC20"
- }
- },
- "id": 1264,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "decimals",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2584,
- "src": "10439:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
- "typeString": "function () view external returns (uint8)"
- }
- },
- "id": 1265,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10439:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1266,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10465:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "10439:27:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1260,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10431:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1259,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10431:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1268,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10431:36:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "10425:42:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1256,
- "name": "balanceAfter",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1188,
- "src": "10408:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1257,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "div",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2410,
- "src": "10408:16:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1270,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10408:60:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1271,
- "name": "MAX_UINT64",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 357,
- "src": "10472:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint64",
- "typeString": "uint64"
- }
- },
- "src": "10408:74:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6272696467652062616c616e636520776f756c6420657863656564206d6178696d756d",
- "id": 1273,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10484:37:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4",
- "typeString": "literal_string \"bridge balance would exceed maximum\""
- },
- "value": "bridge balance would exceed maximum"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4",
- "typeString": "literal_string \"bridge balance would exceed maximum\""
- }
- ],
- "id": 1255,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "10400:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1274,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10400:122:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1275,
- "nodeType": "ExpressionStatement",
- "src": "10400:122:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1284,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1276,
- "name": "asset_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1123,
- "src": "10537:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1281,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "10569:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1280,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10561:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1279,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10561:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1282,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10561:14:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1278,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10553:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes32_$",
- "typeString": "type(bytes32)"
- },
- "typeName": {
- "id": 1277,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "10553:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1283,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10553:23:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "10537:39:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1285,
- "nodeType": "ExpressionStatement",
- "src": "10537:39:1"
- }
- ]
- },
- "id": 1287,
- "nodeType": "IfStatement",
- "src": "9270:1317:1",
- "trueBody": {
- "id": 1161,
- "nodeType": "Block",
- "src": "9297:193:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1140,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "9336:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1141,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "9336:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 1142,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "9348:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1137,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9324:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1136,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "9311:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 1138,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9311:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 1139,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "burn",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1532,
- "src": "9311:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,uint256) external"
- }
- },
- "id": 1143,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9311:44:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1144,
- "nodeType": "ExpressionStatement",
- "src": "9311:44:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1151,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1145,
- "name": "asset_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1119,
- "src": "9369:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1147,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9396:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1146,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "9383:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 1148,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9383:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 1149,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "assetChain",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1443,
- "src": "9383:30:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
- "typeString": "function () view external returns (uint8)"
- }
- },
- "id": 1150,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9383:32:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "9369:46:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 1152,
- "nodeType": "ExpressionStatement",
- "src": "9369:46:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1159,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1153,
- "name": "asset_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1123,
- "src": "9429:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1155,
- "name": "asset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1096,
- "src": "9458:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1154,
- "name": "WrappedAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2147,
- "src": "9445:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$2147_$",
- "typeString": "type(contract WrappedAsset)"
- }
- },
- "id": 1156,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9445:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WrappedAsset_$2147",
- "typeString": "contract WrappedAsset"
- }
- },
- "id": 1157,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "assetAddress",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1445,
- "src": "9445:32:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
- "typeString": "function () view external returns (bytes32)"
- }
- },
- "id": 1158,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9445:34:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "9429:50:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1160,
- "nodeType": "ExpressionStatement",
- "src": "9429:50:1"
- }
- ]
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1291,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1289,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10644:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1290,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10654:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "10644:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "7472756e636174656420616d6f756e74206d757374206e6f742062652030",
- "id": 1292,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "10657:32:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- },
- "value": "truncated amount must not be 0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- }
- ],
- "id": 1288,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "10636:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1293,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10636:54:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1294,
- "nodeType": "ExpressionStatement",
- "src": "10636:54:1"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1296,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1102,
- "src": "10722:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1297,
- "name": "asset_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1119,
- "src": "10736:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1298,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1126,
- "src": "10749:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1299,
- "name": "asset_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1123,
- "src": "10759:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1304,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "10790:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1305,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "10790:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "id": 1303,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10782:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1302,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "10782:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1306,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10782:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1301,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "10774:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes32_$",
- "typeString": "type(bytes32)"
- },
- "typeName": {
- "id": 1300,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "10774:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1307,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10774:28:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1308,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1100,
- "src": "10804:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1309,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1098,
- "src": "10815:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "id": 1310,
- "name": "nonce",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1104,
- "src": "10823:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "id": 1295,
- "name": "LogTokensLocked",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 395,
- "src": "10706:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$",
- "typeString": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)"
- }
- },
- "id": 1311,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10706:123:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1312,
- "nodeType": "EmitStatement",
- "src": "10701:128:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "70713960",
- "id": 1314,
- "implemented": true,
- "kind": "function",
- "modifiers": [
- {
- "arguments": null,
- "id": 1109,
- "modifierName": {
- "argumentTypes": null,
- "id": 1108,
- "name": "nonReentrant",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3657,
- "src": "9044:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_modifier$__$",
- "typeString": "modifier ()"
- }
- },
- "nodeType": "ModifierInvocation",
- "src": "9044:12:1"
- }
- ],
- "name": "lockAssets",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1107,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1096,
- "mutability": "mutable",
- "name": "asset",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8890:13:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1095,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8890:7:1",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1098,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8913:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1097,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "8913:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1100,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8937:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1099,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "8937:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1102,
- "mutability": "mutable",
- "name": "target_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8964:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1101,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "8964:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1104,
- "mutability": "mutable",
- "name": "nonce",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "8992:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 1103,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "8992:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1106,
- "mutability": "mutable",
- "name": "refund_dust",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1314,
- "src": "9014:16:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1105,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "9014:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "8880:156:1"
- },
- "returnParameters": {
- "id": 1110,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "9057:0:1"
- },
- "scope": 1420,
- "src": "8861:1975:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1402,
- "nodeType": "Block",
- "src": "10970:636:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1328,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1326,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1318,
- "src": "10988:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1327,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "11004:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "10988:24:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6d757374206e6f74207472616e7366657220746f207468652073616d6520636861696e",
- "id": 1329,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11014:37:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- },
- "value": "must not transfer to the same chain"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- }
- ],
- "id": 1325,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "10980:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1330,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "10980:72:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1331,
- "nodeType": "ExpressionStatement",
- "src": "10980:72:1"
- },
- {
- "assignments": [1333],
- "declarations": [
- {
- "constant": false,
- "id": 1333,
- "mutability": "mutable",
- "name": "remainder",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1402,
- "src": "11063:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1332,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11063:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1341,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- },
- "id": 1339,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1337,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11097:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1338,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11103:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "11097:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1334,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11083:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1335,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "value",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11083:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1336,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "mod",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2432,
- "src": "11083:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1340,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11083:22:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "11063:42:1"
- },
- {
- "assignments": [1343],
- "declarations": [
- {
- "constant": false,
- "id": 1343,
- "mutability": "mutable",
- "name": "transfer_amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1402,
- "src": "11115:23:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1342,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11115:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1351,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- },
- "id": 1349,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1347,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11155:2:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "nodeType": "BinaryOperation",
- "operator": "**",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1348,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11161:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- "src": "11155:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1344,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11141:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1345,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "value",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11141:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1346,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "div",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2410,
- "src": "11141:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1350,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11141:22:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "11115:48:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1355,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1353,
- "name": "transfer_amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1343,
- "src": "11181:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1354,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11200:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "11181:20:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "7472756e636174656420616d6f756e74206d757374206e6f742062652030",
- "id": 1356,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11203:32:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- },
- "value": "truncated amount must not be 0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- }
- ],
- "id": 1352,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "11173:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1357,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11173:63:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1358,
- "nodeType": "ExpressionStatement",
- "src": "11173:63:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1364,
- "name": "remainder",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1333,
- "src": "11302:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1359,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11282:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1362,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11282:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "id": 1363,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "transfer",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11282:19:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
- "typeString": "function (uint256)"
- }
- },
- "id": 1365,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11282:30:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1366,
- "nodeType": "ExpressionStatement",
- "src": "11282:30:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": [],
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1368,
- "name": "WETHAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 365,
- "src": "11361:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1367,
- "name": "WETH",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1431,
- "src": "11356:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_WETH_$1431_$",
- "typeString": "type(contract WETH)"
- }
- },
- "id": 1369,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11356:17:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_WETH_$1431",
- "typeString": "contract WETH"
- }
- },
- "id": 1370,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "deposit",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1425,
- "src": "11356:25:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_payable$__$returns$__$",
- "typeString": "function () payable external"
- }
- },
- "id": 1375,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "names": ["value"],
- "nodeType": "FunctionCallOptions",
- "options": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1374,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1371,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11390:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1372,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "value",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11390:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1373,
- "name": "remainder",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1333,
- "src": "11402:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "11390:21:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "src": "11356:56:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_payable$__$returns$__$value",
- "typeString": "function () payable external"
- }
- },
- "id": 1376,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11356:58:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1377,
- "nodeType": "ExpressionStatement",
- "src": "11356:58:1"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1379,
- "name": "target_chain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1318,
- "src": "11477:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "id": 1380,
- "name": "CHAIN_ID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 362,
- "src": "11491:8:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "39",
- "id": 1381,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11501:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- "value": "9"
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1386,
- "name": "WETHAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 365,
- "src": "11520:11:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1385,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "11512:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1384,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11512:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1387,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11512:20:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1383,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "11504:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes32_$",
- "typeString": "type(bytes32)"
- },
- "typeName": {
- "id": 1382,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "11504:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1388,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11504:29:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1393,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "11551:3:1",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1394,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "11551:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "id": 1392,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "11543:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1391,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11543:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1395,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11543:19:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1390,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "11535:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes32_$",
- "typeString": "type(bytes32)"
- },
- "typeName": {
- "id": 1389,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "11535:7:1",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1396,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11535:28:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1397,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1316,
- "src": "11565:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "argumentTypes": null,
- "id": 1398,
- "name": "transfer_amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1343,
- "src": "11576:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "id": 1399,
- "name": "nonce",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1320,
- "src": "11593:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "id": 1378,
- "name": "LogTokensLocked",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 395,
- "src": "11461:15:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$",
- "typeString": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)"
- }
- },
- "id": 1400,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11461:138:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1401,
- "nodeType": "EmitStatement",
- "src": "11456:143:1"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "58d62e46",
- "id": 1403,
- "implemented": true,
- "kind": "function",
- "modifiers": [
- {
- "arguments": null,
- "id": 1323,
- "modifierName": {
- "argumentTypes": null,
- "id": 1322,
- "name": "nonReentrant",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3657,
- "src": "10957:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_modifier$__$",
- "typeString": "modifier ()"
- }
- },
- "nodeType": "ModifierInvocation",
- "src": "10957:12:1"
- }
- ],
- "name": "lockETH",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1321,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1316,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1403,
- "src": "10868:17:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1315,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "10868:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1318,
- "mutability": "mutable",
- "name": "target_chain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1403,
- "src": "10895:18:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1317,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "10895:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1320,
- "mutability": "mutable",
- "name": "nonce",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1403,
- "src": "10923:12:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "typeName": {
- "id": 1319,
- "name": "uint32",
- "nodeType": "ElementaryTypeName",
- "src": "10923:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "10858:83:1"
- },
- "returnParameters": {
- "id": 1324,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "10970:0:1"
- },
- "scope": 1420,
- "src": "10842:764:1",
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1410,
- "nodeType": "Block",
- "src": "11640:57:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
- "id": 1407,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11648:46:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- },
- "value": "please use lockETH to transfer ETH to Solana"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- }
- ],
- "id": 1406,
- "name": "revert",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "src": "11641:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (string memory) pure"
- }
- },
- "id": 1408,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11641:54:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1409,
- "nodeType": "ExpressionStatement",
- "src": "11641:54:1"
- }
- ]
- },
- "documentation": null,
- "id": 1411,
- "implemented": true,
- "kind": "fallback",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1404,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11620:2:1"
- },
- "returnParameters": {
- "id": 1405,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11640:0:1"
- },
- "scope": 1420,
- "src": "11612:85:1",
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": {
- "id": 1418,
- "nodeType": "Block",
- "src": "11730:57:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
- "id": 1415,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "11738:46:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- },
- "value": "please use lockETH to transfer ETH to Solana"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- }
- ],
- "id": 1414,
- "name": "revert",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "src": "11731:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (string memory) pure"
- }
- },
- "id": 1416,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "11731:54:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1417,
- "nodeType": "ExpressionStatement",
- "src": "11731:54:1"
- }
- ]
- },
- "documentation": null,
- "id": 1419,
- "implemented": true,
- "kind": "receive",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1412,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11710:2:1"
- },
- "returnParameters": {
- "id": 1413,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11730:0:1"
- },
- "scope": 1420,
- "src": "11703:84:1",
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- }
- ],
- "scope": 1432,
- "src": "463:11326:1"
- },
- {
- "abstract": false,
- "baseContracts": [
- {
- "arguments": null,
- "baseName": {
- "contractScope": null,
- "id": 1421,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "11810:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1422,
- "nodeType": "InheritanceSpecifier",
- "src": "11810:6:1"
- }
- ],
- "contractDependencies": [3086],
- "contractKind": "interface",
- "documentation": null,
- "fullyImplemented": false,
- "id": 1431,
- "linearizedBaseContracts": [1431, 3086],
- "name": "WETH",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": null,
- "documentation": null,
- "functionSelector": "d0e30db0",
- "id": 1425,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "deposit",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1423,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11839:2:1"
- },
- "returnParameters": {
- "id": 1424,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11858:0:1"
- },
- "scope": 1431,
- "src": "11823:36:1",
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": null,
- "functionSelector": "2e1a7d4d",
- "id": 1430,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "withdraw",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1428,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1427,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1430,
- "src": "11883:14:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1426,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "11883:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "11882:16:1"
- },
- "returnParameters": {
- "id": 1429,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "11907:0:1"
- },
- "scope": 1431,
- "src": "11865:43:1",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- }
- ],
- "scope": 1432,
- "src": "11792:118:1"
- }
- ],
- "src": "64:11847:1"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/Wormhole.sol",
- "exportedSymbols": {
- "WETH": [1431],
- "Wormhole": [1420]
- },
- "license": "Apache 2"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", "^", "0.6", ".0"]
- },
- "id": 335,
- "name": "PragmaDirective",
- "src": "64:23:1"
- },
- {
- "attributes": {
- "literals": ["experimental", "ABIEncoderV2"]
- },
- "id": 336,
- "name": "PragmaDirective",
- "src": "88:33:1"
- },
- {
- "attributes": {
- "SourceUnit": 3009,
- "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 337,
- "name": "ImportDirective",
- "src": "123:55:1"
- },
- {
- "attributes": {
- "SourceUnit": 3087,
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 338,
- "name": "ImportDirective",
- "src": "179:56:1"
- },
- {
- "attributes": {
- "SourceUnit": 3300,
- "absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 339,
- "name": "ImportDirective",
- "src": "236:59:1"
- },
- {
- "attributes": {
- "SourceUnit": 2506,
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "@openzeppelin/contracts/math/SafeMath.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 340,
- "name": "ImportDirective",
- "src": "296:51:1"
- },
- {
- "attributes": {
- "SourceUnit": 3659,
- "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 341,
- "name": "ImportDirective",
- "src": "348:59:1"
- },
- {
- "attributes": {
- "SourceUnit": 334,
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/BytesLib.sol",
- "file": "./BytesLib.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 342,
- "name": "ImportDirective",
- "src": "408:24:1"
- },
- {
- "attributes": {
- "SourceUnit": 2148,
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
- "file": "./WrappedAsset.sol",
- "scope": 1432,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 343,
- "name": "ImportDirective",
- "src": "433:28:1"
- },
- {
- "attributes": {
- "abstract": false,
- "contractDependencies": [3658],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "linearizedBaseContracts": [1420, 3658],
- "name": "Wormhole",
- "scope": 1432
- },
- "children": [
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "ReentrancyGuard",
- "referencedDeclaration": 3658,
- "type": "contract ReentrancyGuard"
- },
- "id": 344,
- "name": "UserDefinedTypeName",
- "src": "484:15:1"
- }
- ],
- "id": 345,
- "name": "InheritanceSpecifier",
- "src": "484:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "SafeERC20",
- "referencedDeclaration": 3299,
- "type": "library SafeERC20"
- },
- "id": 346,
- "name": "UserDefinedTypeName",
- "src": "512:9:1"
- },
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 347,
- "name": "UserDefinedTypeName",
- "src": "526:6:1"
- }
- ],
- "id": 348,
- "name": "UsingForDirective",
- "src": "506:27:1"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "BytesLib",
- "referencedDeclaration": 333,
- "type": "library BytesLib"
- },
- "id": 349,
- "name": "UserDefinedTypeName",
- "src": "544:8:1"
- },
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 350,
- "name": "ElementaryTypeName",
- "src": "557:5:1"
- }
- ],
- "id": 351,
- "name": "UsingForDirective",
- "src": "538:25:1"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "SafeMath",
- "referencedDeclaration": 2505,
- "type": "library SafeMath"
- },
- "id": 352,
- "name": "UserDefinedTypeName",
- "src": "574:8:1"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 353,
- "name": "ElementaryTypeName",
- "src": "587:7:1"
- }
- ],
- "id": 354,
- "name": "UsingForDirective",
- "src": "568:27:1"
- },
- {
- "attributes": {
- "constant": true,
- "mutability": "constant",
- "name": "MAX_UINT64",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint64",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint64",
- "type": "uint64"
- },
- "id": 355,
- "name": "ElementaryTypeName",
- "src": "601:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31385f3434365f3734345f3037335f3730395f3535315f363135",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 18446744073709551615",
- "value": "18_446_744_073_709_551_615"
- },
- "id": 356,
- "name": "Literal",
- "src": "630:26:1"
- }
- ],
- "id": 357,
- "name": "VariableDeclaration",
- "src": "601:55:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "99da1d3c",
- "mutability": "mutable",
- "name": "wrappedAssetMaster",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 358,
- "name": "ElementaryTypeName",
- "src": "708:7:1"
- }
- ],
- "id": 359,
- "name": "VariableDeclaration",
- "src": "708:33:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "CHAIN_ID",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint8",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 360,
- "name": "ElementaryTypeName",
- "src": "776:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 361,
- "name": "Literal",
- "src": "793:1:1"
- }
- ],
- "id": 362,
- "name": "VariableDeclaration",
- "src": "776:18:1"
- },
- {
- "attributes": {
- "constant": true,
- "mutability": "constant",
- "name": "WETHAddress",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 363,
- "name": "ElementaryTypeName",
- "src": "846:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "address payable",
- "value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
- },
- "id": 364,
- "name": "Literal",
- "src": "877:42:1"
- }
- ],
- "id": 365,
- "name": "VariableDeclaration",
- "src": "846:73:1"
- },
- {
- "attributes": {
- "canonicalName": "Wormhole.GuardianSet",
- "name": "GuardianSet",
- "scope": 1420,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "keys",
- "overrides": null,
- "scope": 371,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address[]",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "length": null,
- "type": "address[]"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 366,
- "name": "ElementaryTypeName",
- "src": "955:7:1"
- }
- ],
- "id": 367,
- "name": "ArrayTypeName",
- "src": "955:9:1"
- }
- ],
- "id": 368,
- "name": "VariableDeclaration",
- "src": "955:14:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "expiration_time",
- "overrides": null,
- "scope": 371,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 369,
- "name": "ElementaryTypeName",
- "src": "979:6:1"
- }
- ],
- "id": 370,
- "name": "VariableDeclaration",
- "src": "979:22:1"
- }
- ],
- "id": 371,
- "name": "StructDefinition",
- "src": "926:82:1"
- },
- {
- "attributes": {
- "anonymous": false,
- "documentation": null,
- "name": "LogGuardianSetChanged"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "oldGuardianIndex",
- "overrides": null,
- "scope": 377,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 372,
- "name": "ElementaryTypeName",
- "src": "1051:6:1"
- }
- ],
- "id": 373,
- "name": "VariableDeclaration",
- "src": "1051:23:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "newGuardianIndex",
- "overrides": null,
- "scope": 377,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 374,
- "name": "ElementaryTypeName",
- "src": "1084:6:1"
- }
- ],
- "id": 375,
- "name": "VariableDeclaration",
- "src": "1084:23:1"
- }
- ],
- "id": 376,
- "name": "ParameterList",
- "src": "1041:72:1"
- }
- ],
- "id": 377,
- "name": "EventDefinition",
- "src": "1014:100:1"
- },
- {
- "attributes": {
- "anonymous": false,
- "documentation": null,
- "name": "LogTokensLocked"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "target_chain",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 378,
- "name": "ElementaryTypeName",
- "src": "1151:5:1"
- }
- ],
- "id": 379,
- "name": "VariableDeclaration",
- "src": "1151:18:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "token_chain",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 380,
- "name": "ElementaryTypeName",
- "src": "1179:5:1"
- }
- ],
- "id": 381,
- "name": "VariableDeclaration",
- "src": "1179:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "token_decimals",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 382,
- "name": "ElementaryTypeName",
- "src": "1206:5:1"
- }
- ],
- "id": 383,
- "name": "VariableDeclaration",
- "src": "1206:20:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "token",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 384,
- "name": "ElementaryTypeName",
- "src": "1236:7:1"
- }
- ],
- "id": 385,
- "name": "VariableDeclaration",
- "src": "1236:21:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "sender",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 386,
- "name": "ElementaryTypeName",
- "src": "1267:7:1"
- }
- ],
- "id": 387,
- "name": "VariableDeclaration",
- "src": "1267:22:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 388,
- "name": "ElementaryTypeName",
- "src": "1299:7:1"
- }
- ],
- "id": 389,
- "name": "VariableDeclaration",
- "src": "1299:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 390,
- "name": "ElementaryTypeName",
- "src": "1326:7:1"
- }
- ],
- "id": 391,
- "name": "VariableDeclaration",
- "src": "1326:14:1"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "nonce",
- "overrides": null,
- "scope": 395,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 392,
- "name": "ElementaryTypeName",
- "src": "1350:6:1"
- }
- ],
- "id": 393,
- "name": "VariableDeclaration",
- "src": "1350:12:1"
- }
- ],
- "id": 394,
- "name": "ParameterList",
- "src": "1141:227:1"
- }
- ],
- "id": 395,
- "name": "EventDefinition",
- "src": "1120:249:1"
- },
- {
- "attributes": {
- "canonicalName": "Wormhole.ParsedVAA",
- "name": "ParsedVAA",
- "scope": 1420,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "version",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 396,
- "name": "ElementaryTypeName",
- "src": "1402:5:1"
- }
- ],
- "id": 397,
- "name": "VariableDeclaration",
- "src": "1402:13:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "hash",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 398,
- "name": "ElementaryTypeName",
- "src": "1425:7:1"
- }
- ],
- "id": 399,
- "name": "VariableDeclaration",
- "src": "1425:12:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "guardian_set_index",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 400,
- "name": "ElementaryTypeName",
- "src": "1447:6:1"
- }
- ],
- "id": 401,
- "name": "VariableDeclaration",
- "src": "1447:25:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "timestamp",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 402,
- "name": "ElementaryTypeName",
- "src": "1482:6:1"
- }
- ],
- "id": 403,
- "name": "VariableDeclaration",
- "src": "1482:16:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "action",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 404,
- "name": "ElementaryTypeName",
- "src": "1508:5:1"
- }
- ],
- "id": 405,
- "name": "VariableDeclaration",
- "src": "1508:12:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "payload",
- "overrides": null,
- "scope": 408,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 406,
- "name": "ElementaryTypeName",
- "src": "1530:5:1"
- }
- ],
- "id": 407,
- "name": "VariableDeclaration",
- "src": "1530:13:1"
- }
- ],
- "id": 408,
- "name": "StructDefinition",
- "src": "1375:175:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "42b0aefa",
- "mutability": "mutable",
- "name": "guardian_sets",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(uint32 => struct Wormhole.GuardianSet)",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(uint32 => struct Wormhole.GuardianSet)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 409,
- "name": "ElementaryTypeName",
- "src": "1617:6:1"
- },
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 410,
- "name": "UserDefinedTypeName",
- "src": "1627:11:1"
- }
- ],
- "id": 411,
- "name": "Mapping",
- "src": "1609:30:1"
- }
- ],
- "id": 412,
- "name": "VariableDeclaration",
- "src": "1609:51:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "822d82b3",
- "mutability": "mutable",
- "name": "guardian_set_index",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 413,
- "name": "ElementaryTypeName",
- "src": "1701:6:1"
- }
- ],
- "id": 414,
- "name": "VariableDeclaration",
- "src": "1701:32:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "4db47840",
- "mutability": "mutable",
- "name": "guardian_set_expirity",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 415,
- "name": "ElementaryTypeName",
- "src": "1819:6:1"
- }
- ],
- "id": 416,
- "name": "VariableDeclaration",
- "src": "1819:35:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "a31fe409",
- "mutability": "mutable",
- "name": "consumedVAAs",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(bytes32 => bool)",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(bytes32 => bool)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 417,
- "name": "ElementaryTypeName",
- "src": "1908:7:1"
- },
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 418,
- "name": "ElementaryTypeName",
- "src": "1919:4:1"
- }
- ],
- "id": 419,
- "name": "Mapping",
- "src": "1900:24:1"
- }
- ],
- "id": 420,
- "name": "VariableDeclaration",
- "src": "1900:44:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "b6694c2a",
- "mutability": "mutable",
- "name": "wrappedAssets",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(bytes32 => address)",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(bytes32 => address)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 421,
- "name": "ElementaryTypeName",
- "src": "2007:7:1"
- },
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 422,
- "name": "ElementaryTypeName",
- "src": "2018:7:1"
- }
- ],
- "id": 423,
- "name": "Mapping",
- "src": "1999:27:1"
- }
- ],
- "id": 424,
- "name": "VariableDeclaration",
- "src": "1999:48:1"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "1a2be4da",
- "mutability": "mutable",
- "name": "isWrappedAsset",
- "overrides": null,
- "scope": 1420,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(address => bool)",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(address => bool)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 425,
- "name": "ElementaryTypeName",
- "src": "2061:7:1"
- },
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 426,
- "name": "ElementaryTypeName",
- "src": "2072:4:1"
- }
- ],
- "id": 427,
- "name": "Mapping",
- "src": "2053:24:1"
- }
- ],
- "id": 428,
- "name": "VariableDeclaration",
- "src": "2053:46:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": true,
- "kind": "constructor",
- "modifiers": [null],
- "name": "",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "initial_guardian_set",
- "overrides": null,
- "scope": 456,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.GuardianSet",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 429,
- "name": "UserDefinedTypeName",
- "src": "2118:11:1"
- }
- ],
- "id": 430,
- "name": "VariableDeclaration",
- "src": "2118:39:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "wrapped_asset_master",
- "overrides": null,
- "scope": 456,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 431,
- "name": "ElementaryTypeName",
- "src": "2159:7:1"
- }
- ],
- "id": 432,
- "name": "VariableDeclaration",
- "src": "2159:28:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_guardian_set_expirity",
- "overrides": null,
- "scope": 456,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 433,
- "name": "ElementaryTypeName",
- "src": "2189:6:1"
- }
- ],
- "id": 434,
- "name": "VariableDeclaration",
- "src": "2189:29:1"
- }
- ],
- "id": 435,
- "name": "ParameterList",
- "src": "2117:102:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 436,
- "name": "ParameterList",
- "src": "2227:0:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 437,
- "name": "Identifier",
- "src": "2237:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 438,
- "name": "Literal",
- "src": "2251:1:1"
- }
- ],
- "id": 439,
- "name": "IndexAccess",
- "src": "2237:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 430,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "initial_guardian_set"
- },
- "id": 440,
- "name": "Identifier",
- "src": "2256:20:1"
- }
- ],
- "id": 441,
- "name": "Assignment",
- "src": "2237:39:1"
- }
- ],
- "id": 442,
- "name": "ExpressionStatement",
- "src": "2237:39:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 443,
- "name": "Identifier",
- "src": "2329:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 444,
- "name": "Literal",
- "src": "2350:1:1"
- }
- ],
- "id": 445,
- "name": "Assignment",
- "src": "2329:22:1"
- }
- ],
- "id": 446,
- "name": "ExpressionStatement",
- "src": "2329:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 416,
- "type": "uint32",
- "value": "guardian_set_expirity"
- },
- "id": 447,
- "name": "Identifier",
- "src": "2361:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 434,
- "type": "uint32",
- "value": "_guardian_set_expirity"
- },
- "id": 448,
- "name": "Identifier",
- "src": "2385:22:1"
- }
- ],
- "id": 449,
- "name": "Assignment",
- "src": "2361:46:1"
- }
- ],
- "id": 450,
- "name": "ExpressionStatement",
- "src": "2361:46:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 359,
- "type": "address",
- "value": "wrappedAssetMaster"
- },
- "id": 451,
- "name": "Identifier",
- "src": "2418:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 432,
- "type": "address",
- "value": "wrapped_asset_master"
- },
- "id": 452,
- "name": "Identifier",
- "src": "2439:20:1"
- }
- ],
- "id": 453,
- "name": "Assignment",
- "src": "2418:41:1"
- }
- ],
- "id": 454,
- "name": "ExpressionStatement",
- "src": "2418:41:1"
- }
- ],
- "id": 455,
- "name": "Block",
- "src": "2227:239:1"
- }
- ],
- "id": 456,
- "name": "FunctionDefinition",
- "src": "2106:360:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "f951975a",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "getGuardianSet",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "idx",
- "overrides": null,
- "scope": 468,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 457,
- "name": "ElementaryTypeName",
- "src": "2496:6:1"
- }
- ],
- "id": 458,
- "name": "VariableDeclaration",
- "src": "2496:10:1"
- }
- ],
- "id": 459,
- "name": "ParameterList",
- "src": "2495:12:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "gs",
- "overrides": null,
- "scope": 468,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.GuardianSet",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 460,
- "name": "UserDefinedTypeName",
- "src": "2529:11:1"
- }
- ],
- "id": 461,
- "name": "VariableDeclaration",
- "src": "2529:21:1"
- }
- ],
- "id": 462,
- "name": "ParameterList",
- "src": "2528:23:1"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 462
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 463,
- "name": "Identifier",
- "src": "2569:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 458,
- "type": "uint32",
- "value": "idx"
- },
- "id": 464,
- "name": "Identifier",
- "src": "2583:3:1"
- }
- ],
- "id": 465,
- "name": "IndexAccess",
- "src": "2569:18:1"
- }
- ],
- "id": 466,
- "name": "Return",
- "src": "2562:25:1"
- }
- ],
- "id": 467,
- "name": "Block",
- "src": "2552:42:1"
- }
- ],
- "id": 468,
- "name": "FunctionDefinition",
- "src": "2472:122:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "3bc0aee6",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "name": "submitVAA",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "vaa",
- "overrides": null,
- "scope": 524,
- "stateVariable": false,
- "storageLocation": "calldata",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 469,
- "name": "ElementaryTypeName",
- "src": "2628:5:1"
- }
- ],
- "id": 470,
- "name": "VariableDeclaration",
- "src": "2628:18:1"
- }
- ],
- "id": 471,
- "name": "ParameterList",
- "src": "2618:34:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 474,
- "name": "ParameterList",
- "src": "2673:0:1"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3657,
- "type": "modifier ()",
- "value": "nonReentrant"
- },
- "id": 472,
- "name": "Identifier",
- "src": "2660:12:1"
- }
- ],
- "id": 473,
- "name": "ModifierInvocation",
- "src": "2660:12:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [476]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "parsed_vaa",
- "overrides": null,
- "scope": 523,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.ParsedVAA",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "ParsedVAA",
- "referencedDeclaration": 408,
- "type": "struct Wormhole.ParsedVAA"
- },
- "id": 475,
- "name": "UserDefinedTypeName",
- "src": "2683:9:1"
- }
- ],
- "id": 476,
- "name": "VariableDeclaration",
- "src": "2683:27:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "struct Wormhole.ParsedVAA memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 781,
- "type": "function (bytes calldata) view returns (struct Wormhole.ParsedVAA memory)",
- "value": "parseAndVerifyVAA"
- },
- "id": 477,
- "name": "Identifier",
- "src": "2713:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 470,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 478,
- "name": "Identifier",
- "src": "2731:3:1"
- }
- ],
- "id": 479,
- "name": "FunctionCall",
- "src": "2713:22:1"
- }
- ],
- "id": 480,
- "name": "VariableDeclarationStatement",
- "src": "2683:52:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "action",
- "referencedDeclaration": 405,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 481,
- "name": "Identifier",
- "src": "2772:10:1"
- }
- ],
- "id": 482,
- "name": "MemberAccess",
- "src": "2772:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30783031",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "0x01"
- },
- "id": 483,
- "name": "Literal",
- "src": "2793:4:1"
- }
- ],
- "id": 484,
- "name": "BinaryOperation",
- "src": "2772:25:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
- "typeString": "literal_string \"only the current guardian set can change the guardian set\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 485,
- "name": "Identifier",
- "src": "2813:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "guardian_set_index",
- "referencedDeclaration": 401,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 486,
- "name": "Identifier",
- "src": "2821:10:1"
- }
- ],
- "id": 487,
- "name": "MemberAccess",
- "src": "2821:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 488,
- "name": "Identifier",
- "src": "2854:18:1"
- }
- ],
- "id": 489,
- "name": "BinaryOperation",
- "src": "2821:51:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"only the current guardian set can change the guardian set\"",
- "value": "only the current guardian set can change the guardian set"
- },
- "id": 490,
- "name": "Literal",
- "src": "2874:59:1"
- }
- ],
- "id": 491,
- "name": "FunctionCall",
- "src": "2813:121:1"
- }
- ],
- "id": 492,
- "name": "ExpressionStatement",
- "src": "2813:121:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 889,
- "type": "function (bytes memory)",
- "value": "vaaUpdateGuardianSet"
- },
- "id": 493,
- "name": "Identifier",
- "src": "2948:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "payload",
- "referencedDeclaration": 407,
- "type": "bytes memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 494,
- "name": "Identifier",
- "src": "2969:10:1"
- }
- ],
- "id": 495,
- "name": "MemberAccess",
- "src": "2969:18:1"
- }
- ],
- "id": 496,
- "name": "FunctionCall",
- "src": "2948:40:1"
- }
- ],
- "id": 497,
- "name": "ExpressionStatement",
- "src": "2948:40:1"
- }
- ],
- "id": 498,
- "name": "Block",
- "src": "2799:200:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "action",
- "referencedDeclaration": 405,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 499,
- "name": "Identifier",
- "src": "3009:10:1"
- }
- ],
- "id": 500,
- "name": "MemberAccess",
- "src": "3009:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30783130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 16",
- "value": "0x10"
- },
- "id": 501,
- "name": "Literal",
- "src": "3030:4:1"
- }
- ],
- "id": 502,
- "name": "BinaryOperation",
- "src": "3009:25:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1051,
- "type": "function (bytes memory)",
- "value": "vaaTransfer"
- },
- "id": 503,
- "name": "Identifier",
- "src": "3050:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "payload",
- "referencedDeclaration": 407,
- "type": "bytes memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 504,
- "name": "Identifier",
- "src": "3062:10:1"
- }
- ],
- "id": 505,
- "name": "MemberAccess",
- "src": "3062:18:1"
- }
- ],
- "id": 506,
- "name": "FunctionCall",
- "src": "3050:31:1"
- }
- ],
- "id": 507,
- "name": "ExpressionStatement",
- "src": "3050:31:1"
- }
- ],
- "id": 508,
- "name": "Block",
- "src": "3036:56:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
- "typeString": "literal_string \"invalid VAA action\""
- }
- ],
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "type": "function (string memory) pure",
- "value": "revert"
- },
- "id": 509,
- "name": "Identifier",
- "src": "3112:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "696e76616c69642056414120616374696f6e",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"invalid VAA action\"",
- "value": "invalid VAA action"
- },
- "id": 510,
- "name": "Literal",
- "src": "3119:20:1"
- }
- ],
- "id": 511,
- "name": "FunctionCall",
- "src": "3112:28:1"
- }
- ],
- "id": 512,
- "name": "ExpressionStatement",
- "src": "3112:28:1"
- }
- ],
- "id": 513,
- "name": "Block",
- "src": "3098:53:1"
- }
- ],
- "id": 514,
- "name": "IfStatement",
- "src": "3005:146:1"
- }
- ],
- "id": 515,
- "name": "IfStatement",
- "src": "2768:383:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 420,
- "type": "mapping(bytes32 => bool)",
- "value": "consumedVAAs"
- },
- "id": 516,
- "name": "Identifier",
- "src": "3196:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "hash",
- "referencedDeclaration": 399,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 476,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 517,
- "name": "Identifier",
- "src": "3209:10:1"
- }
- ],
- "id": 518,
- "name": "MemberAccess",
- "src": "3209:15:1"
- }
- ],
- "id": 519,
- "name": "IndexAccess",
- "src": "3196:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 520,
- "name": "Literal",
- "src": "3228:4:1"
- }
- ],
- "id": 521,
- "name": "Assignment",
- "src": "3196:36:1"
- }
- ],
- "id": 522,
- "name": "ExpressionStatement",
- "src": "3196:36:1"
- }
- ],
- "id": 523,
- "name": "Block",
- "src": "2673:566:1"
- }
- ],
- "id": 524,
- "name": "FunctionDefinition",
- "src": "2600:639:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "600b9aa6",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "parseAndVerifyVAA",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "vaa",
- "overrides": null,
- "scope": 781,
- "stateVariable": false,
- "storageLocation": "calldata",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 525,
- "name": "ElementaryTypeName",
- "src": "3472:5:1"
- }
- ],
- "id": 526,
- "name": "VariableDeclaration",
- "src": "3472:18:1"
- }
- ],
- "id": 527,
- "name": "ParameterList",
- "src": "3471:20:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "parsed_vaa",
- "overrides": null,
- "scope": 781,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.ParsedVAA",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "ParsedVAA",
- "referencedDeclaration": 408,
- "type": "struct Wormhole.ParsedVAA"
- },
- "id": 528,
- "name": "UserDefinedTypeName",
- "src": "3513:9:1"
- }
- ],
- "id": 529,
- "name": "VariableDeclaration",
- "src": "3513:27:1"
- }
- ],
- "id": 530,
- "name": "ParameterList",
- "src": "3512:29:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "version",
- "referencedDeclaration": 397,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 531,
- "name": "Identifier",
- "src": "3552:10:1"
- }
- ],
- "id": 533,
- "name": "MemberAccess",
- "src": "3552:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 534,
- "name": "Identifier",
- "src": "3573:3:1"
- }
- ],
- "id": 535,
- "name": "MemberAccess",
- "src": "3573:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 536,
- "name": "Literal",
- "src": "3585:1:1"
- }
- ],
- "id": 537,
- "name": "FunctionCall",
- "src": "3573:14:1"
- }
- ],
- "id": 538,
- "name": "Assignment",
- "src": "3552:35:1"
- }
- ],
- "id": 539,
- "name": "ExpressionStatement",
- "src": "3552:35:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
- "typeString": "literal_string \"VAA version incompatible\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 540,
- "name": "Identifier",
- "src": "3597:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "version",
- "referencedDeclaration": 397,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 541,
- "name": "Identifier",
- "src": "3605:10:1"
- }
- ],
- "id": 542,
- "name": "MemberAccess",
- "src": "3605:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 543,
- "name": "Literal",
- "src": "3627:1:1"
- }
- ],
- "id": 544,
- "name": "BinaryOperation",
- "src": "3605:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "5641412076657273696f6e20696e636f6d70617469626c65",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"VAA version incompatible\"",
- "value": "VAA version incompatible"
- },
- "id": 545,
- "name": "Literal",
- "src": "3630:26:1"
- }
- ],
- "id": 546,
- "name": "FunctionCall",
- "src": "3597:60:1"
- }
- ],
- "id": 547,
- "name": "ExpressionStatement",
- "src": "3597:60:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "guardian_set_index",
- "referencedDeclaration": 401,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 548,
- "name": "Identifier",
- "src": "3714:10:1"
- }
- ],
- "id": 550,
- "name": "MemberAccess",
- "src": "3714:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint32",
- "referencedDeclaration": 163,
- "type": "function (bytes memory,uint256) pure returns (uint32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 551,
- "name": "Identifier",
- "src": "3746:3:1"
- }
- ],
- "id": 552,
- "name": "MemberAccess",
- "src": "3746:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 553,
- "name": "Literal",
- "src": "3759:1:1"
- }
- ],
- "id": 554,
- "name": "FunctionCall",
- "src": "3746:15:1"
- }
- ],
- "id": 555,
- "name": "Assignment",
- "src": "3714:47:1"
- }
- ],
- "id": 556,
- "name": "ExpressionStatement",
- "src": "3714:47:1"
- },
- {
- "attributes": {
- "assignments": [558]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "len_signers",
- "overrides": null,
- "scope": 780,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 557,
- "name": "ElementaryTypeName",
- "src": "3772:7:1"
- }
- ],
- "id": 558,
- "name": "VariableDeclaration",
- "src": "3772:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 559,
- "name": "Identifier",
- "src": "3794:3:1"
- }
- ],
- "id": 560,
- "name": "MemberAccess",
- "src": "3794:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 561,
- "name": "Literal",
- "src": "3806:1:1"
- }
- ],
- "id": 562,
- "name": "FunctionCall",
- "src": "3794:14:1"
- }
- ],
- "id": 563,
- "name": "VariableDeclarationStatement",
- "src": "3772:36:1"
- },
- {
- "attributes": {
- "assignments": [565]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "offset",
- "overrides": null,
- "scope": 780,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 564,
- "name": "ElementaryTypeName",
- "src": "3818:4:1"
- }
- ],
- "id": 565,
- "name": "VariableDeclaration",
- "src": "3818:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "36",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 6",
- "value": "6"
- },
- "id": 566,
- "name": "Literal",
- "src": "3832:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 567,
- "name": "Literal",
- "src": "3836:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 558,
- "type": "uint256",
- "value": "len_signers"
- },
- "id": 568,
- "name": "Identifier",
- "src": "3841:11:1"
- }
- ],
- "id": 569,
- "name": "BinaryOperation",
- "src": "3836:16:1"
- }
- ],
- "id": 570,
- "name": "BinaryOperation",
- "src": "3832:20:1"
- }
- ],
- "id": 571,
- "name": "VariableDeclarationStatement",
- "src": "3818:34:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "timestamp",
- "referencedDeclaration": 403,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 572,
- "name": "Identifier",
- "src": "3897:10:1"
- }
- ],
- "id": 574,
- "name": "MemberAccess",
- "src": "3897:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint32",
- "referencedDeclaration": 163,
- "type": "function (bytes memory,uint256) pure returns (uint32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 575,
- "name": "Identifier",
- "src": "3920:3:1"
- }
- ],
- "id": 576,
- "name": "MemberAccess",
- "src": "3920:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 577,
- "name": "Identifier",
- "src": "3933:6:1"
- }
- ],
- "id": 578,
- "name": "FunctionCall",
- "src": "3920:20:1"
- }
- ],
- "id": 579,
- "name": "Assignment",
- "src": "3897:43:1"
- }
- ],
- "id": 580,
- "name": "ExpressionStatement",
- "src": "3897:43:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "hash",
- "referencedDeclaration": 399,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 581,
- "name": "Identifier",
- "src": "3976:10:1"
- }
- ],
- "id": 583,
- "name": "MemberAccess",
- "src": "3976:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": -8,
- "type": "function (bytes memory) pure returns (bytes32)",
- "value": "keccak256"
- },
- "id": 584,
- "name": "Identifier",
- "src": "3994:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "slice",
- "referencedDeclaration": 55,
- "type": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 585,
- "name": "Identifier",
- "src": "4004:3:1"
- }
- ],
- "id": 586,
- "name": "MemberAccess",
- "src": "4004:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 587,
- "name": "Identifier",
- "src": "4014:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 588,
- "name": "Identifier",
- "src": "4022:3:1"
- }
- ],
- "id": 589,
- "name": "MemberAccess",
- "src": "4022:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 590,
- "name": "Identifier",
- "src": "4035:6:1"
- }
- ],
- "id": 591,
- "name": "BinaryOperation",
- "src": "4022:19:1"
- }
- ],
- "id": 592,
- "name": "FunctionCall",
- "src": "4004:38:1"
- }
- ],
- "id": 593,
- "name": "FunctionCall",
- "src": "3994:49:1"
- }
- ],
- "id": 594,
- "name": "Assignment",
- "src": "3976:67:1"
- }
- ],
- "id": 595,
- "name": "ExpressionStatement",
- "src": "3976:67:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
- "typeString": "literal_string \"VAA was already executed\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 596,
- "name": "Identifier",
- "src": "4053:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!",
- "prefix": true,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 420,
- "type": "mapping(bytes32 => bool)",
- "value": "consumedVAAs"
- },
- "id": 597,
- "name": "Identifier",
- "src": "4062:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "hash",
- "referencedDeclaration": 399,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 598,
- "name": "Identifier",
- "src": "4075:10:1"
- }
- ],
- "id": 599,
- "name": "MemberAccess",
- "src": "4075:15:1"
- }
- ],
- "id": 600,
- "name": "IndexAccess",
- "src": "4062:29:1"
- }
- ],
- "id": 601,
- "name": "UnaryOperation",
- "src": "4061:30:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "5641412077617320616c7265616479206578656375746564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"VAA was already executed\"",
- "value": "VAA was already executed"
- },
- "id": 602,
- "name": "Literal",
- "src": "4093:26:1"
- }
- ],
- "id": 603,
- "name": "FunctionCall",
- "src": "4053:67:1"
- }
- ],
- "id": 604,
- "name": "ExpressionStatement",
- "src": "4053:67:1"
- },
- {
- "attributes": {
- "assignments": [606]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "guardian_set",
- "overrides": null,
- "scope": 780,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.GuardianSet",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 605,
- "name": "UserDefinedTypeName",
- "src": "4131:11:1"
- }
- ],
- "id": 606,
- "name": "VariableDeclaration",
- "src": "4131:31:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 607,
- "name": "Identifier",
- "src": "4165:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "guardian_set_index",
- "referencedDeclaration": 401,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 608,
- "name": "Identifier",
- "src": "4179:10:1"
- }
- ],
- "id": 609,
- "name": "MemberAccess",
- "src": "4179:29:1"
- }
- ],
- "id": 610,
- "name": "IndexAccess",
- "src": "4165:44:1"
- }
- ],
- "id": 611,
- "name": "VariableDeclarationStatement",
- "src": "4131:78:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_ef4d0f2354b2279f26c4ba4477a0c338dcdd31fbb9caa6ef52ec7856b55556f3",
- "typeString": "literal_string \"invalid guardian set\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 612,
- "name": "Identifier",
- "src": "4219:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "keys",
- "referencedDeclaration": 368,
- "type": "address[] memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 613,
- "name": "Identifier",
- "src": "4227:12:1"
- }
- ],
- "id": 614,
- "name": "MemberAccess",
- "src": "4227:17:1"
- }
- ],
- "id": 615,
- "name": "MemberAccess",
- "src": "4227:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 616,
- "name": "Literal",
- "src": "4254:1:1"
- }
- ],
- "id": 617,
- "name": "BinaryOperation",
- "src": "4227:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "696e76616c696420677561726469616e20736574",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"invalid guardian set\"",
- "value": "invalid guardian set"
- },
- "id": 618,
- "name": "Literal",
- "src": "4257:22:1"
- }
- ],
- "id": 619,
- "name": "FunctionCall",
- "src": "4219:61:1"
- }
- ],
- "id": 620,
- "name": "ExpressionStatement",
- "src": "4219:61:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
- "typeString": "literal_string \"guardian set has expired\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 621,
- "name": "Identifier",
- "src": "4290:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "||",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "expiration_time",
- "referencedDeclaration": 370,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 622,
- "name": "Identifier",
- "src": "4298:12:1"
- }
- ],
- "id": 623,
- "name": "MemberAccess",
- "src": "4298:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 624,
- "name": "Literal",
- "src": "4330:1:1"
- }
- ],
- "id": 625,
- "name": "BinaryOperation",
- "src": "4298:33:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "expiration_time",
- "referencedDeclaration": 370,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 626,
- "name": "Identifier",
- "src": "4335:12:1"
- }
- ],
- "id": 627,
- "name": "MemberAccess",
- "src": "4335:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "timestamp",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -4,
- "type": "block",
- "value": "block"
- },
- "id": 628,
- "name": "Identifier",
- "src": "4366:5:1"
- }
- ],
- "id": 629,
- "name": "MemberAccess",
- "src": "4366:15:1"
- }
- ],
- "id": 630,
- "name": "BinaryOperation",
- "src": "4335:46:1"
- }
- ],
- "id": 631,
- "name": "BinaryOperation",
- "src": "4298:83:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "677561726469616e20736574206861732065787069726564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"guardian set has expired\"",
- "value": "guardian set has expired"
- },
- "id": 632,
- "name": "Literal",
- "src": "4383:26:1"
- }
- ],
- "id": 633,
- "name": "FunctionCall",
- "src": "4290:120:1"
- }
- ],
- "id": 634,
- "name": "ExpressionStatement",
- "src": "4290:120:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
- "typeString": "literal_string \"no quorum\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 635,
- "name": "Identifier",
- "src": "4517:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "keys",
- "referencedDeclaration": 368,
- "type": "address[] memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 636,
- "name": "Identifier",
- "src": "4527:12:1"
- }
- ],
- "id": 637,
- "name": "MemberAccess",
- "src": "4527:17:1"
- }
- ],
- "id": 638,
- "name": "MemberAccess",
- "src": "4527:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 639,
- "name": "Literal",
- "src": "4554:2:1"
- }
- ],
- "id": 640,
- "name": "BinaryOperation",
- "src": "4527:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "33",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 3",
- "value": "3"
- },
- "id": 641,
- "name": "Literal",
- "src": "4559:1:1"
- }
- ],
- "id": 642,
- "name": "BinaryOperation",
- "src": "4527:33:1"
- }
- ],
- "id": 643,
- "name": "TupleExpression",
- "src": "4526:35:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 644,
- "name": "Literal",
- "src": "4564:1:1"
- }
- ],
- "id": 645,
- "name": "BinaryOperation",
- "src": "4526:39:1"
- }
- ],
- "id": 646,
- "name": "TupleExpression",
- "src": "4525:41:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 647,
- "name": "Literal",
- "src": "4569:2:1"
- }
- ],
- "id": 648,
- "name": "BinaryOperation",
- "src": "4525:46:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 649,
- "name": "Literal",
- "src": "4574:1:1"
- }
- ],
- "id": 650,
- "name": "BinaryOperation",
- "src": "4525:50:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 558,
- "type": "uint256",
- "value": "len_signers"
- },
- "id": 651,
- "name": "Identifier",
- "src": "4579:11:1"
- }
- ],
- "id": 652,
- "name": "BinaryOperation",
- "src": "4525:65:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6e6f2071756f72756d",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"no quorum\"",
- "value": "no quorum"
- },
- "id": 653,
- "name": "Literal",
- "src": "4592:11:1"
- }
- ],
- "id": 654,
- "name": "FunctionCall",
- "src": "4517:87:1"
- }
- ],
- "id": 655,
- "name": "ExpressionStatement",
- "src": "4517:87:1"
- },
- {
- "attributes": {
- "assignments": [657]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "last_index",
- "overrides": null,
- "scope": 780,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "int16",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "int16",
- "type": "int16"
- },
- "id": 656,
- "name": "ElementaryTypeName",
- "src": "4615:5:1"
- }
- ],
- "id": 657,
- "name": "VariableDeclaration",
- "src": "4615:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "-",
- "prefix": true,
- "type": "int_const -1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 658,
- "name": "Literal",
- "src": "4636:1:1"
- }
- ],
- "id": 659,
- "name": "UnaryOperation",
- "src": "4634:3:1"
- }
- ],
- "id": 660,
- "name": "VariableDeclarationStatement",
- "src": "4615:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [662]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "i",
- "overrides": null,
- "scope": 750,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 661,
- "name": "ElementaryTypeName",
- "src": "4652:4:1"
- }
- ],
- "id": 662,
- "name": "VariableDeclaration",
- "src": "4652:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 663,
- "name": "Literal",
- "src": "4661:1:1"
- }
- ],
- "id": 664,
- "name": "VariableDeclarationStatement",
- "src": "4652:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 665,
- "name": "Identifier",
- "src": "4664:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 558,
- "type": "uint256",
- "value": "len_signers"
- },
- "id": 666,
- "name": "Identifier",
- "src": "4668:11:1"
- }
- ],
- "id": 667,
- "name": "BinaryOperation",
- "src": "4664:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "++",
- "prefix": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 668,
- "name": "Identifier",
- "src": "4681:1:1"
- }
- ],
- "id": 669,
- "name": "UnaryOperation",
- "src": "4681:3:1"
- }
- ],
- "id": 670,
- "name": "ExpressionStatement",
- "src": "4681:3:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [672]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "index",
- "overrides": null,
- "scope": 749,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 671,
- "name": "ElementaryTypeName",
- "src": "4700:5:1"
- }
- ],
- "id": 672,
- "name": "VariableDeclaration",
- "src": "4700:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 673,
- "name": "Identifier",
- "src": "4714:3:1"
- }
- ],
- "id": 674,
- "name": "MemberAccess",
- "src": "4714:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "36",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 6",
- "value": "6"
- },
- "id": 675,
- "name": "Literal",
- "src": "4726:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 676,
- "name": "Identifier",
- "src": "4730:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 677,
- "name": "Literal",
- "src": "4734:2:1"
- }
- ],
- "id": 678,
- "name": "BinaryOperation",
- "src": "4730:6:1"
- }
- ],
- "id": 679,
- "name": "BinaryOperation",
- "src": "4726:10:1"
- }
- ],
- "id": 680,
- "name": "FunctionCall",
- "src": "4714:23:1"
- }
- ],
- "id": 681,
- "name": "VariableDeclarationStatement",
- "src": "4700:37:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_de9ff8e5647eeed7691d313f96ed0065761ad2da429d76b3b7868b564890def8",
- "typeString": "literal_string \"signature indices must be ascending\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 682,
- "name": "Identifier",
- "src": "4751:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_int16",
- "typeString": "int16"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 672,
- "type": "uint8",
- "value": "index"
- },
- "id": 683,
- "name": "Identifier",
- "src": "4759:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 657,
- "type": "int16",
- "value": "last_index"
- },
- "id": 684,
- "name": "Identifier",
- "src": "4767:10:1"
- }
- ],
- "id": 685,
- "name": "BinaryOperation",
- "src": "4759:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "7369676e617475726520696e6469636573206d75737420626520617363656e64696e67",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"signature indices must be ascending\"",
- "value": "signature indices must be ascending"
- },
- "id": 686,
- "name": "Literal",
- "src": "4779:37:1"
- }
- ],
- "id": 687,
- "name": "FunctionCall",
- "src": "4751:66:1"
- }
- ],
- "id": 688,
- "name": "ExpressionStatement",
- "src": "4751:66:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "int16"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 657,
- "type": "int16",
- "value": "last_index"
- },
- "id": 689,
- "name": "Identifier",
- "src": "4831:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "int16",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(int16)"
- },
- "children": [
- {
- "attributes": {
- "name": "int16",
- "type": null
- },
- "id": 690,
- "name": "ElementaryTypeName",
- "src": "4844:5:1"
- }
- ],
- "id": 691,
- "name": "ElementaryTypeNameExpression",
- "src": "4844:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 672,
- "type": "uint8",
- "value": "index"
- },
- "id": 692,
- "name": "Identifier",
- "src": "4850:5:1"
- }
- ],
- "id": 693,
- "name": "FunctionCall",
- "src": "4844:12:1"
- }
- ],
- "id": 694,
- "name": "Assignment",
- "src": "4831:25:1"
- }
- ],
- "id": 695,
- "name": "ExpressionStatement",
- "src": "4831:25:1"
- },
- {
- "attributes": {
- "assignments": [697]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "r",
- "overrides": null,
- "scope": 749,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 696,
- "name": "ElementaryTypeName",
- "src": "4871:7:1"
- }
- ],
- "id": 697,
- "name": "VariableDeclaration",
- "src": "4871:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toBytes32",
- "referencedDeclaration": 298,
- "type": "function (bytes memory,uint256) pure returns (bytes32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 698,
- "name": "Identifier",
- "src": "4883:3:1"
- }
- ],
- "id": 699,
- "name": "MemberAccess",
- "src": "4883:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "37",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 7",
- "value": "7"
- },
- "id": 700,
- "name": "Literal",
- "src": "4897:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 701,
- "name": "Identifier",
- "src": "4901:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 702,
- "name": "Literal",
- "src": "4905:2:1"
- }
- ],
- "id": 703,
- "name": "BinaryOperation",
- "src": "4901:6:1"
- }
- ],
- "id": 704,
- "name": "BinaryOperation",
- "src": "4897:10:1"
- }
- ],
- "id": 705,
- "name": "FunctionCall",
- "src": "4883:25:1"
- }
- ],
- "id": 706,
- "name": "VariableDeclarationStatement",
- "src": "4871:37:1"
- },
- {
- "attributes": {
- "assignments": [708]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "s",
- "overrides": null,
- "scope": 749,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 707,
- "name": "ElementaryTypeName",
- "src": "4922:7:1"
- }
- ],
- "id": 708,
- "name": "VariableDeclaration",
- "src": "4922:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toBytes32",
- "referencedDeclaration": 298,
- "type": "function (bytes memory,uint256) pure returns (bytes32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 709,
- "name": "Identifier",
- "src": "4934:3:1"
- }
- ],
- "id": 710,
- "name": "MemberAccess",
- "src": "4934:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3339",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 39",
- "value": "39"
- },
- "id": 711,
- "name": "Literal",
- "src": "4948:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 712,
- "name": "Identifier",
- "src": "4953:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 713,
- "name": "Literal",
- "src": "4957:2:1"
- }
- ],
- "id": 714,
- "name": "BinaryOperation",
- "src": "4953:6:1"
- }
- ],
- "id": 715,
- "name": "BinaryOperation",
- "src": "4948:11:1"
- }
- ],
- "id": 716,
- "name": "FunctionCall",
- "src": "4934:26:1"
- }
- ],
- "id": 717,
- "name": "VariableDeclarationStatement",
- "src": "4922:38:1"
- },
- {
- "attributes": {
- "assignments": [719]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "v",
- "overrides": null,
- "scope": 749,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 718,
- "name": "ElementaryTypeName",
- "src": "4974:5:1"
- }
- ],
- "id": 719,
- "name": "VariableDeclaration",
- "src": "4974:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 720,
- "name": "Identifier",
- "src": "4984:3:1"
- }
- ],
- "id": 721,
- "name": "MemberAccess",
- "src": "4984:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3731",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 71",
- "value": "71"
- },
- "id": 722,
- "name": "Literal",
- "src": "4996:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 662,
- "type": "uint256",
- "value": "i"
- },
- "id": 723,
- "name": "Identifier",
- "src": "5001:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3636",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 66",
- "value": "66"
- },
- "id": 724,
- "name": "Literal",
- "src": "5005:2:1"
- }
- ],
- "id": 725,
- "name": "BinaryOperation",
- "src": "5001:6:1"
- }
- ],
- "id": 726,
- "name": "BinaryOperation",
- "src": "4996:11:1"
- }
- ],
- "id": 727,
- "name": "FunctionCall",
- "src": "4984:24:1"
- }
- ],
- "id": 728,
- "name": "VariableDeclarationStatement",
- "src": "4974:34:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 719,
- "type": "uint8",
- "value": "v"
- },
- "id": 729,
- "name": "Identifier",
- "src": "5022:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3237",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 27",
- "value": "27"
- },
- "id": 730,
- "name": "Literal",
- "src": "5027:2:1"
- }
- ],
- "id": 731,
- "name": "Assignment",
- "src": "5022:7:1"
- }
- ],
- "id": 732,
- "name": "ExpressionStatement",
- "src": "5022:7:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
- "typeString": "literal_string \"VAA signature invalid\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 733,
- "name": "Identifier",
- "src": "5043:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": -6,
- "type": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)",
- "value": "ecrecover"
- },
- "id": 734,
- "name": "Identifier",
- "src": "5051:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "hash",
- "referencedDeclaration": 399,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 735,
- "name": "Identifier",
- "src": "5061:10:1"
- }
- ],
- "id": 736,
- "name": "MemberAccess",
- "src": "5061:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 719,
- "type": "uint8",
- "value": "v"
- },
- "id": 737,
- "name": "Identifier",
- "src": "5078:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 697,
- "type": "bytes32",
- "value": "r"
- },
- "id": 738,
- "name": "Identifier",
- "src": "5081:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 708,
- "type": "bytes32",
- "value": "s"
- },
- "id": 739,
- "name": "Identifier",
- "src": "5084:1:1"
- }
- ],
- "id": 740,
- "name": "FunctionCall",
- "src": "5051:35:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "keys",
- "referencedDeclaration": 368,
- "type": "address[] memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 606,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "guardian_set"
- },
- "id": 741,
- "name": "Identifier",
- "src": "5090:12:1"
- }
- ],
- "id": 742,
- "name": "MemberAccess",
- "src": "5090:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 672,
- "type": "uint8",
- "value": "index"
- },
- "id": 743,
- "name": "Identifier",
- "src": "5108:5:1"
- }
- ],
- "id": 744,
- "name": "IndexAccess",
- "src": "5090:24:1"
- }
- ],
- "id": 745,
- "name": "BinaryOperation",
- "src": "5051:63:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "564141207369676e617475726520696e76616c6964",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"VAA signature invalid\"",
- "value": "VAA signature invalid"
- },
- "id": 746,
- "name": "Literal",
- "src": "5116:23:1"
- }
- ],
- "id": 747,
- "name": "FunctionCall",
- "src": "5043:97:1"
- }
- ],
- "id": 748,
- "name": "ExpressionStatement",
- "src": "5043:97:1"
- }
- ],
- "id": 749,
- "name": "Block",
- "src": "4686:465:1"
- }
- ],
- "id": 750,
- "name": "ForStatement",
- "src": "4647:504:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "action",
- "referencedDeclaration": 405,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 751,
- "name": "Identifier",
- "src": "5161:10:1"
- }
- ],
- "id": 753,
- "name": "MemberAccess",
- "src": "5161:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 754,
- "name": "Identifier",
- "src": "5181:3:1"
- }
- ],
- "id": 755,
- "name": "MemberAccess",
- "src": "5181:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 756,
- "name": "Identifier",
- "src": "5193:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "34",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 4",
- "value": "4"
- },
- "id": 757,
- "name": "Literal",
- "src": "5202:1:1"
- }
- ],
- "id": 758,
- "name": "BinaryOperation",
- "src": "5193:10:1"
- }
- ],
- "id": 759,
- "name": "FunctionCall",
- "src": "5181:23:1"
- }
- ],
- "id": 760,
- "name": "Assignment",
- "src": "5161:43:1"
- }
- ],
- "id": 761,
- "name": "ExpressionStatement",
- "src": "5161:43:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "payload",
- "referencedDeclaration": 407,
- "type": "bytes memory"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 529,
- "type": "struct Wormhole.ParsedVAA memory",
- "value": "parsed_vaa"
- },
- "id": 762,
- "name": "Identifier",
- "src": "5214:10:1"
- }
- ],
- "id": 764,
- "name": "MemberAccess",
- "src": "5214:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "slice",
- "referencedDeclaration": 55,
- "type": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 765,
- "name": "Identifier",
- "src": "5235:3:1"
- }
- ],
- "id": 766,
- "name": "MemberAccess",
- "src": "5235:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 767,
- "name": "Identifier",
- "src": "5245:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 768,
- "name": "Literal",
- "src": "5254:1:1"
- }
- ],
- "id": 769,
- "name": "BinaryOperation",
- "src": "5245:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 526,
- "type": "bytes calldata",
- "value": "vaa"
- },
- "id": 770,
- "name": "Identifier",
- "src": "5257:3:1"
- }
- ],
- "id": 771,
- "name": "MemberAccess",
- "src": "5257:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 565,
- "type": "uint256",
- "value": "offset"
- },
- "id": 772,
- "name": "Identifier",
- "src": "5271:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 773,
- "name": "Literal",
- "src": "5280:1:1"
- }
- ],
- "id": 774,
- "name": "BinaryOperation",
- "src": "5271:10:1"
- }
- ],
- "id": 775,
- "name": "TupleExpression",
- "src": "5270:12:1"
- }
- ],
- "id": 776,
- "name": "BinaryOperation",
- "src": "5257:25:1"
- }
- ],
- "id": 777,
- "name": "FunctionCall",
- "src": "5235:48:1"
- }
- ],
- "id": 778,
- "name": "Assignment",
- "src": "5214:69:1"
- }
- ],
- "id": 779,
- "name": "ExpressionStatement",
- "src": "5214:69:1"
- }
- ],
- "id": 780,
- "name": "Block",
- "src": "3542:1748:1"
- }
- ],
- "id": 781,
- "name": "FunctionDefinition",
- "src": "3445:1845:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "vaaUpdateGuardianSet",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 889,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 782,
- "name": "ElementaryTypeName",
- "src": "5326:5:1"
- }
- ],
- "id": 783,
- "name": "VariableDeclaration",
- "src": "5326:17:1"
- }
- ],
- "id": 784,
- "name": "ParameterList",
- "src": "5325:19:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 785,
- "name": "ParameterList",
- "src": "5353:0:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [787]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "new_guardian_set_index",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 786,
- "name": "ElementaryTypeName",
- "src": "5363:6:1"
- }
- ],
- "id": 787,
- "name": "VariableDeclaration",
- "src": "5363:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint32",
- "referencedDeclaration": 163,
- "type": "function (bytes memory,uint256) pure returns (uint32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 783,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 788,
- "name": "Identifier",
- "src": "5395:4:1"
- }
- ],
- "id": 789,
- "name": "MemberAccess",
- "src": "5395:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 790,
- "name": "Literal",
- "src": "5409:1:1"
- }
- ],
- "id": 791,
- "name": "FunctionCall",
- "src": "5395:16:1"
- }
- ],
- "id": 792,
- "name": "VariableDeclarationStatement",
- "src": "5363:48:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_a9c35350c4790f34190b54478b12348e0cbd9c4c717b5d4a6ca5709d71c4f33d",
- "typeString": "literal_string \"index must increase in steps of 1\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 793,
- "name": "Identifier",
- "src": "5421:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 787,
- "type": "uint32",
- "value": "new_guardian_set_index"
- },
- "id": 794,
- "name": "Identifier",
- "src": "5429:22:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 795,
- "name": "Identifier",
- "src": "5455:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 796,
- "name": "Literal",
- "src": "5476:1:1"
- }
- ],
- "id": 797,
- "name": "BinaryOperation",
- "src": "5455:22:1"
- }
- ],
- "id": 798,
- "name": "BinaryOperation",
- "src": "5429:48:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "696e646578206d75737420696e63726561736520696e207374657073206f662031",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"index must increase in steps of 1\"",
- "value": "index must increase in steps of 1"
- },
- "id": 799,
- "name": "Literal",
- "src": "5479:35:1"
- }
- ],
- "id": 800,
- "name": "FunctionCall",
- "src": "5421:94:1"
- }
- ],
- "id": 801,
- "name": "ExpressionStatement",
- "src": "5421:94:1"
- },
- {
- "attributes": {
- "assignments": [803]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "len",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 802,
- "name": "ElementaryTypeName",
- "src": "5525:5:1"
- }
- ],
- "id": 803,
- "name": "VariableDeclaration",
- "src": "5525:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 783,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 804,
- "name": "Identifier",
- "src": "5537:4:1"
- }
- ],
- "id": 805,
- "name": "MemberAccess",
- "src": "5537:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "34",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 4",
- "value": "4"
- },
- "id": 806,
- "name": "Literal",
- "src": "5550:1:1"
- }
- ],
- "id": 807,
- "name": "FunctionCall",
- "src": "5537:15:1"
- }
- ],
- "id": 808,
- "name": "VariableDeclarationStatement",
- "src": "5525:27:1"
- },
- {
- "attributes": {
- "assignments": [813]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "new_guardians",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "address[]",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "length": null,
- "type": "address[]"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 811,
- "name": "ElementaryTypeName",
- "src": "5563:7:1"
- }
- ],
- "id": 812,
- "name": "ArrayTypeName",
- "src": "5563:9:1"
- }
- ],
- "id": 813,
- "name": "VariableDeclaration",
- "src": "5563:30:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address[] memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "function (uint256) pure returns (address[] memory)"
- },
- "children": [
- {
- "attributes": {
- "length": null,
- "type": "address[]"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 814,
- "name": "ElementaryTypeName",
- "src": "5600:7:1"
- }
- ],
- "id": 815,
- "name": "ArrayTypeName",
- "src": "5600:9:1"
- }
- ],
- "id": 816,
- "name": "NewExpression",
- "src": "5596:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 803,
- "type": "uint8",
- "value": "len"
- },
- "id": 817,
- "name": "Identifier",
- "src": "5610:3:1"
- }
- ],
- "id": 818,
- "name": "FunctionCall",
- "src": "5596:18:1"
- }
- ],
- "id": 819,
- "name": "VariableDeclarationStatement",
- "src": "5563:51:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [821]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "i",
- "overrides": null,
- "scope": 848,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 820,
- "name": "ElementaryTypeName",
- "src": "5629:4:1"
- }
- ],
- "id": 821,
- "name": "VariableDeclaration",
- "src": "5629:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 822,
- "name": "Literal",
- "src": "5638:1:1"
- }
- ],
- "id": 823,
- "name": "VariableDeclarationStatement",
- "src": "5629:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 821,
- "type": "uint256",
- "value": "i"
- },
- "id": 824,
- "name": "Identifier",
- "src": "5641:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 803,
- "type": "uint8",
- "value": "len"
- },
- "id": 825,
- "name": "Identifier",
- "src": "5645:3:1"
- }
- ],
- "id": 826,
- "name": "BinaryOperation",
- "src": "5641:7:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "++",
- "prefix": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 821,
- "type": "uint256",
- "value": "i"
- },
- "id": 827,
- "name": "Identifier",
- "src": "5650:1:1"
- }
- ],
- "id": 828,
- "name": "UnaryOperation",
- "src": "5650:3:1"
- }
- ],
- "id": 829,
- "name": "ExpressionStatement",
- "src": "5650:3:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [831]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "addr",
- "overrides": null,
- "scope": 847,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 830,
- "name": "ElementaryTypeName",
- "src": "5669:7:1"
- }
- ],
- "id": 831,
- "name": "VariableDeclaration",
- "src": "5669:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toAddress",
- "referencedDeclaration": 82,
- "type": "function (bytes memory,uint256) pure returns (address)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 783,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 832,
- "name": "Identifier",
- "src": "5684:4:1"
- }
- ],
- "id": 833,
- "name": "MemberAccess",
- "src": "5684:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 834,
- "name": "Literal",
- "src": "5699:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 821,
- "type": "uint256",
- "value": "i"
- },
- "id": 835,
- "name": "Identifier",
- "src": "5703:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3230",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 20",
- "value": "20"
- },
- "id": 836,
- "name": "Literal",
- "src": "5707:2:1"
- }
- ],
- "id": 837,
- "name": "BinaryOperation",
- "src": "5703:6:1"
- }
- ],
- "id": 838,
- "name": "BinaryOperation",
- "src": "5699:10:1"
- }
- ],
- "id": 839,
- "name": "FunctionCall",
- "src": "5684:26:1"
- }
- ],
- "id": 840,
- "name": "VariableDeclarationStatement",
- "src": "5669:41:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 813,
- "type": "address[] memory",
- "value": "new_guardians"
- },
- "id": 841,
- "name": "Identifier",
- "src": "5724:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 821,
- "type": "uint256",
- "value": "i"
- },
- "id": 842,
- "name": "Identifier",
- "src": "5738:1:1"
- }
- ],
- "id": 843,
- "name": "IndexAccess",
- "src": "5724:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 831,
- "type": "address",
- "value": "addr"
- },
- "id": 844,
- "name": "Identifier",
- "src": "5743:4:1"
- }
- ],
- "id": 845,
- "name": "Assignment",
- "src": "5724:23:1"
- }
- ],
- "id": 846,
- "name": "ExpressionStatement",
- "src": "5724:23:1"
- }
- ],
- "id": 847,
- "name": "Block",
- "src": "5655:103:1"
- }
- ],
- "id": 848,
- "name": "ForStatement",
- "src": "5624:134:1"
- },
- {
- "attributes": {
- "assignments": [850]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "old_guardian_set_index",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 849,
- "name": "ElementaryTypeName",
- "src": "5768:6:1"
- }
- ],
- "id": 850,
- "name": "VariableDeclaration",
- "src": "5768:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 851,
- "name": "Identifier",
- "src": "5800:18:1"
- }
- ],
- "id": 852,
- "name": "VariableDeclarationStatement",
- "src": "5768:50:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 853,
- "name": "Identifier",
- "src": "5828:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 787,
- "type": "uint32",
- "value": "new_guardian_set_index"
- },
- "id": 854,
- "name": "Identifier",
- "src": "5849:22:1"
- }
- ],
- "id": 855,
- "name": "Assignment",
- "src": "5828:43:1"
- }
- ],
- "id": 856,
- "name": "ExpressionStatement",
- "src": "5828:43:1"
- },
- {
- "attributes": {
- "assignments": [858]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "new_guardian_set",
- "overrides": null,
- "scope": 888,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "struct Wormhole.GuardianSet",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "GuardianSet",
- "referencedDeclaration": 371,
- "type": "struct Wormhole.GuardianSet"
- },
- "id": 857,
- "name": "UserDefinedTypeName",
- "src": "5882:11:1"
- }
- ],
- "id": 858,
- "name": "VariableDeclaration",
- "src": "5882:35:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": true,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "struct Wormhole.GuardianSet memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
- "typeString": "address[] memory"
- },
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 371,
- "type": "type(struct Wormhole.GuardianSet storage pointer)",
- "value": "GuardianSet"
- },
- "id": 859,
- "name": "Identifier",
- "src": "5920:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 813,
- "type": "address[] memory",
- "value": "new_guardians"
- },
- "id": 860,
- "name": "Identifier",
- "src": "5932:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 861,
- "name": "Literal",
- "src": "5947:1:1"
- }
- ],
- "id": 862,
- "name": "FunctionCall",
- "src": "5920:29:1"
- }
- ],
- "id": 863,
- "name": "VariableDeclarationStatement",
- "src": "5882:67:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 864,
- "name": "Identifier",
- "src": "5959:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 865,
- "name": "Identifier",
- "src": "5973:18:1"
- }
- ],
- "id": 866,
- "name": "IndexAccess",
- "src": "5959:33:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 858,
- "type": "struct Wormhole.GuardianSet memory",
- "value": "new_guardian_set"
- },
- "id": 867,
- "name": "Identifier",
- "src": "5995:16:1"
- }
- ],
- "id": 868,
- "name": "Assignment",
- "src": "5959:52:1"
- }
- ],
- "id": 869,
- "name": "ExpressionStatement",
- "src": "5959:52:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "expiration_time",
- "referencedDeclaration": 370,
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct Wormhole.GuardianSet storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 412,
- "type": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)",
- "value": "guardian_sets"
- },
- "id": 870,
- "name": "Identifier",
- "src": "6021:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 850,
- "type": "uint32",
- "value": "old_guardian_set_index"
- },
- "id": 871,
- "name": "Identifier",
- "src": "6035:22:1"
- }
- ],
- "id": 872,
- "name": "IndexAccess",
- "src": "6021:37:1"
- }
- ],
- "id": 873,
- "name": "MemberAccess",
- "src": "6021:53:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint32)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": null
- },
- "id": 874,
- "name": "ElementaryTypeName",
- "src": "6077:6:1"
- }
- ],
- "id": 875,
- "name": "ElementaryTypeNameExpression",
- "src": "6077:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "timestamp",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -4,
- "type": "block",
- "value": "block"
- },
- "id": 876,
- "name": "Identifier",
- "src": "6084:5:1"
- }
- ],
- "id": 877,
- "name": "MemberAccess",
- "src": "6084:15:1"
- }
- ],
- "id": 878,
- "name": "FunctionCall",
- "src": "6077:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 416,
- "type": "uint32",
- "value": "guardian_set_expirity"
- },
- "id": 879,
- "name": "Identifier",
- "src": "6103:21:1"
- }
- ],
- "id": 880,
- "name": "BinaryOperation",
- "src": "6077:47:1"
- }
- ],
- "id": 881,
- "name": "Assignment",
- "src": "6021:103:1"
- }
- ],
- "id": 882,
- "name": "ExpressionStatement",
- "src": "6021:103:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 377,
- "type": "function (uint32,uint32)",
- "value": "LogGuardianSetChanged"
- },
- "id": 883,
- "name": "Identifier",
- "src": "6140:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 850,
- "type": "uint32",
- "value": "old_guardian_set_index"
- },
- "id": 884,
- "name": "Identifier",
- "src": "6162:22:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 414,
- "type": "uint32",
- "value": "guardian_set_index"
- },
- "id": 885,
- "name": "Identifier",
- "src": "6186:18:1"
- }
- ],
- "id": 886,
- "name": "FunctionCall",
- "src": "6140:65:1"
- }
- ],
- "id": 887,
- "name": "EmitStatement",
- "src": "6135:70:1"
- }
- ],
- "id": 888,
- "name": "Block",
- "src": "5353:859:1"
- }
- ],
- "id": 889,
- "name": "FunctionDefinition",
- "src": "5296:916:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "vaaTransfer",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 1051,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 890,
- "name": "ElementaryTypeName",
- "src": "6239:5:1"
- }
- ],
- "id": 891,
- "name": "VariableDeclaration",
- "src": "6239:17:1"
- }
- ],
- "id": 892,
- "name": "ParameterList",
- "src": "6238:19:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 893,
- "name": "ParameterList",
- "src": "6266:0:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [895]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "source_chain",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 894,
- "name": "ElementaryTypeName",
- "src": "6319:5:1"
- }
- ],
- "id": 895,
- "name": "VariableDeclaration",
- "src": "6319:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 896,
- "name": "Identifier",
- "src": "6340:4:1"
- }
- ],
- "id": 897,
- "name": "MemberAccess",
- "src": "6340:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "34",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 4",
- "value": "4"
- },
- "id": 898,
- "name": "Literal",
- "src": "6353:1:1"
- }
- ],
- "id": 899,
- "name": "FunctionCall",
- "src": "6340:15:1"
- }
- ],
- "id": 900,
- "name": "VariableDeclarationStatement",
- "src": "6319:36:1"
- },
- {
- "attributes": {
- "assignments": [902]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target_chain",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 901,
- "name": "ElementaryTypeName",
- "src": "6366:5:1"
- }
- ],
- "id": 902,
- "name": "VariableDeclaration",
- "src": "6366:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_5_by_1",
- "typeString": "int_const 5"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 903,
- "name": "Identifier",
- "src": "6387:4:1"
- }
- ],
- "id": 904,
- "name": "MemberAccess",
- "src": "6387:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "35",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 5",
- "value": "5"
- },
- "id": 905,
- "name": "Literal",
- "src": "6400:1:1"
- }
- ],
- "id": 906,
- "name": "FunctionCall",
- "src": "6387:15:1"
- }
- ],
- "id": 907,
- "name": "VariableDeclarationStatement",
- "src": "6366:36:1"
- },
- {
- "attributes": {
- "assignments": [909]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target_address",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 908,
- "name": "ElementaryTypeName",
- "src": "6521:7:1"
- }
- ],
- "id": 909,
- "name": "VariableDeclaration",
- "src": "6521:22:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toAddress",
- "referencedDeclaration": 82,
- "type": "function (bytes memory,uint256) pure returns (address)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 910,
- "name": "Identifier",
- "src": "6546:4:1"
- }
- ],
- "id": 911,
- "name": "MemberAccess",
- "src": "6546:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_50_by_1",
- "typeString": "int_const 50"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "+",
- "type": "int_const 50"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3338",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 38",
- "value": "38"
- },
- "id": 912,
- "name": "Literal",
- "src": "6561:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3132",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 12",
- "value": "12"
- },
- "id": 913,
- "name": "Literal",
- "src": "6566:2:1"
- }
- ],
- "id": 914,
- "name": "BinaryOperation",
- "src": "6561:7:1"
- }
- ],
- "id": 915,
- "name": "FunctionCall",
- "src": "6546:23:1"
- }
- ],
- "id": 916,
- "name": "VariableDeclarationStatement",
- "src": "6521:48:1"
- },
- {
- "attributes": {
- "assignments": [918]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_chain",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 917,
- "name": "ElementaryTypeName",
- "src": "6580:5:1"
- }
- ],
- "id": 918,
- "name": "VariableDeclaration",
- "src": "6580:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_70_by_1",
- "typeString": "int_const 70"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 919,
- "name": "Identifier",
- "src": "6600:4:1"
- }
- ],
- "id": 920,
- "name": "MemberAccess",
- "src": "6600:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3730",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 70",
- "value": "70"
- },
- "id": 921,
- "name": "Literal",
- "src": "6613:2:1"
- }
- ],
- "id": 922,
- "name": "FunctionCall",
- "src": "6600:16:1"
- }
- ],
- "id": 923,
- "name": "VariableDeclarationStatement",
- "src": "6580:36:1"
- },
- {
- "attributes": {
- "assignments": [925]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1050,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 924,
- "name": "ElementaryTypeName",
- "src": "6680:7:1"
- }
- ],
- "id": 925,
- "name": "VariableDeclaration",
- "src": "6680:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_104_by_1",
- "typeString": "int_const 104"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint256",
- "referencedDeclaration": 271,
- "type": "function (bytes memory,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 926,
- "name": "Identifier",
- "src": "6697:4:1"
- }
- ],
- "id": 927,
- "name": "MemberAccess",
- "src": "6697:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "313034",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 104",
- "value": "104"
- },
- "id": 928,
- "name": "Literal",
- "src": "6712:3:1"
- }
- ],
- "id": 929,
- "name": "FunctionCall",
- "src": "6697:19:1"
- }
- ],
- "id": 930,
- "name": "VariableDeclarationStatement",
- "src": "6680:36:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
- "typeString": "literal_string \"same chain transfers are not supported\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 931,
- "name": "Identifier",
- "src": "6727:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 895,
- "type": "uint8",
- "value": "source_chain"
- },
- "id": 932,
- "name": "Identifier",
- "src": "6735:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 902,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 933,
- "name": "Identifier",
- "src": "6751:12:1"
- }
- ],
- "id": 934,
- "name": "BinaryOperation",
- "src": "6735:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"same chain transfers are not supported\"",
- "value": "same chain transfers are not supported"
- },
- "id": 935,
- "name": "Literal",
- "src": "6765:40:1"
- }
- ],
- "id": 936,
- "name": "FunctionCall",
- "src": "6727:79:1"
- }
- ],
- "id": 937,
- "name": "ExpressionStatement",
- "src": "6727:79:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
- "typeString": "literal_string \"transfer must be incoming\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 938,
- "name": "Identifier",
- "src": "6816:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 902,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 939,
- "name": "Identifier",
- "src": "6824:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 940,
- "name": "Identifier",
- "src": "6840:8:1"
- }
- ],
- "id": 941,
- "name": "BinaryOperation",
- "src": "6824:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "7472616e73666572206d75737420626520696e636f6d696e67",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"transfer must be incoming\"",
- "value": "transfer must be incoming"
- },
- "id": 942,
- "name": "Literal",
- "src": "6850:27:1"
- }
- ],
- "id": 943,
- "name": "FunctionCall",
- "src": "6816:62:1"
- }
- ],
- "id": 944,
- "name": "ExpressionStatement",
- "src": "6816:62:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 918,
- "type": "uint8",
- "value": "token_chain"
- },
- "id": 945,
- "name": "Identifier",
- "src": "6893:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 946,
- "name": "Identifier",
- "src": "6908:8:1"
- }
- ],
- "id": 947,
- "name": "BinaryOperation",
- "src": "6893:23:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [949]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_address",
- "overrides": null,
- "scope": 1003,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 948,
- "name": "ElementaryTypeName",
- "src": "6932:7:1"
- }
- ],
- "id": 949,
- "name": "VariableDeclaration",
- "src": "6932:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_71_by_1",
- "typeString": "int_const 71"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toBytes32",
- "referencedDeclaration": 298,
- "type": "function (bytes memory,uint256) pure returns (bytes32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 950,
- "name": "Identifier",
- "src": "6956:4:1"
- }
- ],
- "id": 951,
- "name": "MemberAccess",
- "src": "6956:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3731",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 71",
- "value": "71"
- },
- "id": 952,
- "name": "Literal",
- "src": "6971:2:1"
- }
- ],
- "id": 953,
- "name": "FunctionCall",
- "src": "6956:18:1"
- }
- ],
- "id": 954,
- "name": "VariableDeclarationStatement",
- "src": "6932:42:1"
- },
- {
- "attributes": {
- "assignments": [956]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset_id",
- "overrides": null,
- "scope": 1003,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 955,
- "name": "ElementaryTypeName",
- "src": "6988:7:1"
- }
- ],
- "id": 956,
- "name": "VariableDeclaration",
- "src": "6988:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": -8,
- "type": "function (bytes memory) pure returns (bytes32)",
- "value": "keccak256"
- },
- "id": 957,
- "name": "Identifier",
- "src": "7007:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "member_name": "encodePacked",
- "referencedDeclaration": null,
- "type": "function () pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -1,
- "type": "abi",
- "value": "abi"
- },
- "id": 958,
- "name": "Identifier",
- "src": "7017:3:1"
- }
- ],
- "id": 959,
- "name": "MemberAccess",
- "src": "7017:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 918,
- "type": "uint8",
- "value": "token_chain"
- },
- "id": 960,
- "name": "Identifier",
- "src": "7034:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 949,
- "type": "bytes32",
- "value": "token_address"
- },
- "id": 961,
- "name": "Identifier",
- "src": "7047:13:1"
- }
- ],
- "id": 962,
- "name": "FunctionCall",
- "src": "7017:44:1"
- }
- ],
- "id": 963,
- "name": "FunctionCall",
- "src": "7007:55:1"
- }
- ],
- "id": 964,
- "name": "VariableDeclarationStatement",
- "src": "6988:74:1"
- },
- {
- "attributes": {
- "assignments": [966]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "wrapped_asset",
- "overrides": null,
- "scope": 1003,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 965,
- "name": "ElementaryTypeName",
- "src": "7154:7:1"
- }
- ],
- "id": 966,
- "name": "VariableDeclaration",
- "src": "7154:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 424,
- "type": "mapping(bytes32 => address)",
- "value": "wrappedAssets"
- },
- "id": 967,
- "name": "Identifier",
- "src": "7178:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 956,
- "type": "bytes32",
- "value": "asset_id"
- },
- "id": 968,
- "name": "Identifier",
- "src": "7192:8:1"
- }
- ],
- "id": 969,
- "name": "IndexAccess",
- "src": "7178:23:1"
- }
- ],
- "id": 970,
- "name": "VariableDeclarationStatement",
- "src": "7154:47:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 966,
- "type": "address",
- "value": "wrapped_asset"
- },
- "id": 971,
- "name": "Identifier",
- "src": "7219:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 972,
- "name": "ElementaryTypeName",
- "src": "7236:7:1"
- }
- ],
- "id": 973,
- "name": "ElementaryTypeNameExpression",
- "src": "7236:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 974,
- "name": "Literal",
- "src": "7244:1:1"
- }
- ],
- "id": 975,
- "name": "FunctionCall",
- "src": "7236:10:1"
- }
- ],
- "id": 976,
- "name": "BinaryOperation",
- "src": "7219:27:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [978]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset_decimals",
- "overrides": null,
- "scope": 993,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 977,
- "name": "ElementaryTypeName",
- "src": "7266:5:1"
- }
- ],
- "id": 978,
- "name": "VariableDeclaration",
- "src": "7266:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_103_by_1",
- "typeString": "int_const 103"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toUint8",
- "referencedDeclaration": 109,
- "type": "function (bytes memory,uint256) pure returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 979,
- "name": "Identifier",
- "src": "7289:4:1"
- }
- ],
- "id": 980,
- "name": "MemberAccess",
- "src": "7289:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "313033",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 103",
- "value": "103"
- },
- "id": 981,
- "name": "Literal",
- "src": "7302:3:1"
- }
- ],
- "id": 982,
- "name": "FunctionCall",
- "src": "7289:17:1"
- }
- ],
- "id": 983,
- "name": "VariableDeclarationStatement",
- "src": "7266:40:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 966,
- "type": "address",
- "value": "wrapped_asset"
- },
- "id": 984,
- "name": "Identifier",
- "src": "7324:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1094,
- "type": "function (bytes32,uint8,bytes32,uint8) returns (address)",
- "value": "deployWrappedAsset"
- },
- "id": 985,
- "name": "Identifier",
- "src": "7340:18:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 956,
- "type": "bytes32",
- "value": "asset_id"
- },
- "id": 986,
- "name": "Identifier",
- "src": "7359:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 918,
- "type": "uint8",
- "value": "token_chain"
- },
- "id": 987,
- "name": "Identifier",
- "src": "7369:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 949,
- "type": "bytes32",
- "value": "token_address"
- },
- "id": 988,
- "name": "Identifier",
- "src": "7382:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 978,
- "type": "uint8",
- "value": "asset_decimals"
- },
- "id": 989,
- "name": "Identifier",
- "src": "7397:14:1"
- }
- ],
- "id": 990,
- "name": "FunctionCall",
- "src": "7340:72:1"
- }
- ],
- "id": 991,
- "name": "Assignment",
- "src": "7324:88:1"
- }
- ],
- "id": 992,
- "name": "ExpressionStatement",
- "src": "7324:88:1"
- }
- ],
- "id": 993,
- "name": "Block",
- "src": "7248:179:1"
- }
- ],
- "id": 994,
- "name": "IfStatement",
- "src": "7215:212:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "mint",
- "referencedDeclaration": 1511,
- "type": "function (address,uint256) external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 995,
- "name": "Identifier",
- "src": "7441:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 966,
- "type": "address",
- "value": "wrapped_asset"
- },
- "id": 996,
- "name": "Identifier",
- "src": "7454:13:1"
- }
- ],
- "id": 997,
- "name": "FunctionCall",
- "src": "7441:27:1"
- }
- ],
- "id": 998,
- "name": "MemberAccess",
- "src": "7441:32:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 909,
- "type": "address",
- "value": "target_address"
- },
- "id": 999,
- "name": "Identifier",
- "src": "7474:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 925,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1000,
- "name": "Identifier",
- "src": "7490:6:1"
- }
- ],
- "id": 1001,
- "name": "FunctionCall",
- "src": "7441:56:1"
- }
- ],
- "id": 1002,
- "name": "ExpressionStatement",
- "src": "7441:56:1"
- }
- ],
- "id": 1003,
- "name": "Block",
- "src": "6918:590:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1005]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_address",
- "overrides": null,
- "scope": 1048,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1004,
- "name": "ElementaryTypeName",
- "src": "7528:7:1"
- }
- ],
- "id": 1005,
- "name": "VariableDeclaration",
- "src": "7528:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "toAddress",
- "referencedDeclaration": 82,
- "type": "function (bytes memory,uint256) pure returns (address)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 891,
- "type": "bytes memory",
- "value": "data"
- },
- "id": 1006,
- "name": "Identifier",
- "src": "7552:4:1"
- }
- ],
- "id": 1007,
- "name": "MemberAccess",
- "src": "7552:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_83_by_1",
- "typeString": "int_const 83"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "+",
- "type": "int_const 83"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3731",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 71",
- "value": "71"
- },
- "id": 1008,
- "name": "Literal",
- "src": "7567:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3132",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 12",
- "value": "12"
- },
- "id": 1009,
- "name": "Literal",
- "src": "7572:2:1"
- }
- ],
- "id": 1010,
- "name": "BinaryOperation",
- "src": "7567:7:1"
- }
- ],
- "id": 1011,
- "name": "FunctionCall",
- "src": "7552:23:1"
- }
- ],
- "id": 1012,
- "name": "VariableDeclarationStatement",
- "src": "7528:47:1"
- },
- {
- "attributes": {
- "assignments": [1014]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "decimals",
- "overrides": null,
- "scope": 1048,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1013,
- "name": "ElementaryTypeName",
- "src": "7590:5:1"
- }
- ],
- "id": 1014,
- "name": "VariableDeclaration",
- "src": "7590:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "decimals",
- "referencedDeclaration": 2584,
- "type": "function () view external returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract ERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3008,
- "type": "type(contract ERC20)",
- "value": "ERC20"
- },
- "id": 1015,
- "name": "Identifier",
- "src": "7607:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1005,
- "type": "address",
- "value": "token_address"
- },
- "id": 1016,
- "name": "Identifier",
- "src": "7613:13:1"
- }
- ],
- "id": 1017,
- "name": "FunctionCall",
- "src": "7607:20:1"
- }
- ],
- "id": 1018,
- "name": "MemberAccess",
- "src": "7607:29:1"
- }
- ],
- "id": 1019,
- "name": "FunctionCall",
- "src": "7607:31:1"
- }
- ],
- "id": 1020,
- "name": "VariableDeclarationStatement",
- "src": "7590:48:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1014,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1021,
- "name": "Identifier",
- "src": "7727:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1022,
- "name": "Literal",
- "src": "7738:1:1"
- }
- ],
- "id": 1023,
- "name": "BinaryOperation",
- "src": "7727:12:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 925,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1024,
- "name": "Identifier",
- "src": "7759:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "mul",
- "referencedDeclaration": 2388,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 925,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1025,
- "name": "Identifier",
- "src": "7768:6:1"
- }
- ],
- "id": 1026,
- "name": "MemberAccess",
- "src": "7768:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "**",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1027,
- "name": "Literal",
- "src": "7779:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1028,
- "name": "ElementaryTypeName",
- "src": "7785:7:1"
- }
- ],
- "id": 1029,
- "name": "ElementaryTypeNameExpression",
- "src": "7785:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1014,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1030,
- "name": "Identifier",
- "src": "7793:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1031,
- "name": "Literal",
- "src": "7804:1:1"
- }
- ],
- "id": 1032,
- "name": "BinaryOperation",
- "src": "7793:12:1"
- }
- ],
- "id": 1033,
- "name": "FunctionCall",
- "src": "7785:21:1"
- }
- ],
- "id": 1034,
- "name": "BinaryOperation",
- "src": "7779:27:1"
- }
- ],
- "id": 1035,
- "name": "FunctionCall",
- "src": "7768:39:1"
- }
- ],
- "id": 1036,
- "name": "Assignment",
- "src": "7759:48:1"
- }
- ],
- "id": 1037,
- "name": "ExpressionStatement",
- "src": "7759:48:1"
- }
- ],
- "id": 1038,
- "name": "Block",
- "src": "7741:81:1"
- }
- ],
- "id": 1039,
- "name": "IfStatement",
- "src": "7723:99:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "safeTransfer",
- "referencedDeclaration": 3120,
- "type": "function (contract IERC20,address,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1040,
- "name": "Identifier",
- "src": "7835:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1005,
- "type": "address",
- "value": "token_address"
- },
- "id": 1041,
- "name": "Identifier",
- "src": "7842:13:1"
- }
- ],
- "id": 1042,
- "name": "FunctionCall",
- "src": "7835:21:1"
- }
- ],
- "id": 1043,
- "name": "MemberAccess",
- "src": "7835:34:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 909,
- "type": "address",
- "value": "target_address"
- },
- "id": 1044,
- "name": "Identifier",
- "src": "7870:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 925,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1045,
- "name": "Identifier",
- "src": "7886:6:1"
- }
- ],
- "id": 1046,
- "name": "FunctionCall",
- "src": "7835:58:1"
- }
- ],
- "id": 1047,
- "name": "ExpressionStatement",
- "src": "7835:58:1"
- }
- ],
- "id": 1048,
- "name": "Block",
- "src": "7514:390:1"
- }
- ],
- "id": 1049,
- "name": "IfStatement",
- "src": "6889:1015:1"
- }
- ],
- "id": 1050,
- "name": "Block",
- "src": "6266:1644:1"
- }
- ],
- "id": 1051,
- "name": "FunctionDefinition",
- "src": "6218:1692:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "deployWrappedAsset",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "private"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "seed",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1052,
- "name": "ElementaryTypeName",
- "src": "7944:7:1"
- }
- ],
- "id": 1053,
- "name": "VariableDeclaration",
- "src": "7944:12:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_chain",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1054,
- "name": "ElementaryTypeName",
- "src": "7958:5:1"
- }
- ],
- "id": 1055,
- "name": "VariableDeclaration",
- "src": "7958:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_address",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1056,
- "name": "ElementaryTypeName",
- "src": "7977:7:1"
- }
- ],
- "id": 1057,
- "name": "VariableDeclaration",
- "src": "7977:21:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "decimals",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1058,
- "name": "ElementaryTypeName",
- "src": "8000:5:1"
- }
- ],
- "id": 1059,
- "name": "VariableDeclaration",
- "src": "8000:14:1"
- }
- ],
- "id": 1060,
- "name": "ParameterList",
- "src": "7943:72:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset",
- "overrides": null,
- "scope": 1094,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1061,
- "name": "ElementaryTypeName",
- "src": "8033:7:1"
- }
- ],
- "id": 1062,
- "name": "VariableDeclaration",
- "src": "8033:13:1"
- }
- ],
- "id": 1063,
- "name": "ParameterList",
- "src": "8032:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1065]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "targetBytes",
- "overrides": null,
- "scope": 1093,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes20",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes20",
- "type": "bytes20"
- },
- "id": 1064,
- "name": "ElementaryTypeName",
- "src": "8225:7:1"
- }
- ],
- "id": 1065,
- "name": "VariableDeclaration",
- "src": "8225:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes20)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes20",
- "type": null
- },
- "id": 1066,
- "name": "ElementaryTypeName",
- "src": "8247:7:1"
- }
- ],
- "id": 1067,
- "name": "ElementaryTypeNameExpression",
- "src": "8247:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 359,
- "type": "address",
- "value": "wrappedAssetMaster"
- },
- "id": 1068,
- "name": "Identifier",
- "src": "8255:18:1"
- }
- ],
- "id": 1069,
- "name": "FunctionCall",
- "src": "8247:27:1"
- }
- ],
- "id": 1070,
- "name": "VariableDeclarationStatement",
- "src": "8225:49:1"
- },
- {
- "attributes": {
- "evmVersion": "istanbul",
- "externalReferences": [
- {
- "declaration": 1062,
- "isOffset": false,
- "isSlot": false,
- "src": "8593:5:1",
- "valueSize": 1
- },
- {
- "declaration": 1053,
- "isOffset": false,
- "isSlot": false,
- "src": "8626:4:1",
- "valueSize": 1
- },
- {
- "declaration": 1065,
- "isOffset": false,
- "isSlot": false,
- "src": "8463:11:1",
- "valueSize": 1
- }
- ],
- "operations": "{\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)\n asset := create2(0, clone, 0x37, seed)\n}"
- },
- "children": [],
- "id": 1071,
- "name": "InlineAssembly",
- "src": "8284:357:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "initialize",
- "referencedDeclaration": 1490,
- "type": "function (uint8,bytes32,uint8) external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 1072,
- "name": "Identifier",
- "src": "8679:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1062,
- "type": "address",
- "value": "asset"
- },
- "id": 1073,
- "name": "Identifier",
- "src": "8692:5:1"
- }
- ],
- "id": 1074,
- "name": "FunctionCall",
- "src": "8679:19:1"
- }
- ],
- "id": 1075,
- "name": "MemberAccess",
- "src": "8679:30:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1055,
- "type": "uint8",
- "value": "token_chain"
- },
- "id": 1076,
- "name": "Identifier",
- "src": "8710:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1057,
- "type": "bytes32",
- "value": "token_address"
- },
- "id": 1077,
- "name": "Identifier",
- "src": "8723:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1059,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1078,
- "name": "Identifier",
- "src": "8738:8:1"
- }
- ],
- "id": 1079,
- "name": "FunctionCall",
- "src": "8679:68:1"
- }
- ],
- "id": 1080,
- "name": "ExpressionStatement",
- "src": "8679:68:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 424,
- "type": "mapping(bytes32 => address)",
- "value": "wrappedAssets"
- },
- "id": 1081,
- "name": "Identifier",
- "src": "8783:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1053,
- "type": "bytes32",
- "value": "seed"
- },
- "id": 1082,
- "name": "Identifier",
- "src": "8797:4:1"
- }
- ],
- "id": 1083,
- "name": "IndexAccess",
- "src": "8783:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1062,
- "type": "address",
- "value": "asset"
- },
- "id": 1084,
- "name": "Identifier",
- "src": "8805:5:1"
- }
- ],
- "id": 1085,
- "name": "Assignment",
- "src": "8783:27:1"
- }
- ],
- "id": 1086,
- "name": "ExpressionStatement",
- "src": "8783:27:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 428,
- "type": "mapping(address => bool)",
- "value": "isWrappedAsset"
- },
- "id": 1087,
- "name": "Identifier",
- "src": "8820:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1062,
- "type": "address",
- "value": "asset"
- },
- "id": 1088,
- "name": "Identifier",
- "src": "8835:5:1"
- }
- ],
- "id": 1089,
- "name": "IndexAccess",
- "src": "8820:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1090,
- "name": "Literal",
- "src": "8844:4:1"
- }
- ],
- "id": 1091,
- "name": "Assignment",
- "src": "8820:28:1"
- }
- ],
- "id": 1092,
- "name": "ExpressionStatement",
- "src": "8820:28:1"
- }
- ],
- "id": 1093,
- "name": "Block",
- "src": "8047:808:1"
- }
- ],
- "id": 1094,
- "name": "FunctionDefinition",
- "src": "7916:939:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "70713960",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "name": "lockAssets",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1095,
- "name": "ElementaryTypeName",
- "src": "8890:7:1"
- }
- ],
- "id": 1096,
- "name": "VariableDeclaration",
- "src": "8890:13:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1097,
- "name": "ElementaryTypeName",
- "src": "8913:7:1"
- }
- ],
- "id": 1098,
- "name": "VariableDeclaration",
- "src": "8913:14:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1099,
- "name": "ElementaryTypeName",
- "src": "8937:7:1"
- }
- ],
- "id": 1100,
- "name": "VariableDeclaration",
- "src": "8937:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target_chain",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1101,
- "name": "ElementaryTypeName",
- "src": "8964:5:1"
- }
- ],
- "id": 1102,
- "name": "VariableDeclaration",
- "src": "8964:18:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "nonce",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 1103,
- "name": "ElementaryTypeName",
- "src": "8992:6:1"
- }
- ],
- "id": 1104,
- "name": "VariableDeclaration",
- "src": "8992:12:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "refund_dust",
- "overrides": null,
- "scope": 1314,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1105,
- "name": "ElementaryTypeName",
- "src": "9014:4:1"
- }
- ],
- "id": 1106,
- "name": "VariableDeclaration",
- "src": "9014:16:1"
- }
- ],
- "id": 1107,
- "name": "ParameterList",
- "src": "8880:156:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1110,
- "name": "ParameterList",
- "src": "9057:0:1"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3657,
- "type": "modifier ()",
- "value": "nonReentrant"
- },
- "id": 1108,
- "name": "Identifier",
- "src": "9044:12:1"
- }
- ],
- "id": 1109,
- "name": "ModifierInvocation",
- "src": "9044:12:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1111,
- "name": "Identifier",
- "src": "9067:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1102,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 1112,
- "name": "Identifier",
- "src": "9075:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 1113,
- "name": "Identifier",
- "src": "9091:8:1"
- }
- ],
- "id": 1114,
- "name": "BinaryOperation",
- "src": "9075:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6d757374206e6f74207472616e7366657220746f207468652073616d6520636861696e",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"must not transfer to the same chain\"",
- "value": "must not transfer to the same chain"
- },
- "id": 1115,
- "name": "Literal",
- "src": "9101:37:1"
- }
- ],
- "id": 1116,
- "name": "FunctionCall",
- "src": "9067:72:1"
- }
- ],
- "id": 1117,
- "name": "ExpressionStatement",
- "src": "9067:72:1"
- },
- {
- "attributes": {
- "assignments": [1119]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset_chain",
- "overrides": null,
- "scope": 1313,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1118,
- "name": "ElementaryTypeName",
- "src": "9150:5:1"
- }
- ],
- "id": 1119,
- "name": "VariableDeclaration",
- "src": "9150:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 1120,
- "name": "Identifier",
- "src": "9170:8:1"
- }
- ],
- "id": 1121,
- "name": "VariableDeclarationStatement",
- "src": "9150:28:1"
- },
- {
- "attributes": {
- "assignments": [1123],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "asset_address",
- "overrides": null,
- "scope": 1313,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1122,
- "name": "ElementaryTypeName",
- "src": "9188:7:1"
- }
- ],
- "id": 1123,
- "name": "VariableDeclaration",
- "src": "9188:21:1"
- }
- ],
- "id": 1124,
- "name": "VariableDeclarationStatement",
- "src": "9188:21:1"
- },
- {
- "attributes": {
- "assignments": [1126]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "decimals",
- "overrides": null,
- "scope": 1313,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1125,
- "name": "ElementaryTypeName",
- "src": "9219:5:1"
- }
- ],
- "id": 1126,
- "name": "VariableDeclaration",
- "src": "9219:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "decimals",
- "referencedDeclaration": 2584,
- "type": "function () view external returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract ERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3008,
- "type": "type(contract ERC20)",
- "value": "ERC20"
- },
- "id": 1127,
- "name": "Identifier",
- "src": "9236:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1128,
- "name": "Identifier",
- "src": "9242:5:1"
- }
- ],
- "id": 1129,
- "name": "FunctionCall",
- "src": "9236:12:1"
- }
- ],
- "id": 1130,
- "name": "MemberAccess",
- "src": "9236:21:1"
- }
- ],
- "id": 1131,
- "name": "FunctionCall",
- "src": "9236:23:1"
- }
- ],
- "id": 1132,
- "name": "VariableDeclarationStatement",
- "src": "9219:40:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 428,
- "type": "mapping(address => bool)",
- "value": "isWrappedAsset"
- },
- "id": 1133,
- "name": "Identifier",
- "src": "9274:14:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1134,
- "name": "Identifier",
- "src": "9289:5:1"
- }
- ],
- "id": 1135,
- "name": "IndexAccess",
- "src": "9274:21:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "burn",
- "referencedDeclaration": 1532,
- "type": "function (address,uint256) external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 1136,
- "name": "Identifier",
- "src": "9311:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1137,
- "name": "Identifier",
- "src": "9324:5:1"
- }
- ],
- "id": 1138,
- "name": "FunctionCall",
- "src": "9311:19:1"
- }
- ],
- "id": 1139,
- "name": "MemberAccess",
- "src": "9311:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1140,
- "name": "Identifier",
- "src": "9336:3:1"
- }
- ],
- "id": 1141,
- "name": "MemberAccess",
- "src": "9336:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1142,
- "name": "Identifier",
- "src": "9348:6:1"
- }
- ],
- "id": 1143,
- "name": "FunctionCall",
- "src": "9311:44:1"
- }
- ],
- "id": 1144,
- "name": "ExpressionStatement",
- "src": "9311:44:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1119,
- "type": "uint8",
- "value": "asset_chain"
- },
- "id": 1145,
- "name": "Identifier",
- "src": "9369:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "assetChain",
- "referencedDeclaration": 1443,
- "type": "function () view external returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 1146,
- "name": "Identifier",
- "src": "9383:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1147,
- "name": "Identifier",
- "src": "9396:5:1"
- }
- ],
- "id": 1148,
- "name": "FunctionCall",
- "src": "9383:19:1"
- }
- ],
- "id": 1149,
- "name": "MemberAccess",
- "src": "9383:30:1"
- }
- ],
- "id": 1150,
- "name": "FunctionCall",
- "src": "9383:32:1"
- }
- ],
- "id": 1151,
- "name": "Assignment",
- "src": "9369:46:1"
- }
- ],
- "id": 1152,
- "name": "ExpressionStatement",
- "src": "9369:46:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1123,
- "type": "bytes32",
- "value": "asset_address"
- },
- "id": 1153,
- "name": "Identifier",
- "src": "9429:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "assetAddress",
- "referencedDeclaration": 1445,
- "type": "function () view external returns (bytes32)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WrappedAsset",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 2147,
- "type": "type(contract WrappedAsset)",
- "value": "WrappedAsset"
- },
- "id": 1154,
- "name": "Identifier",
- "src": "9445:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1155,
- "name": "Identifier",
- "src": "9458:5:1"
- }
- ],
- "id": 1156,
- "name": "FunctionCall",
- "src": "9445:19:1"
- }
- ],
- "id": 1157,
- "name": "MemberAccess",
- "src": "9445:32:1"
- }
- ],
- "id": 1158,
- "name": "FunctionCall",
- "src": "9445:34:1"
- }
- ],
- "id": 1159,
- "name": "Assignment",
- "src": "9429:50:1"
- }
- ],
- "id": 1160,
- "name": "ExpressionStatement",
- "src": "9429:50:1"
- }
- ],
- "id": 1161,
- "name": "Block",
- "src": "9297:193:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1163]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "balanceBefore",
- "overrides": null,
- "scope": 1286,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1162,
- "name": "ElementaryTypeName",
- "src": "9510:7:1"
- }
- ],
- "id": 1163,
- "name": "VariableDeclaration",
- "src": "9510:21:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "balanceOf",
- "referencedDeclaration": 3025,
- "type": "function (address) view external returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1164,
- "name": "Identifier",
- "src": "9534:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1165,
- "name": "Identifier",
- "src": "9541:5:1"
- }
- ],
- "id": 1166,
- "name": "FunctionCall",
- "src": "9534:13:1"
- }
- ],
- "id": 1167,
- "name": "MemberAccess",
- "src": "9534:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 1168,
- "name": "ElementaryTypeName",
- "src": "9558:7:1"
- }
- ],
- "id": 1169,
- "name": "ElementaryTypeNameExpression",
- "src": "9558:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "contract Wormhole",
- "value": "this"
- },
- "id": 1170,
- "name": "Identifier",
- "src": "9566:4:1"
- }
- ],
- "id": 1171,
- "name": "FunctionCall",
- "src": "9558:13:1"
- }
- ],
- "id": 1172,
- "name": "FunctionCall",
- "src": "9534:38:1"
- }
- ],
- "id": 1173,
- "name": "VariableDeclarationStatement",
- "src": "9510:62:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "safeTransferFrom",
- "referencedDeclaration": 3145,
- "type": "function (contract IERC20,address,address,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1174,
- "name": "Identifier",
- "src": "9586:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1175,
- "name": "Identifier",
- "src": "9593:5:1"
- }
- ],
- "id": 1176,
- "name": "FunctionCall",
- "src": "9586:13:1"
- }
- ],
- "id": 1177,
- "name": "MemberAccess",
- "src": "9586:30:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1178,
- "name": "Identifier",
- "src": "9617:3:1"
- }
- ],
- "id": 1179,
- "name": "MemberAccess",
- "src": "9617:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 1180,
- "name": "ElementaryTypeName",
- "src": "9629:7:1"
- }
- ],
- "id": 1181,
- "name": "ElementaryTypeNameExpression",
- "src": "9629:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "contract Wormhole",
- "value": "this"
- },
- "id": 1182,
- "name": "Identifier",
- "src": "9637:4:1"
- }
- ],
- "id": 1183,
- "name": "FunctionCall",
- "src": "9629:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1184,
- "name": "Identifier",
- "src": "9644:6:1"
- }
- ],
- "id": 1185,
- "name": "FunctionCall",
- "src": "9586:65:1"
- }
- ],
- "id": 1186,
- "name": "ExpressionStatement",
- "src": "9586:65:1"
- },
- {
- "attributes": {
- "assignments": [1188]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "balanceAfter",
- "overrides": null,
- "scope": 1286,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1187,
- "name": "ElementaryTypeName",
- "src": "9665:7:1"
- }
- ],
- "id": 1188,
- "name": "VariableDeclaration",
- "src": "9665:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "balanceOf",
- "referencedDeclaration": 3025,
- "type": "function (address) view external returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1189,
- "name": "Identifier",
- "src": "9688:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1190,
- "name": "Identifier",
- "src": "9695:5:1"
- }
- ],
- "id": 1191,
- "name": "FunctionCall",
- "src": "9688:13:1"
- }
- ],
- "id": 1192,
- "name": "MemberAccess",
- "src": "9688:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_Wormhole_$1420",
- "typeString": "contract Wormhole"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 1193,
- "name": "ElementaryTypeName",
- "src": "9712:7:1"
- }
- ],
- "id": 1194,
- "name": "ElementaryTypeNameExpression",
- "src": "9712:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -28,
- "type": "contract Wormhole",
- "value": "this"
- },
- "id": 1195,
- "name": "Identifier",
- "src": "9720:4:1"
- }
- ],
- "id": 1196,
- "name": "FunctionCall",
- "src": "9712:13:1"
- }
- ],
- "id": 1197,
- "name": "FunctionCall",
- "src": "9688:38:1"
- }
- ],
- "id": 1198,
- "name": "VariableDeclarationStatement",
- "src": "9665:61:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1199,
- "name": "Identifier",
- "src": "9931:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2354,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1188,
- "type": "uint256",
- "value": "balanceAfter"
- },
- "id": 1200,
- "name": "Identifier",
- "src": "9940:12:1"
- }
- ],
- "id": 1201,
- "name": "MemberAccess",
- "src": "9940:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1163,
- "type": "uint256",
- "value": "balanceBefore"
- },
- "id": 1202,
- "name": "Identifier",
- "src": "9957:13:1"
- }
- ],
- "id": 1203,
- "name": "FunctionCall",
- "src": "9940:31:1"
- }
- ],
- "id": 1204,
- "name": "Assignment",
- "src": "9931:40:1"
- }
- ],
- "id": 1205,
- "name": "ExpressionStatement",
- "src": "9931:40:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1206,
- "name": "Identifier",
- "src": "10046:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1207,
- "name": "Literal",
- "src": "10057:1:1"
- }
- ],
- "id": 1208,
- "name": "BinaryOperation",
- "src": "10046:12:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1210]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "original_amount",
- "overrides": null,
- "scope": 1253,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1209,
- "name": "ElementaryTypeName",
- "src": "10078:7:1"
- }
- ],
- "id": 1210,
- "name": "VariableDeclaration",
- "src": "10078:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1211,
- "name": "Identifier",
- "src": "10104:6:1"
- }
- ],
- "id": 1212,
- "name": "VariableDeclarationStatement",
- "src": "10078:32:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1213,
- "name": "Identifier",
- "src": "10128:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "div",
- "referencedDeclaration": 2410,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1214,
- "name": "Identifier",
- "src": "10137:6:1"
- }
- ],
- "id": 1215,
- "name": "MemberAccess",
- "src": "10137:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "**",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1216,
- "name": "Literal",
- "src": "10148:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1217,
- "name": "ElementaryTypeName",
- "src": "10154:7:1"
- }
- ],
- "id": 1218,
- "name": "ElementaryTypeNameExpression",
- "src": "10154:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1219,
- "name": "Identifier",
- "src": "10162:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1220,
- "name": "Literal",
- "src": "10173:1:1"
- }
- ],
- "id": 1221,
- "name": "BinaryOperation",
- "src": "10162:12:1"
- }
- ],
- "id": 1222,
- "name": "FunctionCall",
- "src": "10154:21:1"
- }
- ],
- "id": 1223,
- "name": "BinaryOperation",
- "src": "10148:27:1"
- }
- ],
- "id": 1224,
- "name": "FunctionCall",
- "src": "10137:39:1"
- }
- ],
- "id": 1225,
- "name": "Assignment",
- "src": "10128:48:1"
- }
- ],
- "id": 1226,
- "name": "ExpressionStatement",
- "src": "10128:48:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1106,
- "type": "bool",
- "value": "refund_dust"
- },
- "id": 1227,
- "name": "Identifier",
- "src": "10199:11:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "safeTransfer",
- "referencedDeclaration": 3120,
- "type": "function (contract IERC20,address,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 3086,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1228,
- "name": "Identifier",
- "src": "10234:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1229,
- "name": "Identifier",
- "src": "10241:5:1"
- }
- ],
- "id": 1230,
- "name": "FunctionCall",
- "src": "10234:13:1"
- }
- ],
- "id": 1231,
- "name": "MemberAccess",
- "src": "10234:26:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1232,
- "name": "Identifier",
- "src": "10261:3:1"
- }
- ],
- "id": 1233,
- "name": "MemberAccess",
- "src": "10261:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "mod",
- "referencedDeclaration": 2432,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1210,
- "type": "uint256",
- "value": "original_amount"
- },
- "id": 1234,
- "name": "Identifier",
- "src": "10273:15:1"
- }
- ],
- "id": 1235,
- "name": "MemberAccess",
- "src": "10273:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "**",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1236,
- "name": "Literal",
- "src": "10293:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1237,
- "name": "ElementaryTypeName",
- "src": "10299:7:1"
- }
- ],
- "id": 1238,
- "name": "ElementaryTypeNameExpression",
- "src": "10299:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1239,
- "name": "Identifier",
- "src": "10307:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1240,
- "name": "Literal",
- "src": "10318:1:1"
- }
- ],
- "id": 1241,
- "name": "BinaryOperation",
- "src": "10307:12:1"
- }
- ],
- "id": 1242,
- "name": "FunctionCall",
- "src": "10299:21:1"
- }
- ],
- "id": 1243,
- "name": "BinaryOperation",
- "src": "10293:27:1"
- }
- ],
- "id": 1244,
- "name": "FunctionCall",
- "src": "10273:48:1"
- }
- ],
- "id": 1245,
- "name": "FunctionCall",
- "src": "10234:88:1"
- }
- ],
- "id": 1246,
- "name": "ExpressionStatement",
- "src": "10234:88:1"
- }
- ],
- "id": 1247,
- "name": "Block",
- "src": "10212:129:1"
- }
- ],
- "id": 1248,
- "name": "IfStatement",
- "src": "10195:146:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1249,
- "name": "Identifier",
- "src": "10359:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1250,
- "name": "Literal",
- "src": "10370:1:1"
- }
- ],
- "id": 1251,
- "name": "Assignment",
- "src": "10359:12:1"
- }
- ],
- "id": 1252,
- "name": "ExpressionStatement",
- "src": "10359:12:1"
- }
- ],
- "id": 1253,
- "name": "Block",
- "src": "10060:326:1"
- }
- ],
- "id": 1254,
- "name": "IfStatement",
- "src": "10042:344:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4",
- "typeString": "literal_string \"bridge balance would exceed maximum\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1255,
- "name": "Identifier",
- "src": "10400:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "div",
- "referencedDeclaration": 2410,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1188,
- "type": "uint256",
- "value": "balanceAfter"
- },
- "id": 1256,
- "name": "Identifier",
- "src": "10408:12:1"
- }
- ],
- "id": 1257,
- "name": "MemberAccess",
- "src": "10408:16:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "**",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1258,
- "name": "Literal",
- "src": "10425:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1259,
- "name": "ElementaryTypeName",
- "src": "10431:7:1"
- }
- ],
- "id": 1260,
- "name": "ElementaryTypeNameExpression",
- "src": "10431:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- null
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "decimals",
- "referencedDeclaration": 2584,
- "type": "function () view external returns (uint8)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "contract ERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 3008,
- "type": "type(contract ERC20)",
- "value": "ERC20"
- },
- "id": 1261,
- "name": "Identifier",
- "src": "10439:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1262,
- "name": "Identifier",
- "src": "10445:5:1"
- }
- ],
- "id": 1263,
- "name": "FunctionCall",
- "src": "10439:12:1"
- }
- ],
- "id": 1264,
- "name": "MemberAccess",
- "src": "10439:21:1"
- }
- ],
- "id": 1265,
- "name": "FunctionCall",
- "src": "10439:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1266,
- "name": "Literal",
- "src": "10465:1:1"
- }
- ],
- "id": 1267,
- "name": "BinaryOperation",
- "src": "10439:27:1"
- }
- ],
- "id": 1268,
- "name": "FunctionCall",
- "src": "10431:36:1"
- }
- ],
- "id": 1269,
- "name": "BinaryOperation",
- "src": "10425:42:1"
- }
- ],
- "id": 1270,
- "name": "FunctionCall",
- "src": "10408:60:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 357,
- "type": "uint64",
- "value": "MAX_UINT64"
- },
- "id": 1271,
- "name": "Identifier",
- "src": "10472:10:1"
- }
- ],
- "id": 1272,
- "name": "BinaryOperation",
- "src": "10408:74:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6272696467652062616c616e636520776f756c6420657863656564206d6178696d756d",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"bridge balance would exceed maximum\"",
- "value": "bridge balance would exceed maximum"
- },
- "id": 1273,
- "name": "Literal",
- "src": "10484:37:1"
- }
- ],
- "id": 1274,
- "name": "FunctionCall",
- "src": "10400:122:1"
- }
- ],
- "id": 1275,
- "name": "ExpressionStatement",
- "src": "10400:122:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1123,
- "type": "bytes32",
- "value": "asset_address"
- },
- "id": 1276,
- "name": "Identifier",
- "src": "10537:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes32)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": null
- },
- "id": 1277,
- "name": "ElementaryTypeName",
- "src": "10553:7:1"
- }
- ],
- "id": 1278,
- "name": "ElementaryTypeNameExpression",
- "src": "10553:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1279,
- "name": "ElementaryTypeName",
- "src": "10561:7:1"
- }
- ],
- "id": 1280,
- "name": "ElementaryTypeNameExpression",
- "src": "10561:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1096,
- "type": "address",
- "value": "asset"
- },
- "id": 1281,
- "name": "Identifier",
- "src": "10569:5:1"
- }
- ],
- "id": 1282,
- "name": "FunctionCall",
- "src": "10561:14:1"
- }
- ],
- "id": 1283,
- "name": "FunctionCall",
- "src": "10553:23:1"
- }
- ],
- "id": 1284,
- "name": "Assignment",
- "src": "10537:39:1"
- }
- ],
- "id": 1285,
- "name": "ExpressionStatement",
- "src": "10537:39:1"
- }
- ],
- "id": 1286,
- "name": "Block",
- "src": "9496:1091:1"
- }
- ],
- "id": 1287,
- "name": "IfStatement",
- "src": "9270:1317:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1288,
- "name": "Identifier",
- "src": "10636:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1289,
- "name": "Identifier",
- "src": "10644:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1290,
- "name": "Literal",
- "src": "10654:1:1"
- }
- ],
- "id": 1291,
- "name": "BinaryOperation",
- "src": "10644:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "7472756e636174656420616d6f756e74206d757374206e6f742062652030",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"truncated amount must not be 0\"",
- "value": "truncated amount must not be 0"
- },
- "id": 1292,
- "name": "Literal",
- "src": "10657:32:1"
- }
- ],
- "id": 1293,
- "name": "FunctionCall",
- "src": "10636:54:1"
- }
- ],
- "id": 1294,
- "name": "ExpressionStatement",
- "src": "10636:54:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 395,
- "type": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)",
- "value": "LogTokensLocked"
- },
- "id": 1295,
- "name": "Identifier",
- "src": "10706:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1102,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 1296,
- "name": "Identifier",
- "src": "10722:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1119,
- "type": "uint8",
- "value": "asset_chain"
- },
- "id": 1297,
- "name": "Identifier",
- "src": "10736:11:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1126,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1298,
- "name": "Identifier",
- "src": "10749:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1123,
- "type": "bytes32",
- "value": "asset_address"
- },
- "id": 1299,
- "name": "Identifier",
- "src": "10759:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes32)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": null
- },
- "id": 1300,
- "name": "ElementaryTypeName",
- "src": "10774:7:1"
- }
- ],
- "id": 1301,
- "name": "ElementaryTypeNameExpression",
- "src": "10774:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1302,
- "name": "ElementaryTypeName",
- "src": "10782:7:1"
- }
- ],
- "id": 1303,
- "name": "ElementaryTypeNameExpression",
- "src": "10782:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1304,
- "name": "Identifier",
- "src": "10790:3:1"
- }
- ],
- "id": 1305,
- "name": "MemberAccess",
- "src": "10790:10:1"
- }
- ],
- "id": 1306,
- "name": "FunctionCall",
- "src": "10782:19:1"
- }
- ],
- "id": 1307,
- "name": "FunctionCall",
- "src": "10774:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1100,
- "type": "bytes32",
- "value": "recipient"
- },
- "id": 1308,
- "name": "Identifier",
- "src": "10804:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1098,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1309,
- "name": "Identifier",
- "src": "10815:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1104,
- "type": "uint32",
- "value": "nonce"
- },
- "id": 1310,
- "name": "Identifier",
- "src": "10823:5:1"
- }
- ],
- "id": 1311,
- "name": "FunctionCall",
- "src": "10706:123:1"
- }
- ],
- "id": 1312,
- "name": "EmitStatement",
- "src": "10701:128:1"
- }
- ],
- "id": 1313,
- "name": "Block",
- "src": "9057:1779:1"
- }
- ],
- "id": 1314,
- "name": "FunctionDefinition",
- "src": "8861:1975:1"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "58d62e46",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "name": "lockETH",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 1403,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1315,
- "name": "ElementaryTypeName",
- "src": "10868:7:1"
- }
- ],
- "id": 1316,
- "name": "VariableDeclaration",
- "src": "10868:17:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "target_chain",
- "overrides": null,
- "scope": 1403,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1317,
- "name": "ElementaryTypeName",
- "src": "10895:5:1"
- }
- ],
- "id": 1318,
- "name": "VariableDeclaration",
- "src": "10895:18:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "nonce",
- "overrides": null,
- "scope": 1403,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint32",
- "type": "uint32"
- },
- "id": 1319,
- "name": "ElementaryTypeName",
- "src": "10923:6:1"
- }
- ],
- "id": 1320,
- "name": "VariableDeclaration",
- "src": "10923:12:1"
- }
- ],
- "id": 1321,
- "name": "ParameterList",
- "src": "10858:83:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1324,
- "name": "ParameterList",
- "src": "10970:0:1"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3657,
- "type": "modifier ()",
- "value": "nonReentrant"
- },
- "id": 1322,
- "name": "Identifier",
- "src": "10957:12:1"
- }
- ],
- "id": 1323,
- "name": "ModifierInvocation",
- "src": "10957:12:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_84da05290fceea4e386923ffe3e265c937087704025788355b73caadd151270b",
- "typeString": "literal_string \"must not transfer to the same chain\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1325,
- "name": "Identifier",
- "src": "10980:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1318,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 1326,
- "name": "Identifier",
- "src": "10988:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 1327,
- "name": "Identifier",
- "src": "11004:8:1"
- }
- ],
- "id": 1328,
- "name": "BinaryOperation",
- "src": "10988:24:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6d757374206e6f74207472616e7366657220746f207468652073616d6520636861696e",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"must not transfer to the same chain\"",
- "value": "must not transfer to the same chain"
- },
- "id": 1329,
- "name": "Literal",
- "src": "11014:37:1"
- }
- ],
- "id": 1330,
- "name": "FunctionCall",
- "src": "10980:72:1"
- }
- ],
- "id": 1331,
- "name": "ExpressionStatement",
- "src": "10980:72:1"
- },
- {
- "attributes": {
- "assignments": [1333]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "remainder",
- "overrides": null,
- "scope": 1402,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1332,
- "name": "ElementaryTypeName",
- "src": "11063:7:1"
- }
- ],
- "id": 1333,
- "name": "VariableDeclaration",
- "src": "11063:17:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "mod",
- "referencedDeclaration": 2432,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "value",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1334,
- "name": "Identifier",
- "src": "11083:3:1"
- }
- ],
- "id": 1335,
- "name": "MemberAccess",
- "src": "11083:9:1"
- }
- ],
- "id": 1336,
- "name": "MemberAccess",
- "src": "11083:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "**",
- "type": "int_const 1000000000"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1337,
- "name": "Literal",
- "src": "11097:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1338,
- "name": "Literal",
- "src": "11103:1:1"
- }
- ],
- "id": 1339,
- "name": "BinaryOperation",
- "src": "11097:7:1"
- }
- ],
- "id": 1340,
- "name": "FunctionCall",
- "src": "11083:22:1"
- }
- ],
- "id": 1341,
- "name": "VariableDeclarationStatement",
- "src": "11063:42:1"
- },
- {
- "attributes": {
- "assignments": [1343]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "transfer_amount",
- "overrides": null,
- "scope": 1402,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1342,
- "name": "ElementaryTypeName",
- "src": "11115:7:1"
- }
- ],
- "id": 1343,
- "name": "VariableDeclaration",
- "src": "11115:23:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "div",
- "referencedDeclaration": 2410,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "value",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1344,
- "name": "Identifier",
- "src": "11141:3:1"
- }
- ],
- "id": 1345,
- "name": "MemberAccess",
- "src": "11141:9:1"
- }
- ],
- "id": 1346,
- "name": "MemberAccess",
- "src": "11141:13:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_rational_1000000000_by_1",
- "typeString": "int_const 1000000000"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "operator": "**",
- "type": "int_const 1000000000"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1347,
- "name": "Literal",
- "src": "11155:2:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1348,
- "name": "Literal",
- "src": "11161:1:1"
- }
- ],
- "id": 1349,
- "name": "BinaryOperation",
- "src": "11155:7:1"
- }
- ],
- "id": 1350,
- "name": "FunctionCall",
- "src": "11141:22:1"
- }
- ],
- "id": 1351,
- "name": "VariableDeclarationStatement",
- "src": "11115:48:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_91dc3b6ab9754748867317f89b73413ba314ee8a1acb42b6836d39d61d9e310e",
- "typeString": "literal_string \"truncated amount must not be 0\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1352,
- "name": "Identifier",
- "src": "11173:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1343,
- "type": "uint256",
- "value": "transfer_amount"
- },
- "id": 1353,
- "name": "Identifier",
- "src": "11181:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1354,
- "name": "Literal",
- "src": "11200:1:1"
- }
- ],
- "id": 1355,
- "name": "BinaryOperation",
- "src": "11181:20:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "7472756e636174656420616d6f756e74206d757374206e6f742062652030",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"truncated amount must not be 0\"",
- "value": "truncated amount must not be 0"
- },
- "id": 1356,
- "name": "Literal",
- "src": "11203:32:1"
- }
- ],
- "id": 1357,
- "name": "FunctionCall",
- "src": "11173:63:1"
- }
- ],
- "id": 1358,
- "name": "ExpressionStatement",
- "src": "11173:63:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "transfer",
- "referencedDeclaration": null,
- "type": "function (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1359,
- "name": "Identifier",
- "src": "11282:3:1"
- }
- ],
- "id": 1362,
- "name": "MemberAccess",
- "src": "11282:10:1"
- }
- ],
- "id": 1363,
- "name": "MemberAccess",
- "src": "11282:19:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1333,
- "type": "uint256",
- "value": "remainder"
- },
- "id": 1364,
- "name": "Identifier",
- "src": "11302:9:1"
- }
- ],
- "id": 1365,
- "name": "FunctionCall",
- "src": "11282:30:1"
- }
- ],
- "id": 1366,
- "name": "ExpressionStatement",
- "src": "11282:30:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "names": ["value"],
- "type": "function () payable external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "deposit",
- "referencedDeclaration": 1425,
- "type": "function () payable external"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "contract WETH",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1431,
- "type": "type(contract WETH)",
- "value": "WETH"
- },
- "id": 1367,
- "name": "Identifier",
- "src": "11356:4:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 365,
- "type": "address",
- "value": "WETHAddress"
- },
- "id": 1368,
- "name": "Identifier",
- "src": "11361:11:1"
- }
- ],
- "id": 1369,
- "name": "FunctionCall",
- "src": "11356:17:1"
- }
- ],
- "id": 1370,
- "name": "MemberAccess",
- "src": "11356:25:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "value",
- "referencedDeclaration": null,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1371,
- "name": "Identifier",
- "src": "11390:3:1"
- }
- ],
- "id": 1372,
- "name": "MemberAccess",
- "src": "11390:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1333,
- "type": "uint256",
- "value": "remainder"
- },
- "id": 1373,
- "name": "Identifier",
- "src": "11402:9:1"
- }
- ],
- "id": 1374,
- "name": "BinaryOperation",
- "src": "11390:21:1"
- }
- ],
- "id": 1375,
- "name": "FunctionCallOptions",
- "src": "11356:56:1"
- }
- ],
- "id": 1376,
- "name": "FunctionCall",
- "src": "11356:58:1"
- }
- ],
- "id": 1377,
- "name": "ExpressionStatement",
- "src": "11356:58:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- {
- "typeIdentifier": "t_rational_9_by_1",
- "typeString": "int_const 9"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint32",
- "typeString": "uint32"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 395,
- "type": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)",
- "value": "LogTokensLocked"
- },
- "id": 1378,
- "name": "Identifier",
- "src": "11461:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1318,
- "type": "uint8",
- "value": "target_chain"
- },
- "id": 1379,
- "name": "Identifier",
- "src": "11477:12:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 362,
- "type": "uint8",
- "value": "CHAIN_ID"
- },
- "id": 1380,
- "name": "Identifier",
- "src": "11491:8:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "39",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 9",
- "value": "9"
- },
- "id": 1381,
- "name": "Literal",
- "src": "11501:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes32)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": null
- },
- "id": 1382,
- "name": "ElementaryTypeName",
- "src": "11504:7:1"
- }
- ],
- "id": 1383,
- "name": "ElementaryTypeNameExpression",
- "src": "11504:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1384,
- "name": "ElementaryTypeName",
- "src": "11512:7:1"
- }
- ],
- "id": 1385,
- "name": "ElementaryTypeNameExpression",
- "src": "11512:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 365,
- "type": "address",
- "value": "WETHAddress"
- },
- "id": 1386,
- "name": "Identifier",
- "src": "11520:11:1"
- }
- ],
- "id": 1387,
- "name": "FunctionCall",
- "src": "11512:20:1"
- }
- ],
- "id": 1388,
- "name": "FunctionCall",
- "src": "11504:29:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes32",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes32)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": null
- },
- "id": 1389,
- "name": "ElementaryTypeName",
- "src": "11535:7:1"
- }
- ],
- "id": 1390,
- "name": "ElementaryTypeNameExpression",
- "src": "11535:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": null
- },
- "id": 1391,
- "name": "ElementaryTypeName",
- "src": "11543:7:1"
- }
- ],
- "id": 1392,
- "name": "ElementaryTypeNameExpression",
- "src": "11543:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1393,
- "name": "Identifier",
- "src": "11551:3:1"
- }
- ],
- "id": 1394,
- "name": "MemberAccess",
- "src": "11551:10:1"
- }
- ],
- "id": 1395,
- "name": "FunctionCall",
- "src": "11543:19:1"
- }
- ],
- "id": 1396,
- "name": "FunctionCall",
- "src": "11535:28:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1316,
- "type": "bytes32",
- "value": "recipient"
- },
- "id": 1397,
- "name": "Identifier",
- "src": "11565:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1343,
- "type": "uint256",
- "value": "transfer_amount"
- },
- "id": 1398,
- "name": "Identifier",
- "src": "11576:15:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1320,
- "type": "uint32",
- "value": "nonce"
- },
- "id": 1399,
- "name": "Identifier",
- "src": "11593:5:1"
- }
- ],
- "id": 1400,
- "name": "FunctionCall",
- "src": "11461:138:1"
- }
- ],
- "id": 1401,
- "name": "EmitStatement",
- "src": "11456:143:1"
- }
- ],
- "id": 1402,
- "name": "Block",
- "src": "10970:636:1"
- }
- ],
- "id": 1403,
- "name": "FunctionDefinition",
- "src": "10842:764:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "fallback",
- "modifiers": [null],
- "name": "",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1404,
- "name": "ParameterList",
- "src": "11620:2:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1405,
- "name": "ParameterList",
- "src": "11640:0:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- }
- ],
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "type": "function (string memory) pure",
- "value": "revert"
- },
- "id": 1406,
- "name": "Identifier",
- "src": "11641:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"please use lockETH to transfer ETH to Solana\"",
- "value": "please use lockETH to transfer ETH to Solana"
- },
- "id": 1407,
- "name": "Literal",
- "src": "11648:46:1"
- }
- ],
- "id": 1408,
- "name": "FunctionCall",
- "src": "11641:54:1"
- }
- ],
- "id": 1409,
- "name": "ExpressionStatement",
- "src": "11641:54:1"
- }
- ],
- "id": 1410,
- "name": "Block",
- "src": "11640:57:1"
- }
- ],
- "id": 1411,
- "name": "FunctionDefinition",
- "src": "11612:85:1"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "receive",
- "modifiers": [null],
- "name": "",
- "overrides": null,
- "scope": 1420,
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1412,
- "name": "ParameterList",
- "src": "11710:2:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1413,
- "name": "ParameterList",
- "src": "11730:0:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
- "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
- }
- ],
- "overloadedDeclarations": [-19, -19],
- "referencedDeclaration": -19,
- "type": "function (string memory) pure",
- "value": "revert"
- },
- "id": 1414,
- "name": "Identifier",
- "src": "11731:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"please use lockETH to transfer ETH to Solana\"",
- "value": "please use lockETH to transfer ETH to Solana"
- },
- "id": 1415,
- "name": "Literal",
- "src": "11738:46:1"
- }
- ],
- "id": 1416,
- "name": "FunctionCall",
- "src": "11731:54:1"
- }
- ],
- "id": 1417,
- "name": "ExpressionStatement",
- "src": "11731:54:1"
- }
- ],
- "id": 1418,
- "name": "Block",
- "src": "11730:57:1"
- }
- ],
- "id": 1419,
- "name": "FunctionDefinition",
- "src": "11703:84:1"
- }
- ],
- "id": 1420,
- "name": "ContractDefinition",
- "src": "463:11326:1"
- },
- {
- "attributes": {
- "abstract": false,
- "contractDependencies": [3086],
- "contractKind": "interface",
- "documentation": null,
- "fullyImplemented": false,
- "linearizedBaseContracts": [1431, 3086],
- "name": "WETH",
- "scope": 1432
- },
- "children": [
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 1421,
- "name": "UserDefinedTypeName",
- "src": "11810:6:1"
- }
- ],
- "id": 1422,
- "name": "InheritanceSpecifier",
- "src": "11810:6:1"
- },
- {
- "attributes": {
- "body": null,
- "documentation": null,
- "functionSelector": "d0e30db0",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "deposit",
- "overrides": null,
- "scope": 1431,
- "stateMutability": "payable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1423,
- "name": "ParameterList",
- "src": "11839:2:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1424,
- "name": "ParameterList",
- "src": "11858:0:1"
- }
- ],
- "id": 1425,
- "name": "FunctionDefinition",
- "src": "11823:36:1"
- },
- {
- "attributes": {
- "body": null,
- "documentation": null,
- "functionSelector": "2e1a7d4d",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "withdraw",
- "overrides": null,
- "scope": 1431,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1430,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1426,
- "name": "ElementaryTypeName",
- "src": "11883:7:1"
- }
- ],
- "id": 1427,
- "name": "VariableDeclaration",
- "src": "11883:14:1"
- }
- ],
- "id": 1428,
- "name": "ParameterList",
- "src": "11882:16:1"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1429,
- "name": "ParameterList",
- "src": "11907:0:1"
- }
- ],
- "id": 1430,
- "name": "FunctionDefinition",
- "src": "11865:43:1"
- }
- ],
- "id": 1431,
- "name": "ContractDefinition",
- "src": "11792:118:1"
- }
- ],
- "id": 1432,
- "name": "SourceUnit",
- "src": "64:11847:1"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.885Z",
- "devdoc": {
- "kind": "dev",
- "methods": {},
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/contracts/WrappedAsset.json b/packages/bridge-sdk/contracts/WrappedAsset.json
deleted file mode 100644
index 451168f..0000000
--- a/packages/bridge-sdk/contracts/WrappedAsset.json
+++ /dev/null
@@ -1,19868 +0,0 @@
-{
- "contractName": "WrappedAsset",
- "abi": [
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "assetAddress",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "assetChain",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "bridge",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "initialized",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint8",
- "name": "_assetChain",
- "type": "uint8"
- },
- {
- "internalType": "bytes32",
- "name": "_assetAddress",
- "type": "bytes32"
- },
- {
- "internalType": "uint8",
- "name": "decimals",
- "type": "uint8"
- }
- ],
- "name": "initialize",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "mint",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "burn",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "decimals",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "sender",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "addedValue",
- "type": "uint256"
- }
- ],
- "name": "increaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "subtractedValue",
- "type": "uint256"
- }
- ],
- "name": "decreaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assetAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"assetChain\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"_assetChain\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_assetAddress\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol\":\"WrappedAsset\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol\":{\"keccak256\":\"0x1aca747b823c4d8492ae379cfd9495e8ff19726302d943da56b2bb71aebecc73\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://716c755b41c76deb60297664878f07e0972867918fde13c20c196263d3daa554\",\"dweb:/ipfs/QmbrxvDYfcgSjBBnDdXyZJcwd8pYyyrQhYqY5h6DaxWKcy\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x9486045e189facd2e868ece35249872598ef03f1087fb6fa4d1161842daa2287\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77c3a04ef8453788b14b1ebbc24dd3f0a18ceb2615cd156aac949a611e552af8\",\"dweb:/ipfs/QmcmqWGguRM3iLuF57tcyrN3F6EA63kzeNkDfQuteBnurr\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]}},\"version\":1}",
- "bytecode": "0x60806040526012600760006101000a81548160ff021916908360ff16021790555034801561002c57600080fd5b50611e998061003c6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806340c10f19116100a2578063a457c2d711610071578063a457c2d7146104ff578063a7a2d3fb14610563578063a9059cbb146105ab578063dd62ed3e1461060f578063e78cea921461068757610116565b806340c10f191461038857806370a08231146103d657806395d89b411461042e5780639dc29fac146104b157610116565b806318160ddd116100e957806318160ddd146102435780631ba46cfd1461026157806323b872dd1461027f578063313ce56714610303578063395093511461032457610116565b8063026b05391461011b57806306fdde031461013c578063095ea7b3146101bf578063158ef93e14610223575b600080fd5b6101236106bb565b604051808260ff16815260200191505060405180910390f35b6101446106cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610184578082015181840152602081019050610169565b50505050905090810190601f1680156101b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020b600480360360408110156101d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610800565b60405180821515815260200191505060405180910390f35b61022b61081e565b60405180821515815260200191505060405180910390f35b61024b610831565b6040518082815260200191505060405180910390f35b61026961083b565b6040518082815260200191505060405180910390f35b6102eb6004803603606081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610841565b60405180821515815260200191505060405180910390f35b61030b61091a565b604051808260ff16815260200191505060405180910390f35b6103706004803603604081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610931565b60405180821515815260200191505060405180910390f35b6103d46004803603604081101561039e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e4565b005b610418600480360360208110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b610436610ae1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047657808201518184015260208101905061045b565b50505050905090810190601f1680156104a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104fd600480360360408110156104c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b83565b005b61054b6004803603604081101561051557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b60405180821515815260200191505060405180910390f35b6105a96004803603606081101561057957600080fd5b81019080803560ff16906020019092919080359060200190929190803560ff169060200190929190505050610d04565b005b6105f7600480360360408110156105c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e70565b60405180821515815260200191505060405180910390f35b6106716004803603604081101561062557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e8e565b6040518082815260200191505060405180910390f35b61068f610f15565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900460ff1681565b60606106e760008054906101000a900460ff1660ff16610f3b565b6106ef61107f565b60405160200180807f576f726d686f6c652057726170706564202d200000000000000000000000000081525060130183805190602001908083835b6020831061074d578051825260208201915060208101905060208303925061072a565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b602083106107c657805182526020820191506020810190506020830392506107a3565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905090565b600061081461080d611243565b848461124b565b6001905092915050565b600260009054906101000a900460ff1681565b6000600554905090565b60015481565b600061084e848484611442565b61090f8461085a611243565b61090a85604051806060016040528060288152602001611d6360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108c0611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b61124b565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006109da61093e611243565b846109d5856004600061094f611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b61124b565b6001905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611e1a6025913960400191505060405180910390fd5b610a94828261183e565b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b795780601f10610b4e57610100808354040283529160200191610b79565b820191906000526020600020905b815481529060010190602001808311610b5c57829003601f168201915b5050505050905090565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dd16025913960400191505060405180910390fd5b610c3382826119fb565b5050565b6000610cfa610c44611243565b84610cf585604051806060016040528060258152602001611e3f6025913960046000610c6e611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b61124b565b6001905092915050565b600260009054906101000a900460ff1615610d87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f616c726561647920696e697469616c697a65640000000000000000000000000081525060200191505060405180910390fd5b826000806101000a81548160ff021916908360ff1602179055508160018190555033600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260006101000a81548160ff0219169083151502179055506040518060400160405280600381526020017f575754000000000000000000000000000000000000000000000000000000000081525060069080519060200190610e4f929190611c38565b5080600760006101000a81548160ff021916908360ff160217905550505050565b6000610e84610e7d611243565b8484611442565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000821415610f83576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061107a565b600082905060005b60008214610fad578080600101915050600a8281610fa557fe5b049150610f8b565b60608167ffffffffffffffff81118015610fc657600080fd5b506040519080825280601f01601f191660200182016040528015610ff95781602001600182028036833780820191505090505b50905060006001830390505b6000861461107257600a868161101757fe5b0660300160f81b8282806001900393508151811061103157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a868161106a57fe5b049550611005565b819450505050505b919050565b6060806040518060400160405280601081526020017f30313233343536373839616263646566000000000000000000000000000000008152509050600060015490506060600260200260020160ff1667ffffffffffffffff811180156110e457600080fd5b506040519080825280601f01601f1916602001820160405280156111175781602001600182028036833780820191505090505b50905060005b602060ff168110156112395783600484836020811061113857fe5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff168151811061117057fe5b602001015160f81c60f81b82600283028151811061118a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535083600f60f81b8483602081106111cb57fe5b1a60f81b1660f81c60ff16815181106111e057fe5b602001015160f81c60f81b8260028302600101815181106111fd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061111d565b5080935050505090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611df66024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611357576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d1b6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dac6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561154e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611cd66023913960400191505060405180910390fd5b6115ba81604051806060016040528060268152602001611d3d60269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061164f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561176e578082015181840152602081019050611753565b50505050905090810190601f16801561179b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6118f6816005546117b690919063ffffffff16565b60058190555061194e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611d8b6021913960400191505060405180910390fd5b611aed81604051806060016040528060228152602001611cf960229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4581600554611bb590919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600082821115611c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611c7957805160ff1916838001178555611ca7565b82800160010185558215611ca7579182015b82811115611ca6578251825591602001919060010190611c8b565b5b509050611cb49190611cb8565b5090565b5b80821115611cd1576000816000905550600101611cb9565b509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573736275726e2063616e206f6e6c792062652063616c6c6564206279207468652062726964676545524332303a20617070726f76652066726f6d20746865207a65726f20616464726573736d696e742063616e206f6e6c792062652063616c6c6564206279207468652062726964676545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b3a2ff5f0503f2258e143f986f075a1cf9f8ce968a2954f3953e79c45d383ede64736f6c634300060c0033",
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806340c10f19116100a2578063a457c2d711610071578063a457c2d7146104ff578063a7a2d3fb14610563578063a9059cbb146105ab578063dd62ed3e1461060f578063e78cea921461068757610116565b806340c10f191461038857806370a08231146103d657806395d89b411461042e5780639dc29fac146104b157610116565b806318160ddd116100e957806318160ddd146102435780631ba46cfd1461026157806323b872dd1461027f578063313ce56714610303578063395093511461032457610116565b8063026b05391461011b57806306fdde031461013c578063095ea7b3146101bf578063158ef93e14610223575b600080fd5b6101236106bb565b604051808260ff16815260200191505060405180910390f35b6101446106cc565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610184578082015181840152602081019050610169565b50505050905090810190601f1680156101b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020b600480360360408110156101d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610800565b60405180821515815260200191505060405180910390f35b61022b61081e565b60405180821515815260200191505060405180910390f35b61024b610831565b6040518082815260200191505060405180910390f35b61026961083b565b6040518082815260200191505060405180910390f35b6102eb6004803603606081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610841565b60405180821515815260200191505060405180910390f35b61030b61091a565b604051808260ff16815260200191505060405180910390f35b6103706004803603604081101561033a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610931565b60405180821515815260200191505060405180910390f35b6103d46004803603604081101561039e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e4565b005b610418600480360360208110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a98565b6040518082815260200191505060405180910390f35b610436610ae1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047657808201518184015260208101905061045b565b50505050905090810190601f1680156104a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104fd600480360360408110156104c757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b83565b005b61054b6004803603604081101561051557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c37565b60405180821515815260200191505060405180910390f35b6105a96004803603606081101561057957600080fd5b81019080803560ff16906020019092919080359060200190929190803560ff169060200190929190505050610d04565b005b6105f7600480360360408110156105c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e70565b60405180821515815260200191505060405180910390f35b6106716004803603604081101561062557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e8e565b6040518082815260200191505060405180910390f35b61068f610f15565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900460ff1681565b60606106e760008054906101000a900460ff1660ff16610f3b565b6106ef61107f565b60405160200180807f576f726d686f6c652057726170706564202d200000000000000000000000000081525060130183805190602001908083835b6020831061074d578051825260208201915060208101905060208303925061072a565b6001836020036101000a038019825116818451168082178552505050505050905001807f2d0000000000000000000000000000000000000000000000000000000000000081525060010182805190602001908083835b602083106107c657805182526020820191506020810190506020830392506107a3565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905090565b600061081461080d611243565b848461124b565b6001905092915050565b600260009054906101000a900460ff1681565b6000600554905090565b60015481565b600061084e848484611442565b61090f8461085a611243565b61090a85604051806060016040528060288152602001611d6360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108c0611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b61124b565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006109da61093e611243565b846109d5856004600061094f611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b61124b565b6001905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611e1a6025913960400191505060405180910390fd5b610a94828261183e565b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b795780601f10610b4e57610100808354040283529160200191610b79565b820191906000526020600020905b815481529060010190602001808311610b5c57829003601f168201915b5050505050905090565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dd16025913960400191505060405180910390fd5b610c3382826119fb565b5050565b6000610cfa610c44611243565b84610cf585604051806060016040528060258152602001611e3f6025913960046000610c6e611243565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b61124b565b6001905092915050565b600260009054906101000a900460ff1615610d87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f616c726561647920696e697469616c697a65640000000000000000000000000081525060200191505060405180910390fd5b826000806101000a81548160ff021916908360ff1602179055508160018190555033600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260006101000a81548160ff0219169083151502179055506040518060400160405280600381526020017f575754000000000000000000000000000000000000000000000000000000000081525060069080519060200190610e4f929190611c38565b5080600760006101000a81548160ff021916908360ff160217905550505050565b6000610e84610e7d611243565b8484611442565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000821415610f83576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061107a565b600082905060005b60008214610fad578080600101915050600a8281610fa557fe5b049150610f8b565b60608167ffffffffffffffff81118015610fc657600080fd5b506040519080825280601f01601f191660200182016040528015610ff95781602001600182028036833780820191505090505b50905060006001830390505b6000861461107257600a868161101757fe5b0660300160f81b8282806001900393508151811061103157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a868161106a57fe5b049550611005565b819450505050505b919050565b6060806040518060400160405280601081526020017f30313233343536373839616263646566000000000000000000000000000000008152509050600060015490506060600260200260020160ff1667ffffffffffffffff811180156110e457600080fd5b506040519080825280601f01601f1916602001820160405280156111175781602001600182028036833780820191505090505b50905060005b602060ff168110156112395783600484836020811061113857fe5b1a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff168151811061117057fe5b602001015160f81c60f81b82600283028151811061118a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535083600f60f81b8483602081106111cb57fe5b1a60f81b1660f81c60ff16815181106111e057fe5b602001015160f81c60f81b8260028302600101815181106111fd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061111d565b5080935050505090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611df66024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611357576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611d1b6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611dac6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561154e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611cd66023913960400191505060405180910390fd5b6115ba81604051806060016040528060268152602001611d3d60269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061164f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561176e578082015181840152602081019050611753565b50505050905090810190601f16801561179b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6118f6816005546117b690919063ffffffff16565b60058190555061194e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117b690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611d8b6021913960400191505060405180910390fd5b611aed81604051806060016040528060228152602001611cf960229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4581600554611bb590919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600082821115611c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611c7957805160ff1916838001178555611ca7565b82800160010185558215611ca7579182015b82811115611ca6578251825591602001919060010190611c8b565b5b509050611cb49190611cb8565b5090565b5b80821115611cd1576000816000905550600101611cb9565b509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573736275726e2063616e206f6e6c792062652063616c6c6564206279207468652062726964676545524332303a20617070726f76652066726f6d20746865207a65726f20616464726573736d696e742063616e206f6e6c792062652063616c6c6564206279207468652062726964676545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b3a2ff5f0503f2258e143f986f075a1cf9f8ce968a2954f3953e79c45d383ede64736f6c634300060c0033",
- "immutableReferences": {},
- "sourceMap": "304:10137:2:-:0;;;1622:2;1596:28;;;;;;;;;;;;;;;;;;;;304:10137;;;;;;;;;;;;;;;;",
- "deployedSourceMap": "304:10137:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;351:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1690:176;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4826:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;413:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3849:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;380:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5444:309;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3708:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6148:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;835:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4005:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3000:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1017:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6842:258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;470:359;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4325:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4547:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;442:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;351:23;;;;;;;;;;;;:::o;1690:176::-;1727:13;1806:24;1819:10;;;;;;;;;;1806:24;;:12;:24::i;:::-;1837:20;:18;:20::i;:::-;1766:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1752:107;;1690:176;:::o;4826:158::-;4901:4;4917:39;4926:12;:10;:12::i;:::-;4940:7;4949:6;4917:8;:39::i;:::-;4973:4;4966:11;;4826:158;;;;:::o;413:23::-;;;;;;;;;;;;;:::o;3849:98::-;3902:7;3928:12;;3921:19;;3849:98;:::o;380:27::-;;;;:::o;5444:309::-;5542:4;5558:36;5568:6;5576:9;5587:6;5558:9;:36::i;:::-;5604:121;5613:6;5621:12;:10;:12::i;:::-;5635:89;5673:6;5635:89;;;;;;;;;;;;;;;;;:11;:19;5647:6;5635:19;;;;;;;;;;;;;;;:33;5655:12;:10;:12::i;:::-;5635:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5604:8;:121::i;:::-;5742:4;5735:11;;5444:309;;;;;:::o;3708:81::-;3749:5;3773:9;;;;;;;;;;;3766:16;;3708:81;:::o;6148:207::-;6228:4;6244:83;6253:12;:10;:12::i;:::-;6267:7;6276:50;6315:10;6276:11;:25;6288:12;:10;:12::i;:::-;6276:25;;;;;;;;;;;;;;;:34;6302:7;6276:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6244:8;:83::i;:::-;6344:4;6337:11;;6148:207;;;;:::o;835:176::-;923:6;;;;;;;;;;;909:20;;:10;:20;;;901:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;982:22;988:7;997:6;982:5;:22::i;:::-;835:176;;:::o;4005:117::-;4071:7;4097:9;:18;4107:7;4097:18;;;;;;;;;;;;;;;;4090:25;;4005:117;;;:::o;3000:85::-;3039:13;3071:7;3064:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3000:85;:::o;1017:176::-;1105:6;;;;;;;;;;;1091:20;;:10;:20;;;1083:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1164:22;1170:7;1179:6;1164:5;:22::i;:::-;1017:176;;:::o;6842:258::-;6927:4;6943:129;6952:12;:10;:12::i;:::-;6966:7;6975:96;7014:15;6975:96;;;;;;;;;;;;;;;;;:11;:25;6987:12;:10;:12::i;:::-;6975:25;;;;;;;;;;;;;;;:34;7001:7;6975:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6943:8;:129::i;:::-;7089:4;7082:11;;6842:258;;;;:::o;470:359::-;574:11;;;;;;;;;;;573:12;565:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;660:11;647:10;;:24;;;;;;;;;;;;;;;;;;696:13;681:12;:28;;;;728:10;719:6;;:19;;;;;;;;;;;;;;;;;;762:4;748:11;;:18;;;;;;;;;;;;;;;;;;777:15;;;;;;;;;;;;;;;;;:7;:15;;;;;;;;;;;;:::i;:::-;;814:8;802:9;;:20;;;;;;;;;;;;;;;;;;470:359;;;:::o;4325:164::-;4403:4;4419:42;4429:12;:10;:12::i;:::-;4443:9;4454:6;4419:9;:42::i;:::-;4478:4;4471:11;;4325:164;;;;:::o;4547:141::-;4628:7;4654:11;:18;4666:5;4654:18;;;;;;;;;;;;;;;:27;4673:7;4654:27;;;;;;;;;;;;;;;;4647:34;;4547:141;;;;:::o;442:21::-;;;;;;;;;;;;;:::o;1922:469::-;1976:27;2025:1;2019:2;:7;2015:48;;;2042:10;;;;;;;;;;;;;;;;;;;;;2015:48;2072:6;2081:2;2072:11;;2093:8;2111:66;2123:1;2118;:6;2111:66;;2140:5;;;;;;;2164:2;2159:7;;;;;;;;;2111:66;;;2186:17;2216:3;2206:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2186:34;;2230:6;2245:1;2239:3;:7;2230:16;;2256:100;2269:1;2263:2;:7;2256:100;;2319:2;2314;:7;;;;;;2309:2;:12;2298:25;;2286:4;2291:3;;;;;;;2286:9;;;;;;;;;;;:37;;;;;;;;;;;2343:2;2337:8;;;;;;;;;2256:100;;;2379:4;2365:19;;;;;;1922:469;;;;:::o;2447:440::-;2499:13;2524:21;:42;;;;;;;;;;;;;;;;;;;2576:12;2591;;2576:27;;2614:16;2661:1;2647:11;:15;2643:1;:19;2633:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2614:49;;2678:6;2673:180;2694:11;2690:15;;:1;:15;2673:180;;;2739:8;2770:1;2759:4;2764:1;2759:7;;;;;;;;;;:12;;;;;2753:19;;2748:25;;2739:35;;;;;;;;;;;;;;;;2726:3;2734:1;2730;:5;2726:10;;;;;;;;;;;:48;;;;;;;;;;;2805:8;2835:4;2825:14;;:4;2830:1;2825:7;;;;;;;;;;:14;2819:21;;2814:27;;2805:37;;;;;;;;;;;;;;;;2788:3;2800:1;2796;:5;2792:1;:9;2788:14;;;;;;;;;;;:54;;;;;;;;;;;2707:3;;;;;;;2673:180;;;;2876:3;2862:18;;;;;2447:440;:::o;598:104:9:-;651:15;685:10;678:17;;598:104;:::o;9696:332:2:-;9806:1;9789:19;;:5;:19;;;;9781:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9886:1;9867:21;;:7;:21;;;;9859:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9968:6;9938:11;:18;9950:5;9938:18;;;;;;;;;;;;;;;:27;9957:7;9938:27;;;;;;;;;;;;;;;:36;;;;10005:7;9989:32;;9998:5;9989:32;;;10014:6;9989:32;;;;;;;;;;;;;;;;;;9696:332;;;:::o;7574:464::-;7689:1;7671:20;;:6;:20;;;;7663:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7772:1;7751:23;;:9;:23;;;;7743:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7845;7867:6;7845:71;;;;;;;;;;;;;;;;;:9;:17;7855:6;7845:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;7825:9;:17;7835:6;7825:17;;;;;;;;;;;;;;;:91;;;;7949:32;7974:6;7949:9;:20;7959:9;7949:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7926:9;:20;7936:9;7926:20;;;;;;;;;;;;;;;:55;;;;8013:9;7996:35;;8005:6;7996:35;;;8024:6;7996:35;;;;;;;;;;;;;;;;;;7574:464;;;:::o;5432:163:4:-;5518:7;5550:1;5545;:6;;5553:12;5537:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5587:1;5583;:5;5576:12;;5432:163;;;;;:::o;2690:175::-;2748:7;2767:9;2783:1;2779;:5;2767:17;;2807:1;2802;:6;;2794:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2857:1;2850:8;;;2690:175;;;;:::o;8308:302:2:-;8402:1;8383:21;;:7;:21;;;;8375:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8466:24;8483:6;8466:12;;:16;;:24;;;;:::i;:::-;8451:12;:39;;;;8521:30;8544:6;8521:9;:18;8531:7;8521:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;8500:9;:18;8510:7;8500:18;;;;;;;;;;;;;;;:51;;;;8587:7;8566:37;;8583:1;8566:37;;;8596:6;8566:37;;;;;;;;;;;;;;;;;;8308:302;;:::o;8929:342::-;9023:1;9004:21;;:7;:21;;;;8996:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9095:68;9118:6;9095:68;;;;;;;;;;;;;;;;;:9;:18;9105:7;9095:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;9074:9;:18;9084:7;9074:18;;;;;;;;;;;;;;;:89;;;;9188:24;9205:6;9188:12;;:16;;:24;;;;:::i;:::-;9173:12;:39;;;;9253:1;9227:37;;9236:7;9227:37;;;9257:6;9227:37;;;;;;;;;;;;;;;;;;8929:342;;:::o;3136:155:4:-;3194:7;3226:1;3221;:6;;3213:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3283:1;3279;:5;3272:12;;3136:155;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o",
- "source": "// contracts/WrappedAsset.sol\n// SPDX-License-Identifier: Apache 2\npragma solidity ^0.6.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/Address.sol\";\nimport \"@openzeppelin/contracts/GSN/Context.sol\";\n\ncontract WrappedAsset is IERC20, Context {\n uint8 public assetChain;\n bytes32 public assetAddress;\n bool public initialized;\n address public bridge;\n\n function initialize(uint8 _assetChain, bytes32 _assetAddress, uint8 decimals) public {\n require(!initialized, \"already initialized\");\n // Set local fields\n assetChain = _assetChain;\n assetAddress = _assetAddress;\n bridge = msg.sender;\n initialized = true;\n\n _symbol = \"WWT\";\n _decimals = decimals;\n }\n\n function mint(address account, uint256 amount) external {\n require(msg.sender == bridge, \"mint can only be called by the bridge\");\n\n _mint(account, amount);\n }\n\n function burn(address account, uint256 amount) external {\n require(msg.sender == bridge, \"burn can only be called by the bridge\");\n\n _burn(account, amount);\n }\n\n // Taken from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol\n // Licensed under MIT\n\n using SafeMath for uint256;\n using Address for address;\n\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _symbol;\n uint8 private _decimals = 18;\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view returns (string memory) {\n return string(abi.encodePacked(\"Wormhole Wrapped - \", uintToString(assetChain), \"-\", assetAddressString()));\n }\n\n // https://ethereum.stackexchange.com/a/40977\n function uintToString(uint _i) internal pure returns (string memory _uintAsString) {\n if (_i == 0) {\n return \"0\";\n }\n uint j = _i;\n uint len;\n while (j != 0) {\n len++;\n j /= 10;\n }\n bytes memory bstr = new bytes(len);\n uint k = len - 1;\n while (_i != 0) {\n bstr[k--] = byte(uint8(48 + _i % 10));\n _i /= 10;\n }\n return string(bstr);\n }\n\n // https://ethereum.stackexchange.com/a/58341\n function assetAddressString() private view returns (string memory) {\n bytes memory alphabet = \"0123456789abcdef\";\n bytes32 data = assetAddress;\n\n bytes memory str = new bytes(2 + data.length * 2);\n for (uint i = 0; i < data.length; i++) {\n str[i * 2] = alphabet[uint(uint8(data[i] >> 4))];\n str[1 + i * 2] = alphabet[uint(uint8(data[i] & 0x0f))];\n }\n return string(str);\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n * called.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view returns (uint8) {\n return _decimals;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `recipient` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address recipient, uint256 amount) public override returns (bool) {\n _transfer(_msgSender(), recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public override returns (bool) {\n _approve(_msgSender(), spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20};\n *\n * Requirements:\n * - `sender` and `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n * - the caller must have allowance for ``sender``'s tokens of at least\n * `amount`.\n */\n function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {\n _transfer(sender, recipient, amount);\n _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\"));\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\"));\n return true;\n }\n\n /**\n * @dev Moves tokens `amount` from `sender` to `recipient`.\n *\n * This is internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `sender` cannot be the zero address.\n * - `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n */\n function _transfer(address sender, address recipient, uint256 amount) internal {\n require(sender != address(0), \"ERC20: transfer from the zero address\");\n require(recipient != address(0), \"ERC20: transfer to the zero address\");\n\n _balances[sender] = _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\");\n _balances[recipient] = _balances[recipient].add(amount);\n emit Transfer(sender, recipient, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements\n *\n * - `to` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _totalSupply = _totalSupply.add(amount);\n _balances[account] = _balances[account].add(amount);\n emit Transfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _balances[account] = _balances[account].sub(amount, \"ERC20: burn amount exceeds balance\");\n _totalSupply = _totalSupply.sub(amount);\n emit Transfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n *\n * This is internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(address owner, address spender, uint256 amount) internal {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Sets {decimals} to a value other than the default one of 18.\n *\n * WARNING: This function should only be called from the constructor. Most\n * applications that interact with token contracts will not expect\n * {decimals} to ever change, and may work incorrectly if it does.\n */\n function _setupDecimals(uint8 decimals_) internal {\n _decimals = decimals_;\n }\n}\n",
- "sourcePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
- "ast": {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
- "exportedSymbols": {
- "WrappedAsset": [2147]
- },
- "id": 2148,
- "license": "Apache 2",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 1433,
- "literals": ["solidity", "^", "0.6", ".0"],
- "nodeType": "PragmaDirective",
- "src": "67:23:2"
- },
- {
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "id": 1434,
- "nodeType": "ImportDirective",
- "scope": 2148,
- "sourceUnit": 3087,
- "src": "92:56:2",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "@openzeppelin/contracts/math/SafeMath.sol",
- "id": 1435,
- "nodeType": "ImportDirective",
- "scope": 2148,
- "sourceUnit": 2506,
- "src": "149:51:2",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/utils/Address.sol",
- "file": "@openzeppelin/contracts/utils/Address.sol",
- "id": 1436,
- "nodeType": "ImportDirective",
- "scope": 2148,
- "sourceUnit": 3596,
- "src": "201:51:2",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "@openzeppelin/contracts/GSN/Context.sol",
- "file": "@openzeppelin/contracts/GSN/Context.sol",
- "id": 1437,
- "nodeType": "ImportDirective",
- "scope": 2148,
- "sourceUnit": 2151,
- "src": "253:49:2",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "abstract": false,
- "baseContracts": [
- {
- "arguments": null,
- "baseName": {
- "contractScope": null,
- "id": 1438,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3086,
- "src": "329:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$3086",
- "typeString": "contract IERC20"
- }
- },
- "id": 1439,
- "nodeType": "InheritanceSpecifier",
- "src": "329:6:2"
- },
- {
- "arguments": null,
- "baseName": {
- "contractScope": null,
- "id": 1440,
- "name": "Context",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3618,
- "src": "337:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Context_$3618",
- "typeString": "contract Context"
- }
- },
- "id": 1441,
- "nodeType": "InheritanceSpecifier",
- "src": "337:7:2"
- }
- ],
- "contractDependencies": [3086, 3618],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "id": 2147,
- "linearizedBaseContracts": [2147, 3618, 3086],
- "name": "WrappedAsset",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "constant": false,
- "functionSelector": "026b0539",
- "id": 1443,
- "mutability": "mutable",
- "name": "assetChain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2147,
- "src": "351:23:2",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1442,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "351:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "1ba46cfd",
- "id": 1445,
- "mutability": "mutable",
- "name": "assetAddress",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2147,
- "src": "380:27:2",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1444,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "380:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "158ef93e",
- "id": 1447,
- "mutability": "mutable",
- "name": "initialized",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2147,
- "src": "413:23:2",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1446,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "413:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "e78cea92",
- "id": 1449,
- "mutability": "mutable",
- "name": "bridge",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2147,
- "src": "442:21:2",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1448,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "442:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1489,
- "nodeType": "Block",
- "src": "555:274:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1460,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "!",
- "prefix": true,
- "src": "573:12:2",
- "subExpression": {
- "argumentTypes": null,
- "id": 1459,
- "name": "initialized",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1447,
- "src": "574:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "616c726561647920696e697469616c697a6564",
- "id": 1461,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "587:21:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc",
- "typeString": "literal_string \"already initialized\""
- },
- "value": "already initialized"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc",
- "typeString": "literal_string \"already initialized\""
- }
- ],
- "id": 1458,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "565:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1462,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "565:44:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1463,
- "nodeType": "ExpressionStatement",
- "src": "565:44:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1466,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1464,
- "name": "assetChain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1443,
- "src": "647:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 1465,
- "name": "_assetChain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1451,
- "src": "660:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "647:24:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 1467,
- "nodeType": "ExpressionStatement",
- "src": "647:24:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1470,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1468,
- "name": "assetAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1445,
- "src": "681:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 1469,
- "name": "_assetAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1453,
- "src": "696:13:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "681:28:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1471,
- "nodeType": "ExpressionStatement",
- "src": "681:28:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1475,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1472,
- "name": "bridge",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1449,
- "src": "719:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1473,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "728:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1474,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "728:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "719:19:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 1476,
- "nodeType": "ExpressionStatement",
- "src": "719:19:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1479,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1477,
- "name": "initialized",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1447,
- "src": "748:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 1478,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "762:4:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "src": "748:18:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 1480,
- "nodeType": "ExpressionStatement",
- "src": "748:18:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1483,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1481,
- "name": "_symbol",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1552,
- "src": "777:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string storage ref"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "575754",
- "id": 1482,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "787:5:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_0d2d5a94d86195c9aab1dc351352ba0539c6da454bc9b63f5012e79c7d2d46e2",
- "typeString": "literal_string \"WWT\""
- },
- "value": "WWT"
- },
- "src": "777:15:2",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string storage ref"
- }
- },
- "id": 1484,
- "nodeType": "ExpressionStatement",
- "src": "777:15:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1487,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1485,
- "name": "_decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1555,
- "src": "802:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 1486,
- "name": "decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1455,
- "src": "814:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "802:20:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 1488,
- "nodeType": "ExpressionStatement",
- "src": "802:20:2"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "a7a2d3fb",
- "id": 1490,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "initialize",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1456,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1451,
- "mutability": "mutable",
- "name": "_assetChain",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1490,
- "src": "490:17:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1450,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "490:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1453,
- "mutability": "mutable",
- "name": "_assetAddress",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1490,
- "src": "509:21:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1452,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "509:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1455,
- "mutability": "mutable",
- "name": "decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1490,
- "src": "532:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1454,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "532:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "489:58:2"
- },
- "returnParameters": {
- "id": 1457,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "555:0:2"
- },
- "scope": 2147,
- "src": "470:359:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1510,
- "nodeType": "Block",
- "src": "891:120:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 1501,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1498,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "909:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1499,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "909:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1500,
- "name": "bridge",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1449,
- "src": "923:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "909:20:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6d696e742063616e206f6e6c792062652063616c6c65642062792074686520627269646765",
- "id": 1502,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "931:39:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_e7702acf154d2f82cc8c1dd52813f94b0a08ea733aaf89d0cac26f6b55722c5a",
- "typeString": "literal_string \"mint can only be called by the bridge\""
- },
- "value": "mint can only be called by the bridge"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_e7702acf154d2f82cc8c1dd52813f94b0a08ea733aaf89d0cac26f6b55722c5a",
- "typeString": "literal_string \"mint can only be called by the bridge\""
- }
- ],
- "id": 1497,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "901:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1503,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "901:70:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1504,
- "nodeType": "ExpressionStatement",
- "src": "901:70:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1506,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1492,
- "src": "988:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1507,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1494,
- "src": "997:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1505,
- "name": "_mint",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2043,
- "src": "982:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,uint256)"
- }
- },
- "id": 1508,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "982:22:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1509,
- "nodeType": "ExpressionStatement",
- "src": "982:22:2"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "40c10f19",
- "id": 1511,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "mint",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1495,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1492,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1511,
- "src": "849:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1491,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "849:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1494,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1511,
- "src": "866:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1493,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "866:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "848:33:2"
- },
- "returnParameters": {
- "id": 1496,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "891:0:2"
- },
- "scope": 2147,
- "src": "835:176:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": {
- "id": 1531,
- "nodeType": "Block",
- "src": "1073:120:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 1522,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1519,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "1091:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1520,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "1091:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "id": 1521,
- "name": "bridge",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1449,
- "src": "1105:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1091:20:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "6275726e2063616e206f6e6c792062652063616c6c65642062792074686520627269646765",
- "id": 1523,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1113:39:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_c31242aa9df4d29364b074986b1202ec8729deca727157a31be5e2473387893b",
- "typeString": "literal_string \"burn can only be called by the bridge\""
- },
- "value": "burn can only be called by the bridge"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c31242aa9df4d29364b074986b1202ec8729deca727157a31be5e2473387893b",
- "typeString": "literal_string \"burn can only be called by the bridge\""
- }
- ],
- "id": 1518,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "1083:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1524,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1083:70:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1525,
- "nodeType": "ExpressionStatement",
- "src": "1083:70:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1527,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1513,
- "src": "1170:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1528,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1515,
- "src": "1179:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1526,
- "name": "_burn",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2090,
- "src": "1164:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,uint256)"
- }
- },
- "id": 1529,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1164:22:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1530,
- "nodeType": "ExpressionStatement",
- "src": "1164:22:2"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "9dc29fac",
- "id": 1532,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "burn",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1516,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1513,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1532,
- "src": "1031:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1512,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1031:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1515,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1532,
- "src": "1048:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1514,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1048:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1030:33:2"
- },
- "returnParameters": {
- "id": 1517,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1073:0:2"
- },
- "scope": 2147,
- "src": "1017:176:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "id": 1535,
- "libraryName": {
- "contractScope": null,
- "id": 1533,
- "name": "SafeMath",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 2505,
- "src": "1349:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeMath_$2505",
- "typeString": "library SafeMath"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "1343:27:2",
- "typeName": {
- "id": 1534,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1362:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- {
- "id": 1538,
- "libraryName": {
- "contractScope": null,
- "id": 1536,
- "name": "Address",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 3595,
- "src": "1381:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Address_$3595",
- "typeString": "library Address"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "1375:26:2",
- "typeName": {
- "id": 1537,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1393:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- },
- {
- "constant": false,
- "id": 1542,
- "mutability": "mutable",
- "name": "_balances",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2147,
- "src": "1407:45:2",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- },
- "typeName": {
- "id": 1541,
- "keyType": {
- "id": 1539,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1415:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Mapping",
- "src": "1407:27:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- },
- "valueType": {
- "id": 1540,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1426:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 1548,
- "mutability": "mutable",
- "name": "_allowances",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2147,
- "src": "1459:67:2",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- },
- "typeName": {
- "id": 1547,
- "keyType": {
- "id": 1543,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1467:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Mapping",
- "src": "1459:47:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- },
- "valueType": {
- "id": 1546,
- "keyType": {
- "id": 1544,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1486:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Mapping",
- "src": "1478:27:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- },
- "valueType": {
- "id": 1545,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1497:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 1550,
- "mutability": "mutable",
- "name": "_totalSupply",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2147,
- "src": "1533:28:2",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1549,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1533:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 1552,
- "mutability": "mutable",
- "name": "_symbol",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2147,
- "src": "1568:22:2",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string"
- },
- "typeName": {
- "id": 1551,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "1568:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "constant": false,
- "id": 1555,
- "mutability": "mutable",
- "name": "_decimals",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2147,
- "src": "1596:28:2",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1553,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1596:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": {
- "argumentTypes": null,
- "hexValue": "3138",
- "id": 1554,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1622:2:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_18_by_1",
- "typeString": "int_const 18"
- },
- "value": "18"
- },
- "visibility": "private"
- },
- {
- "body": {
- "id": 1575,
- "nodeType": "Block",
- "src": "1742:124:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "576f726d686f6c652057726170706564202d20",
- "id": 1565,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1783:21:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5cf7e3c6b428de30b95e99bd5727c04cd18c12b66cf3176e2f95b4ceb77530a8",
- "typeString": "literal_string \"Wormhole Wrapped - \""
- },
- "value": "Wormhole Wrapped - "
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1567,
- "name": "assetChain",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1443,
- "src": "1819:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1566,
- "name": "uintToString",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1654,
- "src": "1806:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
- "typeString": "function (uint256) pure returns (string memory)"
- }
- },
- "id": 1568,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1806:24:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "2d",
- "id": 1569,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1832:3:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
- "typeString": "literal_string \"-\""
- },
- "value": "-"
- },
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 1570,
- "name": "assetAddressString",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1740,
- "src": "1837:18:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
- "typeString": "function () view returns (string memory)"
- }
- },
- "id": 1571,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1837:20:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_5cf7e3c6b428de30b95e99bd5727c04cd18c12b66cf3176e2f95b4ceb77530a8",
- "typeString": "literal_string \"Wormhole Wrapped - \""
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- },
- {
- "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
- "typeString": "literal_string \"-\""
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 1563,
- "name": "abi",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -1,
- "src": "1766:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_abi",
- "typeString": "abi"
- }
- },
- "id": 1564,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "memberName": "encodePacked",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "1766:16:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
- "typeString": "function () pure returns (bytes memory)"
- }
- },
- "id": 1572,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1766:92:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 1562,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "1759:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_string_storage_ptr_$",
- "typeString": "type(string storage pointer)"
- },
- "typeName": {
- "id": 1561,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "1759:6:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1573,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1759:100:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- },
- "functionReturnParameters": 1560,
- "id": 1574,
- "nodeType": "Return",
- "src": "1752:107:2"
- }
- ]
- },
- "documentation": {
- "id": 1556,
- "nodeType": "StructuredDocumentation",
- "src": "1631:54:2",
- "text": " @dev Returns the name of the token."
- },
- "functionSelector": "06fdde03",
- "id": 1576,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "name",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1557,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1703:2:2"
- },
- "returnParameters": {
- "id": 1560,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1559,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1576,
- "src": "1727:13:2",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 1558,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "1727:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1726:15:2"
- },
- "scope": 2147,
- "src": "1690:176:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1653,
- "nodeType": "Block",
- "src": "2005:386:2",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1585,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1583,
- "name": "_i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1578,
- "src": "2019:2:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1584,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2025:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2019:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 1589,
- "nodeType": "IfStatement",
- "src": "2015:48:2",
- "trueBody": {
- "id": 1588,
- "nodeType": "Block",
- "src": "2028:35:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1586,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2049:3:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d",
- "typeString": "literal_string \"0\""
- },
- "value": "0"
- },
- "functionReturnParameters": 1582,
- "id": 1587,
- "nodeType": "Return",
- "src": "2042:10:2"
- }
- ]
- }
- },
- {
- "assignments": [1591],
- "declarations": [
- {
- "constant": false,
- "id": 1591,
- "mutability": "mutable",
- "name": "j",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1653,
- "src": "2072:6:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1590,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "2072:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1593,
- "initialValue": {
- "argumentTypes": null,
- "id": 1592,
- "name": "_i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1578,
- "src": "2081:2:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2072:11:2"
- },
- {
- "assignments": [1595],
- "declarations": [
- {
- "constant": false,
- "id": 1595,
- "mutability": "mutable",
- "name": "len",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1653,
- "src": "2093:8:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1594,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "2093:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1596,
- "initialValue": null,
- "nodeType": "VariableDeclarationStatement",
- "src": "2093:8:2"
- },
- {
- "body": {
- "id": 1607,
- "nodeType": "Block",
- "src": "2126:51:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 1601,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "++",
- "prefix": false,
- "src": "2140:5:2",
- "subExpression": {
- "argumentTypes": null,
- "id": 1600,
- "name": "len",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1595,
- "src": "2140:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1602,
- "nodeType": "ExpressionStatement",
- "src": "2140:5:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1605,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1603,
- "name": "j",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1591,
- "src": "2159:1:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "/=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1604,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2164:2:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "src": "2159:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1606,
- "nodeType": "ExpressionStatement",
- "src": "2159:7:2"
- }
- ]
- },
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1599,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1597,
- "name": "j",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1591,
- "src": "2118:1:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1598,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2123:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2118:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 1608,
- "nodeType": "WhileStatement",
- "src": "2111:66:2"
- },
- {
- "assignments": [1610],
- "declarations": [
- {
- "constant": false,
- "id": 1610,
- "mutability": "mutable",
- "name": "bstr",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1653,
- "src": "2186:17:2",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 1609,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "2186:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1615,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1613,
- "name": "len",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1595,
- "src": "2216:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1612,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "NewExpression",
- "src": "2206:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (uint256) pure returns (bytes memory)"
- },
- "typeName": {
- "id": 1611,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "2210:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- }
- },
- "id": 1614,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2206:14:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2186:34:2"
- },
- {
- "assignments": [1617],
- "declarations": [
- {
- "constant": false,
- "id": 1617,
- "mutability": "mutable",
- "name": "k",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1653,
- "src": "2230:6:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1616,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "2230:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1621,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1620,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1618,
- "name": "len",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1595,
- "src": "2239:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 1619,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2245:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "src": "2239:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2230:16:2"
- },
- {
- "body": {
- "id": 1646,
- "nodeType": "Block",
- "src": "2272:84:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 1640,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1625,
- "name": "bstr",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1610,
- "src": "2286:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 1628,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1627,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "--",
- "prefix": false,
- "src": "2291:3:2",
- "subExpression": {
- "argumentTypes": null,
- "id": 1626,
- "name": "k",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1617,
- "src": "2291:1:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "2286:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1637,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "3438",
- "id": 1633,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2309:2:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_48_by_1",
- "typeString": "int_const 48"
- },
- "value": "48"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1636,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1634,
- "name": "_i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1578,
- "src": "2314:2:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "%",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1635,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2319:2:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "src": "2314:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2309:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1632,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2303:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint8_$",
- "typeString": "type(uint8)"
- },
- "typeName": {
- "id": 1631,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "2303:5:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1638,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2303:19:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1630,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2298:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_bytes1_$",
- "typeString": "type(bytes1)"
- },
- "typeName": {
- "id": 1629,
- "name": "byte",
- "nodeType": "ElementaryTypeName",
- "src": "2298:4:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1639,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2298:25:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "src": "2286:37:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "id": 1641,
- "nodeType": "ExpressionStatement",
- "src": "2286:37:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1644,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 1642,
- "name": "_i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1578,
- "src": "2337:2:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "/=",
- "rightHandSide": {
- "argumentTypes": null,
- "hexValue": "3130",
- "id": 1643,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2343:2:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_10_by_1",
- "typeString": "int_const 10"
- },
- "value": "10"
- },
- "src": "2337:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1645,
- "nodeType": "ExpressionStatement",
- "src": "2337:8:2"
- }
- ]
- },
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1624,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1622,
- "name": "_i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1578,
- "src": "2263:2:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1623,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2269:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2263:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 1647,
- "nodeType": "WhileStatement",
- "src": "2256:100:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1650,
- "name": "bstr",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1610,
- "src": "2379:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 1649,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2372:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_string_storage_ptr_$",
- "typeString": "type(string storage pointer)"
- },
- "typeName": {
- "id": 1648,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "2372:6:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1651,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2372:12:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- },
- "functionReturnParameters": 1582,
- "id": 1652,
- "nodeType": "Return",
- "src": "2365:19:2"
- }
- ]
- },
- "documentation": null,
- "id": 1654,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "uintToString",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1579,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1578,
- "mutability": "mutable",
- "name": "_i",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1654,
- "src": "1944:7:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1577,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "1944:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1943:9:2"
- },
- "returnParameters": {
- "id": 1582,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1581,
- "mutability": "mutable",
- "name": "_uintAsString",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1654,
- "src": "1976:27:2",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 1580,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "1976:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1975:29:2"
- },
- "scope": 2147,
- "src": "1922:469:2",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 1739,
- "nodeType": "Block",
- "src": "2514:373:2",
- "statements": [
- {
- "assignments": [1660],
- "declarations": [
- {
- "constant": false,
- "id": 1660,
- "mutability": "mutable",
- "name": "alphabet",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1739,
- "src": "2524:21:2",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 1659,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "2524:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1662,
- "initialValue": {
- "argumentTypes": null,
- "hexValue": "30313233343536373839616263646566",
- "id": 1661,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2548:18:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f",
- "typeString": "literal_string \"0123456789abcdef\""
- },
- "value": "0123456789abcdef"
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2524:42:2"
- },
- {
- "assignments": [1664],
- "declarations": [
- {
- "constant": false,
- "id": 1664,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1739,
- "src": "2576:12:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1663,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "2576:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1666,
- "initialValue": {
- "argumentTypes": null,
- "id": 1665,
- "name": "assetAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1445,
- "src": "2591:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2576:27:2"
- },
- {
- "assignments": [1668],
- "declarations": [
- {
- "constant": false,
- "id": 1668,
- "mutability": "mutable",
- "name": "str",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1739,
- "src": "2614:16:2",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 1667,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "2614:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1678,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1676,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 1671,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2643:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1675,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1672,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1664,
- "src": "2647:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1673,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "2647:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 1674,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2661:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "src": "2647:15:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "2643:19:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1670,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "NewExpression",
- "src": "2633:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
- "typeString": "function (uint256) pure returns (bytes memory)"
- },
- "typeName": {
- "id": 1669,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "2637:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- }
- },
- "id": 1677,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2633:30:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2614:49:2"
- },
- {
- "body": {
- "id": 1732,
- "nodeType": "Block",
- "src": "2712:141:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 1708,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1690,
- "name": "str",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1668,
- "src": "2726:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 1694,
- "indexExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1693,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1691,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1680,
- "src": "2730:1:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 1692,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2734:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "src": "2730:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "2726:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1695,
- "name": "alphabet",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1660,
- "src": "2739:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 1707,
- "indexExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- },
- "id": 1704,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1700,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1664,
- "src": "2759:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1702,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1701,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1680,
- "src": "2764:1:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2759:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">>",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "34",
- "id": 1703,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2770:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_4_by_1",
- "typeString": "int_const 4"
- },
- "value": "4"
- },
- "src": "2759:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- ],
- "id": 1699,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2753:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint8_$",
- "typeString": "type(uint8)"
- },
- "typeName": {
- "id": 1698,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "2753:5:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1705,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2753:19:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1697,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2748:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1696,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "2748:4:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1706,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2748:25:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2739:35:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "src": "2726:48:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "id": 1709,
- "nodeType": "ExpressionStatement",
- "src": "2726:48:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1730,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1710,
- "name": "str",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1668,
- "src": "2788:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 1716,
- "indexExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1715,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "hexValue": "31",
- "id": 1711,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2792:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1714,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1712,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1680,
- "src": "2796:1:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "32",
- "id": 1713,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2800:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_2_by_1",
- "typeString": "int_const 2"
- },
- "value": "2"
- },
- "src": "2796:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2792:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "2788:14:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1717,
- "name": "alphabet",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1660,
- "src": "2805:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- },
- "id": 1729,
- "indexExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- },
- "id": 1726,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1722,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1664,
- "src": "2825:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1724,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1723,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1680,
- "src": "2830:1:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2825:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "&",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30783066",
- "id": 1725,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2835:4:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_15_by_1",
- "typeString": "int_const 15"
- },
- "value": "0x0f"
- },
- "src": "2825:14:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- ],
- "id": 1721,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2819:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint8_$",
- "typeString": "type(uint8)"
- },
- "typeName": {
- "id": 1720,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "2819:5:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1727,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2819:21:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "id": 1719,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2814:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_uint256_$",
- "typeString": "type(uint256)"
- },
- "typeName": {
- "id": 1718,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "2814:4:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1728,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2814:27:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2805:37:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "src": "2788:54:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- },
- "id": 1731,
- "nodeType": "ExpressionStatement",
- "src": "2788:54:2"
- }
- ]
- },
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1686,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1683,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1680,
- "src": "2690:1:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<",
- "rightExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 1684,
- "name": "data",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1664,
- "src": "2694:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1685,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "length",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "2694:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "2690:15:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 1733,
- "initializationExpression": {
- "assignments": [1680],
- "declarations": [
- {
- "constant": false,
- "id": 1680,
- "mutability": "mutable",
- "name": "i",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1733,
- "src": "2678:6:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1679,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "2678:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 1682,
- "initialValue": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1681,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2687:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2678:10:2"
- },
- "loopExpression": {
- "expression": {
- "argumentTypes": null,
- "id": 1688,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "UnaryOperation",
- "operator": "++",
- "prefix": false,
- "src": "2707:3:2",
- "subExpression": {
- "argumentTypes": null,
- "id": 1687,
- "name": "i",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1680,
- "src": "2707:1:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1689,
- "nodeType": "ExpressionStatement",
- "src": "2707:3:2"
- },
- "nodeType": "ForStatement",
- "src": "2673:180:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1736,
- "name": "str",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1668,
- "src": "2876:3:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "id": 1735,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2869:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_string_storage_ptr_$",
- "typeString": "type(string storage pointer)"
- },
- "typeName": {
- "id": 1734,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "2869:6:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1737,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2869:11:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- },
- "functionReturnParameters": 1658,
- "id": 1738,
- "nodeType": "Return",
- "src": "2862:18:2"
- }
- ]
- },
- "documentation": null,
- "id": 1740,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "assetAddressString",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1655,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2474:2:2"
- },
- "returnParameters": {
- "id": 1658,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1657,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1740,
- "src": "2499:13:2",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 1656,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "2499:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2498:15:2"
- },
- "scope": 2147,
- "src": "2447:440:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "private"
- },
- {
- "body": {
- "id": 1748,
- "nodeType": "Block",
- "src": "3054:31:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 1746,
- "name": "_symbol",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1552,
- "src": "3071:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage",
- "typeString": "string storage ref"
- }
- },
- "functionReturnParameters": 1745,
- "id": 1747,
- "nodeType": "Return",
- "src": "3064:14:2"
- }
- ]
- },
- "documentation": {
- "id": 1741,
- "nodeType": "StructuredDocumentation",
- "src": "2893:102:2",
- "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."
- },
- "functionSelector": "95d89b41",
- "id": 1749,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "symbol",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1742,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "3015:2:2"
- },
- "returnParameters": {
- "id": 1745,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1744,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1749,
- "src": "3039:13:2",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 1743,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "3039:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3038:15:2"
- },
- "scope": 2147,
- "src": "3000:85:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1757,
- "nodeType": "Block",
- "src": "3756:33:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 1755,
- "name": "_decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1555,
- "src": "3773:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "functionReturnParameters": 1754,
- "id": 1756,
- "nodeType": "Return",
- "src": "3766:16:2"
- }
- ]
- },
- "documentation": {
- "id": 1750,
- "nodeType": "StructuredDocumentation",
- "src": "3091:612:2",
- "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
- },
- "functionSelector": "313ce567",
- "id": 1758,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "decimals",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1751,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "3725:2:2"
- },
- "returnParameters": {
- "id": 1754,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1753,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1758,
- "src": "3749:5:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1752,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "3749:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3748:7:2"
- },
- "scope": 2147,
- "src": "3708:81:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "baseFunctions": [3017],
- "body": {
- "id": 1767,
- "nodeType": "Block",
- "src": "3911:36:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 1765,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1550,
- "src": "3928:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 1764,
- "id": 1766,
- "nodeType": "Return",
- "src": "3921:19:2"
- }
- ]
- },
- "documentation": {
- "id": 1759,
- "nodeType": "StructuredDocumentation",
- "src": "3795:49:2",
- "text": " @dev See {IERC20-totalSupply}."
- },
- "functionSelector": "18160ddd",
- "id": 1768,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "totalSupply",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 1761,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "3884:8:2"
- },
- "parameters": {
- "id": 1760,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "3869:2:2"
- },
- "returnParameters": {
- "id": 1764,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1763,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1768,
- "src": "3902:7:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1762,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3902:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3901:9:2"
- },
- "scope": 2147,
- "src": "3849:98:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "baseFunctions": [3025],
- "body": {
- "id": 1781,
- "nodeType": "Block",
- "src": "4080:42:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1777,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1542,
- "src": "4097:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 1779,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1778,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1771,
- "src": "4107:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4097:18:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 1776,
- "id": 1780,
- "nodeType": "Return",
- "src": "4090:25:2"
- }
- ]
- },
- "documentation": {
- "id": 1769,
- "nodeType": "StructuredDocumentation",
- "src": "3953:47:2",
- "text": " @dev See {IERC20-balanceOf}."
- },
- "functionSelector": "70a08231",
- "id": 1782,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "balanceOf",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 1773,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "4053:8:2"
- },
- "parameters": {
- "id": 1772,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1771,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1782,
- "src": "4024:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1770,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4024:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4023:17:2"
- },
- "returnParameters": {
- "id": 1776,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1775,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1782,
- "src": "4071:7:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1774,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4071:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4070:9:2"
- },
- "scope": 2147,
- "src": "4005:117:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "baseFunctions": [3035],
- "body": {
- "id": 1802,
- "nodeType": "Block",
- "src": "4409:80:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 1794,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "4429:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 1795,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4429:12:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 1796,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1785,
- "src": "4443:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1797,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1787,
- "src": "4454:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1793,
- "name": "_transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1997,
- "src": "4419:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 1798,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4419:42:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1799,
- "nodeType": "ExpressionStatement",
- "src": "4419:42:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 1800,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4478:4:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 1792,
- "id": 1801,
- "nodeType": "Return",
- "src": "4471:11:2"
- }
- ]
- },
- "documentation": {
- "id": 1783,
- "nodeType": "StructuredDocumentation",
- "src": "4128:192:2",
- "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."
- },
- "functionSelector": "a9059cbb",
- "id": 1803,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "transfer",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 1789,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "4385:8:2"
- },
- "parameters": {
- "id": 1788,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1785,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1803,
- "src": "4343:17:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1784,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4343:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1787,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1803,
- "src": "4362:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1786,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4362:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4342:35:2"
- },
- "returnParameters": {
- "id": 1792,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1791,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1803,
- "src": "4403:4:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1790,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "4403:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4402:6:2"
- },
- "scope": 2147,
- "src": "4325:164:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "baseFunctions": [3045],
- "body": {
- "id": 1820,
- "nodeType": "Block",
- "src": "4637:51:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1814,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1548,
- "src": "4654:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 1816,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1815,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1806,
- "src": "4666:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4654:18:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 1818,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1817,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1808,
- "src": "4673:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4654:27:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 1813,
- "id": 1819,
- "nodeType": "Return",
- "src": "4647:34:2"
- }
- ]
- },
- "documentation": {
- "id": 1804,
- "nodeType": "StructuredDocumentation",
- "src": "4495:47:2",
- "text": " @dev See {IERC20-allowance}."
- },
- "functionSelector": "dd62ed3e",
- "id": 1821,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "allowance",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 1810,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "4610:8:2"
- },
- "parameters": {
- "id": 1809,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1806,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1821,
- "src": "4566:13:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1805,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4566:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1808,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1821,
- "src": "4581:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1807,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4581:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4565:32:2"
- },
- "returnParameters": {
- "id": 1813,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1812,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1821,
- "src": "4628:7:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1811,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4628:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4627:9:2"
- },
- "scope": 2147,
- "src": "4547:141:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "baseFunctions": [3055],
- "body": {
- "id": 1841,
- "nodeType": "Block",
- "src": "4907:77:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 1833,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "4926:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 1834,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4926:12:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 1835,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1824,
- "src": "4940:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1836,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1826,
- "src": "4949:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1832,
- "name": "_approve",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2135,
- "src": "4917:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 1837,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4917:39:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1838,
- "nodeType": "ExpressionStatement",
- "src": "4917:39:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 1839,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4973:4:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 1831,
- "id": 1840,
- "nodeType": "Return",
- "src": "4966:11:2"
- }
- ]
- },
- "documentation": {
- "id": 1822,
- "nodeType": "StructuredDocumentation",
- "src": "4694:127:2",
- "text": " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."
- },
- "functionSelector": "095ea7b3",
- "id": 1842,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "approve",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 1828,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "4883:8:2"
- },
- "parameters": {
- "id": 1827,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1824,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1842,
- "src": "4843:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1823,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4843:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1826,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1842,
- "src": "4860:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1825,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4860:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4842:33:2"
- },
- "returnParameters": {
- "id": 1831,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1830,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1842,
- "src": "4901:4:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1829,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "4901:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4900:6:2"
- },
- "scope": 2147,
- "src": "4826:158:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "baseFunctions": [3067],
- "body": {
- "id": 1879,
- "nodeType": "Block",
- "src": "5548:205:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1856,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1845,
- "src": "5568:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1857,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1847,
- "src": "5576:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1858,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1849,
- "src": "5587:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1855,
- "name": "_transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1997,
- "src": "5558:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 1859,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5558:36:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1860,
- "nodeType": "ExpressionStatement",
- "src": "5558:36:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1862,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1845,
- "src": "5613:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 1863,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "5621:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 1864,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5621:12:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1872,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1849,
- "src": "5673:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
- "id": 1873,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5681:42:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
- "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
- },
- "value": "ERC20: transfer amount exceeds allowance"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
- "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1865,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1548,
- "src": "5635:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 1867,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1866,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1845,
- "src": "5647:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "5635:19:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 1870,
- "indexExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 1868,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "5655:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 1869,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5655:12:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "5635:33:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1871,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2456,
- "src": "5635:37:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
- }
- },
- "id": 1874,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5635:89:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1861,
- "name": "_approve",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2135,
- "src": "5604:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 1875,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5604:121:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1876,
- "nodeType": "ExpressionStatement",
- "src": "5604:121:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 1877,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5742:4:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 1854,
- "id": 1878,
- "nodeType": "Return",
- "src": "5735:11:2"
- }
- ]
- },
- "documentation": {
- "id": 1843,
- "nodeType": "StructuredDocumentation",
- "src": "4990:449:2",
- "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20};\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`."
- },
- "functionSelector": "23b872dd",
- "id": 1880,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "transferFrom",
- "nodeType": "FunctionDefinition",
- "overrides": {
- "id": 1851,
- "nodeType": "OverrideSpecifier",
- "overrides": [],
- "src": "5524:8:2"
- },
- "parameters": {
- "id": 1850,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1845,
- "mutability": "mutable",
- "name": "sender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1880,
- "src": "5466:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1844,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5466:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1847,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1880,
- "src": "5482:17:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1846,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5482:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1849,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1880,
- "src": "5501:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1848,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "5501:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5465:51:2"
- },
- "returnParameters": {
- "id": 1854,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1853,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1880,
- "src": "5542:4:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1852,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "5542:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5541:6:2"
- },
- "scope": 2147,
- "src": "5444:309:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1907,
- "nodeType": "Block",
- "src": "6234:121:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 1891,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "6253:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 1892,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6253:12:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 1893,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1883,
- "src": "6267:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1901,
- "name": "addedValue",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1885,
- "src": "6315:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1894,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1548,
- "src": "6276:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 1897,
- "indexExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 1895,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "6288:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 1896,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6288:12:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "6276:25:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 1899,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1898,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1883,
- "src": "6302:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "6276:34:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1900,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2332,
- "src": "6276:38:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1902,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6276:50:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1890,
- "name": "_approve",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2135,
- "src": "6244:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 1903,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6244:83:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1904,
- "nodeType": "ExpressionStatement",
- "src": "6244:83:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 1905,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6344:4:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 1889,
- "id": 1906,
- "nodeType": "Return",
- "src": "6337:11:2"
- }
- ]
- },
- "documentation": {
- "id": 1881,
- "nodeType": "StructuredDocumentation",
- "src": "5759:384:2",
- "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."
- },
- "functionSelector": "39509351",
- "id": 1908,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "increaseAllowance",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1886,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1883,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1908,
- "src": "6175:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1882,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "6175:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1885,
- "mutability": "mutable",
- "name": "addedValue",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1908,
- "src": "6192:18:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1884,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6192:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6174:37:2"
- },
- "returnParameters": {
- "id": 1889,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1888,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1908,
- "src": "6228:4:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1887,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "6228:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6227:6:2"
- },
- "scope": 2147,
- "src": "6148:207:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1936,
- "nodeType": "Block",
- "src": "6933:167:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 1919,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "6952:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 1920,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6952:12:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 1921,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1911,
- "src": "6966:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1929,
- "name": "subtractedValue",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1913,
- "src": "7014:15:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
- "id": 1930,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7031:39:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
- "typeString": "literal_string \"ERC20: decreased allowance below zero\""
- },
- "value": "ERC20: decreased allowance below zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
- "typeString": "literal_string \"ERC20: decreased allowance below zero\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1922,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1548,
- "src": "6975:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 1925,
- "indexExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 1923,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3606,
- "src": "6987:10:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 1924,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6987:12:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "6975:25:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 1927,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1926,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1911,
- "src": "7001:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "6975:34:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1928,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2456,
- "src": "6975:38:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
- }
- },
- "id": 1931,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6975:96:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1918,
- "name": "_approve",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2135,
- "src": "6943:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 1932,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6943:129:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1933,
- "nodeType": "ExpressionStatement",
- "src": "6943:129:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 1934,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7089:4:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 1917,
- "id": 1935,
- "nodeType": "Return",
- "src": "7082:11:2"
- }
- ]
- },
- "documentation": {
- "id": 1909,
- "nodeType": "StructuredDocumentation",
- "src": "6361:476:2",
- "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."
- },
- "functionSelector": "a457c2d7",
- "id": 1937,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "decreaseAllowance",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1914,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1911,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1937,
- "src": "6869:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1910,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "6869:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1913,
- "mutability": "mutable",
- "name": "subtractedValue",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1937,
- "src": "6886:23:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1912,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6886:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6868:42:2"
- },
- "returnParameters": {
- "id": 1917,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1916,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1937,
- "src": "6927:4:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1915,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "6927:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6926:6:2"
- },
- "scope": 2147,
- "src": "6842:258:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1996,
- "nodeType": "Block",
- "src": "7653:385:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 1953,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1948,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1940,
- "src": "7671:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1951,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7689:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 1950,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "7681:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1949,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7681:7:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1952,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7681:10:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "7671:20:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373",
- "id": 1954,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7693:39:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea",
- "typeString": "literal_string \"ERC20: transfer from the zero address\""
- },
- "value": "ERC20: transfer from the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea",
- "typeString": "literal_string \"ERC20: transfer from the zero address\""
- }
- ],
- "id": 1947,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "7663:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1955,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7663:70:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1956,
- "nodeType": "ExpressionStatement",
- "src": "7663:70:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 1963,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 1958,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1942,
- "src": "7751:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 1961,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7772:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 1960,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "7764:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1959,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7764:7:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 1962,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7764:10:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "7751:23:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373",
- "id": 1964,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7776:37:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f",
- "typeString": "literal_string \"ERC20: transfer to the zero address\""
- },
- "value": "ERC20: transfer to the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f",
- "typeString": "literal_string \"ERC20: transfer to the zero address\""
- }
- ],
- "id": 1957,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "7743:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1965,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7743:71:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1966,
- "nodeType": "ExpressionStatement",
- "src": "7743:71:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1977,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1967,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1542,
- "src": "7825:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 1969,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1968,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1940,
- "src": "7835:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "7825:17:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1974,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1944,
- "src": "7867:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
- "id": 1975,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7875:40:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6",
- "typeString": "literal_string \"ERC20: transfer amount exceeds balance\""
- },
- "value": "ERC20: transfer amount exceeds balance"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6",
- "typeString": "literal_string \"ERC20: transfer amount exceeds balance\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1970,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1542,
- "src": "7845:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 1972,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1971,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1940,
- "src": "7855:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "7845:17:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1973,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2456,
- "src": "7845:21:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
- }
- },
- "id": 1976,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7845:71:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7825:91:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1978,
- "nodeType": "ExpressionStatement",
- "src": "7825:91:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 1988,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1979,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1542,
- "src": "7926:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 1981,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1980,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1942,
- "src": "7936:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "7926:20:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1986,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1944,
- "src": "7974:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 1982,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1542,
- "src": "7949:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 1984,
- "indexExpression": {
- "argumentTypes": null,
- "id": 1983,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1942,
- "src": "7959:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "7949:20:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1985,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2332,
- "src": "7949:24:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1987,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7949:32:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7926:55:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1989,
- "nodeType": "ExpressionStatement",
- "src": "7926:55:2"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 1991,
- "name": "sender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1940,
- "src": "8005:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1992,
- "name": "recipient",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1942,
- "src": "8013:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 1993,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1944,
- "src": "8024:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1990,
- "name": "Transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3076,
- "src": "7996:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 1994,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7996:35:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1995,
- "nodeType": "EmitStatement",
- "src": "7991:40:2"
- }
- ]
- },
- "documentation": {
- "id": 1938,
- "nodeType": "StructuredDocumentation",
- "src": "7106:463:2",
- "text": " @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."
- },
- "id": 1997,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_transfer",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 1945,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1940,
- "mutability": "mutable",
- "name": "sender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1997,
- "src": "7593:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1939,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7593:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1942,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1997,
- "src": "7609:17:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1941,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "7609:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1944,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 1997,
- "src": "7628:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1943,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7628:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7592:51:2"
- },
- "returnParameters": {
- "id": 1946,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "7653:0:2"
- },
- "scope": 2147,
- "src": "7574:464:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2042,
- "nodeType": "Block",
- "src": "8365:245:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2011,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2006,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2000,
- "src": "8383:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2009,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8402:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2008,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "8394:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2007,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8394:7:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2010,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8394:10:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "8383:21:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373",
- "id": 2012,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8406:33:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e",
- "typeString": "literal_string \"ERC20: mint to the zero address\""
- },
- "value": "ERC20: mint to the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e",
- "typeString": "literal_string \"ERC20: mint to the zero address\""
- }
- ],
- "id": 2005,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "8375:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2013,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8375:65:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2014,
- "nodeType": "ExpressionStatement",
- "src": "8375:65:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2020,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 2015,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1550,
- "src": "8451:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2018,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2002,
- "src": "8483:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 2016,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1550,
- "src": "8466:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2017,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2332,
- "src": "8466:16:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 2019,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8466:24:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "8451:39:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2021,
- "nodeType": "ExpressionStatement",
- "src": "8451:39:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2031,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2022,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1542,
- "src": "8500:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2024,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2023,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2000,
- "src": "8510:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "8500:18:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2029,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2002,
- "src": "8544:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2025,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1542,
- "src": "8521:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2027,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2026,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2000,
- "src": "8531:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "8521:18:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2028,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2332,
- "src": "8521:22:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 2030,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8521:30:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "8500:51:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2032,
- "nodeType": "ExpressionStatement",
- "src": "8500:51:2"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2036,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "8583:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2035,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "8575:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2034,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8575:7:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2037,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8575:10:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2038,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2000,
- "src": "8587:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2039,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2002,
- "src": "8596:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2033,
- "name": "Transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3076,
- "src": "8566:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2040,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8566:37:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2041,
- "nodeType": "EmitStatement",
- "src": "8561:42:2"
- }
- ]
- },
- "documentation": {
- "id": 1998,
- "nodeType": "StructuredDocumentation",
- "src": "8044:259:2",
- "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements\n - `to` cannot be the zero address."
- },
- "id": 2043,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_mint",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2003,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2000,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2043,
- "src": "8323:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1999,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8323:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2002,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2043,
- "src": "8340:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2001,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "8340:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "8322:33:2"
- },
- "returnParameters": {
- "id": 2004,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "8365:0:2"
- },
- "scope": 2147,
- "src": "8308:302:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2089,
- "nodeType": "Block",
- "src": "8986:285:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2057,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2052,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2046,
- "src": "9004:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2055,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9023:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2054,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9015:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2053,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9015:7:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2056,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9015:10:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "9004:21:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373",
- "id": 2058,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9027:35:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f",
- "typeString": "literal_string \"ERC20: burn from the zero address\""
- },
- "value": "ERC20: burn from the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f",
- "typeString": "literal_string \"ERC20: burn from the zero address\""
- }
- ],
- "id": 2051,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "8996:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2059,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "8996:67:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2060,
- "nodeType": "ExpressionStatement",
- "src": "8996:67:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2071,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2061,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1542,
- "src": "9074:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2063,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2062,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2046,
- "src": "9084:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "9074:18:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2068,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2048,
- "src": "9118:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365",
- "id": 2069,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9126:36:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd",
- "typeString": "literal_string \"ERC20: burn amount exceeds balance\""
- },
- "value": "ERC20: burn amount exceeds balance"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd",
- "typeString": "literal_string \"ERC20: burn amount exceeds balance\""
- }
- ],
- "expression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2064,
- "name": "_balances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1542,
- "src": "9095:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2066,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2065,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2046,
- "src": "9105:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "9095:18:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2067,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2456,
- "src": "9095:22:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256,string memory) pure returns (uint256)"
- }
- },
- "id": 2070,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9095:68:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "9074:89:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2072,
- "nodeType": "ExpressionStatement",
- "src": "9074:89:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2078,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 2073,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1550,
- "src": "9173:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2076,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2048,
- "src": "9205:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "argumentTypes": null,
- "id": 2074,
- "name": "_totalSupply",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1550,
- "src": "9188:12:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2075,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sub",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 2354,
- "src": "9188:16:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 2077,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9188:24:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "9173:39:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2079,
- "nodeType": "ExpressionStatement",
- "src": "9173:39:2"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2081,
- "name": "account",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2046,
- "src": "9236:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2084,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9253:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2083,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9245:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2082,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9245:7:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2085,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9245:10:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 2086,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2048,
- "src": "9257:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2080,
- "name": "Transfer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3076,
- "src": "9227:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2087,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9227:37:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2088,
- "nodeType": "EmitStatement",
- "src": "9222:42:2"
- }
- ]
- },
- "documentation": {
- "id": 2044,
- "nodeType": "StructuredDocumentation",
- "src": "8616:308:2",
- "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."
- },
- "id": 2090,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_burn",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2049,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2046,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2090,
- "src": "8944:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2045,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "8944:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2048,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2090,
- "src": "8961:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2047,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "8961:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "8943:33:2"
- },
- "returnParameters": {
- "id": 2050,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "8986:0:2"
- },
- "scope": 2147,
- "src": "8929:342:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2134,
- "nodeType": "Block",
- "src": "9771:257:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2106,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2101,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2093,
- "src": "9789:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2104,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9806:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2103,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9798:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2102,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9798:7:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2105,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9798:10:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "9789:19:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373",
- "id": 2107,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9810:38:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208",
- "typeString": "literal_string \"ERC20: approve from the zero address\""
- },
- "value": "ERC20: approve from the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208",
- "typeString": "literal_string \"ERC20: approve from the zero address\""
- }
- ],
- "id": 2100,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "9781:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2108,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9781:68:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2109,
- "nodeType": "ExpressionStatement",
- "src": "9781:68:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 2116,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 2111,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2095,
- "src": "9867:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 2114,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9886:1:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 2113,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "9878:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 2112,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9878:7:2",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 2115,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9878:10:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "9867:21:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373",
- "id": 2117,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "9890:36:2",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029",
- "typeString": "literal_string \"ERC20: approve to the zero address\""
- },
- "value": "ERC20: approve to the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029",
- "typeString": "literal_string \"ERC20: approve to the zero address\""
- }
- ],
- "id": 2110,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "src": "9859:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 2118,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9859:68:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2119,
- "nodeType": "ExpressionStatement",
- "src": "9859:68:2"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 2126,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "baseExpression": {
- "argumentTypes": null,
- "id": 2120,
- "name": "_allowances",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1548,
- "src": "9938:11:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
- "typeString": "mapping(address => mapping(address => uint256))"
- }
- },
- "id": 2123,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2121,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2093,
- "src": "9950:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "9938:18:2",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
- "typeString": "mapping(address => uint256)"
- }
- },
- "id": 2124,
- "indexExpression": {
- "argumentTypes": null,
- "id": 2122,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2095,
- "src": "9957:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "9938:27:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 2125,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2097,
- "src": "9968:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "9938:36:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 2127,
- "nodeType": "ExpressionStatement",
- "src": "9938:36:2"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 2129,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2093,
- "src": "9998:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2130,
- "name": "spender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2095,
- "src": "10005:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 2131,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2097,
- "src": "10014:6:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 2128,
- "name": "Approval",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 3085,
- "src": "9989:8:2",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (address,address,uint256)"
- }
- },
- "id": 2132,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "9989:32:2",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 2133,
- "nodeType": "EmitStatement",
- "src": "9984:37:2"
- }
- ]
- },
- "documentation": {
- "id": 2091,
- "nodeType": "StructuredDocumentation",
- "src": "9277:414:2",
- "text": " @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n This is internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."
- },
- "id": 2135,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_approve",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2098,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2093,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2135,
- "src": "9714:13:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2092,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9714:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2095,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2135,
- "src": "9729:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 2094,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "9729:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 2097,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2135,
- "src": "9746:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 2096,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "9746:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "9713:48:2"
- },
- "returnParameters": {
- "id": 2099,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "9771:0:2"
- },
- "scope": 2147,
- "src": "9696:332:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 2145,
- "nodeType": "Block",
- "src": "10401:38:2",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 2143,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 2141,
- "name": "_decimals",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1555,
- "src": "10411:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 2142,
- "name": "decimals_",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 2138,
- "src": "10423:9:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "10411:21:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 2144,
- "nodeType": "ExpressionStatement",
- "src": "10411:21:2"
- }
- ]
- },
- "documentation": {
- "id": 2136,
- "nodeType": "StructuredDocumentation",
- "src": "10034:312:2",
- "text": " @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does."
- },
- "id": 2146,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_setupDecimals",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 2139,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 2138,
- "mutability": "mutable",
- "name": "decimals_",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 2146,
- "src": "10375:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 2137,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "10375:5:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "10374:17:2"
- },
- "returnParameters": {
- "id": 2140,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "10401:0:2"
- },
- "scope": 2147,
- "src": "10351:88:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- }
- ],
- "scope": 2148,
- "src": "304:10137:2"
- }
- ],
- "src": "67:10375:2"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "/Users/bartosz.lipinski/Workspace/wormhole/ethereum/contracts/WrappedAsset.sol",
- "exportedSymbols": {
- "WrappedAsset": [2147]
- },
- "license": "Apache 2"
- },
- "children": [
- {
- "attributes": {
- "literals": ["solidity", "^", "0.6", ".0"]
- },
- "id": 1433,
- "name": "PragmaDirective",
- "src": "67:23:2"
- },
- {
- "attributes": {
- "SourceUnit": 3087,
- "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
- "scope": 2148,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 1434,
- "name": "ImportDirective",
- "src": "92:56:2"
- },
- {
- "attributes": {
- "SourceUnit": 2506,
- "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
- "file": "@openzeppelin/contracts/math/SafeMath.sol",
- "scope": 2148,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 1435,
- "name": "ImportDirective",
- "src": "149:51:2"
- },
- {
- "attributes": {
- "SourceUnit": 3596,
- "absolutePath": "@openzeppelin/contracts/utils/Address.sol",
- "file": "@openzeppelin/contracts/utils/Address.sol",
- "scope": 2148,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 1436,
- "name": "ImportDirective",
- "src": "201:51:2"
- },
- {
- "attributes": {
- "SourceUnit": 2151,
- "absolutePath": "@openzeppelin/contracts/GSN/Context.sol",
- "file": "@openzeppelin/contracts/GSN/Context.sol",
- "scope": 2148,
- "symbolAliases": [null],
- "unitAlias": ""
- },
- "id": 1437,
- "name": "ImportDirective",
- "src": "253:49:2"
- },
- {
- "attributes": {
- "abstract": false,
- "contractDependencies": [3086, 3618],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "linearizedBaseContracts": [2147, 3618, 3086],
- "name": "WrappedAsset",
- "scope": 2148
- },
- "children": [
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "IERC20",
- "referencedDeclaration": 3086,
- "type": "contract IERC20"
- },
- "id": 1438,
- "name": "UserDefinedTypeName",
- "src": "329:6:2"
- }
- ],
- "id": 1439,
- "name": "InheritanceSpecifier",
- "src": "329:6:2"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "Context",
- "referencedDeclaration": 3618,
- "type": "contract Context"
- },
- "id": 1440,
- "name": "UserDefinedTypeName",
- "src": "337:7:2"
- }
- ],
- "id": 1441,
- "name": "InheritanceSpecifier",
- "src": "337:7:2"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "026b0539",
- "mutability": "mutable",
- "name": "assetChain",
- "overrides": null,
- "scope": 2147,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1442,
- "name": "ElementaryTypeName",
- "src": "351:5:2"
- }
- ],
- "id": 1443,
- "name": "VariableDeclaration",
- "src": "351:23:2"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "1ba46cfd",
- "mutability": "mutable",
- "name": "assetAddress",
- "overrides": null,
- "scope": 2147,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1444,
- "name": "ElementaryTypeName",
- "src": "380:7:2"
- }
- ],
- "id": 1445,
- "name": "VariableDeclaration",
- "src": "380:27:2"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "158ef93e",
- "mutability": "mutable",
- "name": "initialized",
- "overrides": null,
- "scope": 2147,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1446,
- "name": "ElementaryTypeName",
- "src": "413:4:2"
- }
- ],
- "id": 1447,
- "name": "VariableDeclaration",
- "src": "413:23:2"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "e78cea92",
- "mutability": "mutable",
- "name": "bridge",
- "overrides": null,
- "scope": 2147,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1448,
- "name": "ElementaryTypeName",
- "src": "442:7:2"
- }
- ],
- "id": 1449,
- "name": "VariableDeclaration",
- "src": "442:21:2"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "a7a2d3fb",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "initialize",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_assetChain",
- "overrides": null,
- "scope": 1490,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1450,
- "name": "ElementaryTypeName",
- "src": "490:5:2"
- }
- ],
- "id": 1451,
- "name": "VariableDeclaration",
- "src": "490:17:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_assetAddress",
- "overrides": null,
- "scope": 1490,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1452,
- "name": "ElementaryTypeName",
- "src": "509:7:2"
- }
- ],
- "id": 1453,
- "name": "VariableDeclaration",
- "src": "509:21:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "decimals",
- "overrides": null,
- "scope": 1490,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1454,
- "name": "ElementaryTypeName",
- "src": "532:5:2"
- }
- ],
- "id": 1455,
- "name": "VariableDeclaration",
- "src": "532:14:2"
- }
- ],
- "id": 1456,
- "name": "ParameterList",
- "src": "489:58:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1457,
- "name": "ParameterList",
- "src": "555:0:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_6fad3ee6d344e662108f49bced409fae87c3af64246556bdd23a34dddc7e1adc",
- "typeString": "literal_string \"already initialized\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1458,
- "name": "Identifier",
- "src": "565:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!",
- "prefix": true,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1447,
- "type": "bool",
- "value": "initialized"
- },
- "id": 1459,
- "name": "Identifier",
- "src": "574:11:2"
- }
- ],
- "id": 1460,
- "name": "UnaryOperation",
- "src": "573:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "616c726561647920696e697469616c697a6564",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"already initialized\"",
- "value": "already initialized"
- },
- "id": 1461,
- "name": "Literal",
- "src": "587:21:2"
- }
- ],
- "id": 1462,
- "name": "FunctionCall",
- "src": "565:44:2"
- }
- ],
- "id": 1463,
- "name": "ExpressionStatement",
- "src": "565:44:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1443,
- "type": "uint8",
- "value": "assetChain"
- },
- "id": 1464,
- "name": "Identifier",
- "src": "647:10:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1451,
- "type": "uint8",
- "value": "_assetChain"
- },
- "id": 1465,
- "name": "Identifier",
- "src": "660:11:2"
- }
- ],
- "id": 1466,
- "name": "Assignment",
- "src": "647:24:2"
- }
- ],
- "id": 1467,
- "name": "ExpressionStatement",
- "src": "647:24:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1445,
- "type": "bytes32",
- "value": "assetAddress"
- },
- "id": 1468,
- "name": "Identifier",
- "src": "681:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1453,
- "type": "bytes32",
- "value": "_assetAddress"
- },
- "id": 1469,
- "name": "Identifier",
- "src": "696:13:2"
- }
- ],
- "id": 1470,
- "name": "Assignment",
- "src": "681:28:2"
- }
- ],
- "id": 1471,
- "name": "ExpressionStatement",
- "src": "681:28:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1449,
- "type": "address",
- "value": "bridge"
- },
- "id": 1472,
- "name": "Identifier",
- "src": "719:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1473,
- "name": "Identifier",
- "src": "728:3:2"
- }
- ],
- "id": 1474,
- "name": "MemberAccess",
- "src": "728:10:2"
- }
- ],
- "id": 1475,
- "name": "Assignment",
- "src": "719:19:2"
- }
- ],
- "id": 1476,
- "name": "ExpressionStatement",
- "src": "719:19:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1447,
- "type": "bool",
- "value": "initialized"
- },
- "id": 1477,
- "name": "Identifier",
- "src": "748:11:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1478,
- "name": "Literal",
- "src": "762:4:2"
- }
- ],
- "id": 1479,
- "name": "Assignment",
- "src": "748:18:2"
- }
- ],
- "id": 1480,
- "name": "ExpressionStatement",
- "src": "748:18:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "string storage ref"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1552,
- "type": "string storage ref",
- "value": "_symbol"
- },
- "id": 1481,
- "name": "Identifier",
- "src": "777:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "575754",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"WWT\"",
- "value": "WWT"
- },
- "id": 1482,
- "name": "Literal",
- "src": "787:5:2"
- }
- ],
- "id": 1483,
- "name": "Assignment",
- "src": "777:15:2"
- }
- ],
- "id": 1484,
- "name": "ExpressionStatement",
- "src": "777:15:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1555,
- "type": "uint8",
- "value": "_decimals"
- },
- "id": 1485,
- "name": "Identifier",
- "src": "802:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1455,
- "type": "uint8",
- "value": "decimals"
- },
- "id": 1486,
- "name": "Identifier",
- "src": "814:8:2"
- }
- ],
- "id": 1487,
- "name": "Assignment",
- "src": "802:20:2"
- }
- ],
- "id": 1488,
- "name": "ExpressionStatement",
- "src": "802:20:2"
- }
- ],
- "id": 1489,
- "name": "Block",
- "src": "555:274:2"
- }
- ],
- "id": 1490,
- "name": "FunctionDefinition",
- "src": "470:359:2"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "40c10f19",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "mint",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 1511,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1491,
- "name": "ElementaryTypeName",
- "src": "849:7:2"
- }
- ],
- "id": 1492,
- "name": "VariableDeclaration",
- "src": "849:15:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1511,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1493,
- "name": "ElementaryTypeName",
- "src": "866:7:2"
- }
- ],
- "id": 1494,
- "name": "VariableDeclaration",
- "src": "866:14:2"
- }
- ],
- "id": 1495,
- "name": "ParameterList",
- "src": "848:33:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1496,
- "name": "ParameterList",
- "src": "891:0:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_e7702acf154d2f82cc8c1dd52813f94b0a08ea733aaf89d0cac26f6b55722c5a",
- "typeString": "literal_string \"mint can only be called by the bridge\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1497,
- "name": "Identifier",
- "src": "901:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1498,
- "name": "Identifier",
- "src": "909:3:2"
- }
- ],
- "id": 1499,
- "name": "MemberAccess",
- "src": "909:10:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1449,
- "type": "address",
- "value": "bridge"
- },
- "id": 1500,
- "name": "Identifier",
- "src": "923:6:2"
- }
- ],
- "id": 1501,
- "name": "BinaryOperation",
- "src": "909:20:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6d696e742063616e206f6e6c792062652063616c6c65642062792074686520627269646765",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"mint can only be called by the bridge\"",
- "value": "mint can only be called by the bridge"
- },
- "id": 1502,
- "name": "Literal",
- "src": "931:39:2"
- }
- ],
- "id": 1503,
- "name": "FunctionCall",
- "src": "901:70:2"
- }
- ],
- "id": 1504,
- "name": "ExpressionStatement",
- "src": "901:70:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2043,
- "type": "function (address,uint256)",
- "value": "_mint"
- },
- "id": 1505,
- "name": "Identifier",
- "src": "982:5:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1492,
- "type": "address",
- "value": "account"
- },
- "id": 1506,
- "name": "Identifier",
- "src": "988:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1494,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1507,
- "name": "Identifier",
- "src": "997:6:2"
- }
- ],
- "id": 1508,
- "name": "FunctionCall",
- "src": "982:22:2"
- }
- ],
- "id": 1509,
- "name": "ExpressionStatement",
- "src": "982:22:2"
- }
- ],
- "id": 1510,
- "name": "Block",
- "src": "891:120:2"
- }
- ],
- "id": 1511,
- "name": "FunctionDefinition",
- "src": "835:176:2"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "9dc29fac",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "burn",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 1532,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1512,
- "name": "ElementaryTypeName",
- "src": "1031:7:2"
- }
- ],
- "id": 1513,
- "name": "VariableDeclaration",
- "src": "1031:15:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1532,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1514,
- "name": "ElementaryTypeName",
- "src": "1048:7:2"
- }
- ],
- "id": 1515,
- "name": "VariableDeclaration",
- "src": "1048:14:2"
- }
- ],
- "id": 1516,
- "name": "ParameterList",
- "src": "1030:33:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1517,
- "name": "ParameterList",
- "src": "1073:0:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c31242aa9df4d29364b074986b1202ec8729deca727157a31be5e2473387893b",
- "typeString": "literal_string \"burn can only be called by the bridge\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1518,
- "name": "Identifier",
- "src": "1083:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 1519,
- "name": "Identifier",
- "src": "1091:3:2"
- }
- ],
- "id": 1520,
- "name": "MemberAccess",
- "src": "1091:10:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1449,
- "type": "address",
- "value": "bridge"
- },
- "id": 1521,
- "name": "Identifier",
- "src": "1105:6:2"
- }
- ],
- "id": 1522,
- "name": "BinaryOperation",
- "src": "1091:20:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "6275726e2063616e206f6e6c792062652063616c6c65642062792074686520627269646765",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"burn can only be called by the bridge\"",
- "value": "burn can only be called by the bridge"
- },
- "id": 1523,
- "name": "Literal",
- "src": "1113:39:2"
- }
- ],
- "id": 1524,
- "name": "FunctionCall",
- "src": "1083:70:2"
- }
- ],
- "id": 1525,
- "name": "ExpressionStatement",
- "src": "1083:70:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2090,
- "type": "function (address,uint256)",
- "value": "_burn"
- },
- "id": 1526,
- "name": "Identifier",
- "src": "1164:5:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1513,
- "type": "address",
- "value": "account"
- },
- "id": 1527,
- "name": "Identifier",
- "src": "1170:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1515,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1528,
- "name": "Identifier",
- "src": "1179:6:2"
- }
- ],
- "id": 1529,
- "name": "FunctionCall",
- "src": "1164:22:2"
- }
- ],
- "id": 1530,
- "name": "ExpressionStatement",
- "src": "1164:22:2"
- }
- ],
- "id": 1531,
- "name": "Block",
- "src": "1073:120:2"
- }
- ],
- "id": 1532,
- "name": "FunctionDefinition",
- "src": "1017:176:2"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "SafeMath",
- "referencedDeclaration": 2505,
- "type": "library SafeMath"
- },
- "id": 1533,
- "name": "UserDefinedTypeName",
- "src": "1349:8:2"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1534,
- "name": "ElementaryTypeName",
- "src": "1362:7:2"
- }
- ],
- "id": 1535,
- "name": "UsingForDirective",
- "src": "1343:27:2"
- },
- {
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "Address",
- "referencedDeclaration": 3595,
- "type": "library Address"
- },
- "id": 1536,
- "name": "UserDefinedTypeName",
- "src": "1381:7:2"
- },
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1537,
- "name": "ElementaryTypeName",
- "src": "1393:7:2"
- }
- ],
- "id": 1538,
- "name": "UsingForDirective",
- "src": "1375:26:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_balances",
- "overrides": null,
- "scope": 2147,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(address => uint256)",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 1539,
- "name": "ElementaryTypeName",
- "src": "1415:7:2"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1540,
- "name": "ElementaryTypeName",
- "src": "1426:7:2"
- }
- ],
- "id": 1541,
- "name": "Mapping",
- "src": "1407:27:2"
- }
- ],
- "id": 1542,
- "name": "VariableDeclaration",
- "src": "1407:45:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_allowances",
- "overrides": null,
- "scope": 2147,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(address => mapping(address => uint256))",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(address => mapping(address => uint256))"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 1543,
- "name": "ElementaryTypeName",
- "src": "1467:7:2"
- },
- {
- "attributes": {
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": "address"
- },
- "id": 1544,
- "name": "ElementaryTypeName",
- "src": "1486:7:2"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1545,
- "name": "ElementaryTypeName",
- "src": "1497:7:2"
- }
- ],
- "id": 1546,
- "name": "Mapping",
- "src": "1478:27:2"
- }
- ],
- "id": 1547,
- "name": "Mapping",
- "src": "1459:47:2"
- }
- ],
- "id": 1548,
- "name": "VariableDeclaration",
- "src": "1459:67:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_totalSupply",
- "overrides": null,
- "scope": 2147,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1549,
- "name": "ElementaryTypeName",
- "src": "1533:7:2"
- }
- ],
- "id": 1550,
- "name": "VariableDeclaration",
- "src": "1533:28:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_symbol",
- "overrides": null,
- "scope": 2147,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "string",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 1551,
- "name": "ElementaryTypeName",
- "src": "1568:6:2"
- }
- ],
- "id": 1552,
- "name": "VariableDeclaration",
- "src": "1568:22:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_decimals",
- "overrides": null,
- "scope": 2147,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint8",
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1553,
- "name": "ElementaryTypeName",
- "src": "1596:5:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3138",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 18",
- "value": "18"
- },
- "id": 1554,
- "name": "Literal",
- "src": "1622:2:2"
- }
- ],
- "id": 1555,
- "name": "VariableDeclaration",
- "src": "1596:28:2"
- },
- {
- "attributes": {
- "functionSelector": "06fdde03",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "name",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the name of the token."
- },
- "id": 1556,
- "name": "StructuredDocumentation",
- "src": "1631:54:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1557,
- "name": "ParameterList",
- "src": "1703:2:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1576,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 1558,
- "name": "ElementaryTypeName",
- "src": "1727:6:2"
- }
- ],
- "id": 1559,
- "name": "VariableDeclaration",
- "src": "1727:13:2"
- }
- ],
- "id": 1560,
- "name": "ParameterList",
- "src": "1726:15:2"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1560
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "string memory",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(string storage pointer)"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": null
- },
- "id": 1561,
- "name": "ElementaryTypeName",
- "src": "1759:6:2"
- }
- ],
- "id": 1562,
- "name": "ElementaryTypeNameExpression",
- "src": "1759:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_stringliteral_5cf7e3c6b428de30b95e99bd5727c04cd18c12b66cf3176e2f95b4ceb77530a8",
- "typeString": "literal_string \"Wormhole Wrapped - \""
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- },
- {
- "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561",
- "typeString": "literal_string \"-\""
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "member_name": "encodePacked",
- "referencedDeclaration": null,
- "type": "function () pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": -1,
- "type": "abi",
- "value": "abi"
- },
- "id": 1563,
- "name": "Identifier",
- "src": "1766:3:2"
- }
- ],
- "id": 1564,
- "name": "MemberAccess",
- "src": "1766:16:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "576f726d686f6c652057726170706564202d20",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Wormhole Wrapped - \"",
- "value": "Wormhole Wrapped - "
- },
- "id": 1565,
- "name": "Literal",
- "src": "1783:21:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "string memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1654,
- "type": "function (uint256) pure returns (string memory)",
- "value": "uintToString"
- },
- "id": 1566,
- "name": "Identifier",
- "src": "1806:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1443,
- "type": "uint8",
- "value": "assetChain"
- },
- "id": 1567,
- "name": "Identifier",
- "src": "1819:10:2"
- }
- ],
- "id": 1568,
- "name": "FunctionCall",
- "src": "1806:24:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "2d",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"-\"",
- "value": "-"
- },
- "id": 1569,
- "name": "Literal",
- "src": "1832:3:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "string memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1740,
- "type": "function () view returns (string memory)",
- "value": "assetAddressString"
- },
- "id": 1570,
- "name": "Identifier",
- "src": "1837:18:2"
- }
- ],
- "id": 1571,
- "name": "FunctionCall",
- "src": "1837:20:2"
- }
- ],
- "id": 1572,
- "name": "FunctionCall",
- "src": "1766:92:2"
- }
- ],
- "id": 1573,
- "name": "FunctionCall",
- "src": "1759:100:2"
- }
- ],
- "id": 1574,
- "name": "Return",
- "src": "1752:107:2"
- }
- ],
- "id": 1575,
- "name": "Block",
- "src": "1742:124:2"
- }
- ],
- "id": 1576,
- "name": "FunctionDefinition",
- "src": "1690:176:2"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "uintToString",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_i",
- "overrides": null,
- "scope": 1654,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 1577,
- "name": "ElementaryTypeName",
- "src": "1944:4:2"
- }
- ],
- "id": 1578,
- "name": "VariableDeclaration",
- "src": "1944:7:2"
- }
- ],
- "id": 1579,
- "name": "ParameterList",
- "src": "1943:9:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_uintAsString",
- "overrides": null,
- "scope": 1654,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 1580,
- "name": "ElementaryTypeName",
- "src": "1976:6:2"
- }
- ],
- "id": 1581,
- "name": "VariableDeclaration",
- "src": "1976:27:2"
- }
- ],
- "id": 1582,
- "name": "ParameterList",
- "src": "1975:29:2"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1578,
- "type": "uint256",
- "value": "_i"
- },
- "id": 1583,
- "name": "Identifier",
- "src": "2019:2:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1584,
- "name": "Literal",
- "src": "2025:1:2"
- }
- ],
- "id": 1585,
- "name": "BinaryOperation",
- "src": "2019:7:2"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1582
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"0\"",
- "value": "0"
- },
- "id": 1586,
- "name": "Literal",
- "src": "2049:3:2"
- }
- ],
- "id": 1587,
- "name": "Return",
- "src": "2042:10:2"
- }
- ],
- "id": 1588,
- "name": "Block",
- "src": "2028:35:2"
- }
- ],
- "id": 1589,
- "name": "IfStatement",
- "src": "2015:48:2"
- },
- {
- "attributes": {
- "assignments": [1591]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "j",
- "overrides": null,
- "scope": 1653,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 1590,
- "name": "ElementaryTypeName",
- "src": "2072:4:2"
- }
- ],
- "id": 1591,
- "name": "VariableDeclaration",
- "src": "2072:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1578,
- "type": "uint256",
- "value": "_i"
- },
- "id": 1592,
- "name": "Identifier",
- "src": "2081:2:2"
- }
- ],
- "id": 1593,
- "name": "VariableDeclarationStatement",
- "src": "2072:11:2"
- },
- {
- "attributes": {
- "assignments": [1595],
- "initialValue": null
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "len",
- "overrides": null,
- "scope": 1653,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 1594,
- "name": "ElementaryTypeName",
- "src": "2093:4:2"
- }
- ],
- "id": 1595,
- "name": "VariableDeclaration",
- "src": "2093:8:2"
- }
- ],
- "id": 1596,
- "name": "VariableDeclarationStatement",
- "src": "2093:8:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1591,
- "type": "uint256",
- "value": "j"
- },
- "id": 1597,
- "name": "Identifier",
- "src": "2118:1:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1598,
- "name": "Literal",
- "src": "2123:1:2"
- }
- ],
- "id": 1599,
- "name": "BinaryOperation",
- "src": "2118:6:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "++",
- "prefix": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1595,
- "type": "uint256",
- "value": "len"
- },
- "id": 1600,
- "name": "Identifier",
- "src": "2140:3:2"
- }
- ],
- "id": 1601,
- "name": "UnaryOperation",
- "src": "2140:5:2"
- }
- ],
- "id": 1602,
- "name": "ExpressionStatement",
- "src": "2140:5:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1591,
- "type": "uint256",
- "value": "j"
- },
- "id": 1603,
- "name": "Identifier",
- "src": "2159:1:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1604,
- "name": "Literal",
- "src": "2164:2:2"
- }
- ],
- "id": 1605,
- "name": "Assignment",
- "src": "2159:7:2"
- }
- ],
- "id": 1606,
- "name": "ExpressionStatement",
- "src": "2159:7:2"
- }
- ],
- "id": 1607,
- "name": "Block",
- "src": "2126:51:2"
- }
- ],
- "id": 1608,
- "name": "WhileStatement",
- "src": "2111:66:2"
- },
- {
- "attributes": {
- "assignments": [1610]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "bstr",
- "overrides": null,
- "scope": 1653,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 1609,
- "name": "ElementaryTypeName",
- "src": "2186:5:2"
- }
- ],
- "id": 1610,
- "name": "VariableDeclaration",
- "src": "2186:17:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "function (uint256) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 1611,
- "name": "ElementaryTypeName",
- "src": "2210:5:2"
- }
- ],
- "id": 1612,
- "name": "NewExpression",
- "src": "2206:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1595,
- "type": "uint256",
- "value": "len"
- },
- "id": 1613,
- "name": "Identifier",
- "src": "2216:3:2"
- }
- ],
- "id": 1614,
- "name": "FunctionCall",
- "src": "2206:14:2"
- }
- ],
- "id": 1615,
- "name": "VariableDeclarationStatement",
- "src": "2186:34:2"
- },
- {
- "attributes": {
- "assignments": [1617]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "k",
- "overrides": null,
- "scope": 1653,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 1616,
- "name": "ElementaryTypeName",
- "src": "2230:4:2"
- }
- ],
- "id": 1617,
- "name": "VariableDeclaration",
- "src": "2230:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1595,
- "type": "uint256",
- "value": "len"
- },
- "id": 1618,
- "name": "Identifier",
- "src": "2239:3:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 1619,
- "name": "Literal",
- "src": "2245:1:2"
- }
- ],
- "id": 1620,
- "name": "BinaryOperation",
- "src": "2239:7:2"
- }
- ],
- "id": 1621,
- "name": "VariableDeclarationStatement",
- "src": "2230:16:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1578,
- "type": "uint256",
- "value": "_i"
- },
- "id": 1622,
- "name": "Identifier",
- "src": "2263:2:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1623,
- "name": "Literal",
- "src": "2269:1:2"
- }
- ],
- "id": 1624,
- "name": "BinaryOperation",
- "src": "2263:7:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1610,
- "type": "bytes memory",
- "value": "bstr"
- },
- "id": 1625,
- "name": "Identifier",
- "src": "2286:4:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "--",
- "prefix": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1617,
- "type": "uint256",
- "value": "k"
- },
- "id": 1626,
- "name": "Identifier",
- "src": "2291:1:2"
- }
- ],
- "id": 1627,
- "name": "UnaryOperation",
- "src": "2291:3:2"
- }
- ],
- "id": 1628,
- "name": "IndexAccess",
- "src": "2286:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes1",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(bytes1)"
- },
- "children": [
- {
- "attributes": {
- "name": "byte",
- "type": null
- },
- "id": 1629,
- "name": "ElementaryTypeName",
- "src": "2298:4:2"
- }
- ],
- "id": 1630,
- "name": "ElementaryTypeNameExpression",
- "src": "2298:4:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint8)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": null
- },
- "id": 1631,
- "name": "ElementaryTypeName",
- "src": "2303:5:2"
- }
- ],
- "id": 1632,
- "name": "ElementaryTypeNameExpression",
- "src": "2303:5:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3438",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 48",
- "value": "48"
- },
- "id": 1633,
- "name": "Literal",
- "src": "2309:2:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "%",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1578,
- "type": "uint256",
- "value": "_i"
- },
- "id": 1634,
- "name": "Identifier",
- "src": "2314:2:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1635,
- "name": "Literal",
- "src": "2319:2:2"
- }
- ],
- "id": 1636,
- "name": "BinaryOperation",
- "src": "2314:7:2"
- }
- ],
- "id": 1637,
- "name": "BinaryOperation",
- "src": "2309:12:2"
- }
- ],
- "id": 1638,
- "name": "FunctionCall",
- "src": "2303:19:2"
- }
- ],
- "id": 1639,
- "name": "FunctionCall",
- "src": "2298:25:2"
- }
- ],
- "id": 1640,
- "name": "Assignment",
- "src": "2286:37:2"
- }
- ],
- "id": 1641,
- "name": "ExpressionStatement",
- "src": "2286:37:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1578,
- "type": "uint256",
- "value": "_i"
- },
- "id": 1642,
- "name": "Identifier",
- "src": "2337:2:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "3130",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 10",
- "value": "10"
- },
- "id": 1643,
- "name": "Literal",
- "src": "2343:2:2"
- }
- ],
- "id": 1644,
- "name": "Assignment",
- "src": "2337:8:2"
- }
- ],
- "id": 1645,
- "name": "ExpressionStatement",
- "src": "2337:8:2"
- }
- ],
- "id": 1646,
- "name": "Block",
- "src": "2272:84:2"
- }
- ],
- "id": 1647,
- "name": "WhileStatement",
- "src": "2256:100:2"
- },
- {
- "attributes": {
- "functionReturnParameters": 1582
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "string memory",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(string storage pointer)"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": null
- },
- "id": 1648,
- "name": "ElementaryTypeName",
- "src": "2372:6:2"
- }
- ],
- "id": 1649,
- "name": "ElementaryTypeNameExpression",
- "src": "2372:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1610,
- "type": "bytes memory",
- "value": "bstr"
- },
- "id": 1650,
- "name": "Identifier",
- "src": "2379:4:2"
- }
- ],
- "id": 1651,
- "name": "FunctionCall",
- "src": "2372:12:2"
- }
- ],
- "id": 1652,
- "name": "Return",
- "src": "2365:19:2"
- }
- ],
- "id": 1653,
- "name": "Block",
- "src": "2005:386:2"
- }
- ],
- "id": 1654,
- "name": "FunctionDefinition",
- "src": "1922:469:2"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "assetAddressString",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1655,
- "name": "ParameterList",
- "src": "2474:2:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1740,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 1656,
- "name": "ElementaryTypeName",
- "src": "2499:6:2"
- }
- ],
- "id": 1657,
- "name": "VariableDeclaration",
- "src": "2499:13:2"
- }
- ],
- "id": 1658,
- "name": "ParameterList",
- "src": "2498:15:2"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1660]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "alphabet",
- "overrides": null,
- "scope": 1739,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 1659,
- "name": "ElementaryTypeName",
- "src": "2524:5:2"
- }
- ],
- "id": 1660,
- "name": "VariableDeclaration",
- "src": "2524:21:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30313233343536373839616263646566",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"0123456789abcdef\"",
- "value": "0123456789abcdef"
- },
- "id": 1661,
- "name": "Literal",
- "src": "2548:18:2"
- }
- ],
- "id": 1662,
- "name": "VariableDeclarationStatement",
- "src": "2524:42:2"
- },
- {
- "attributes": {
- "assignments": [1664]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "overrides": null,
- "scope": 1739,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1663,
- "name": "ElementaryTypeName",
- "src": "2576:7:2"
- }
- ],
- "id": 1664,
- "name": "VariableDeclaration",
- "src": "2576:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1445,
- "type": "bytes32",
- "value": "assetAddress"
- },
- "id": 1665,
- "name": "Identifier",
- "src": "2591:12:2"
- }
- ],
- "id": 1666,
- "name": "VariableDeclarationStatement",
- "src": "2576:27:2"
- },
- {
- "attributes": {
- "assignments": [1668]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "str",
- "overrides": null,
- "scope": 1739,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 1667,
- "name": "ElementaryTypeName",
- "src": "2614:5:2"
- }
- ],
- "id": 1668,
- "name": "VariableDeclaration",
- "src": "2614:16:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "bytes memory",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "function (uint256) pure returns (bytes memory)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 1669,
- "name": "ElementaryTypeName",
- "src": "2637:5:2"
- }
- ],
- "id": 1670,
- "name": "NewExpression",
- "src": "2633:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 1671,
- "name": "Literal",
- "src": "2643:1:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1664,
- "type": "bytes32",
- "value": "data"
- },
- "id": 1672,
- "name": "Identifier",
- "src": "2647:4:2"
- }
- ],
- "id": 1673,
- "name": "MemberAccess",
- "src": "2647:11:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 1674,
- "name": "Literal",
- "src": "2661:1:2"
- }
- ],
- "id": 1675,
- "name": "BinaryOperation",
- "src": "2647:15:2"
- }
- ],
- "id": 1676,
- "name": "BinaryOperation",
- "src": "2643:19:2"
- }
- ],
- "id": 1677,
- "name": "FunctionCall",
- "src": "2633:30:2"
- }
- ],
- "id": 1678,
- "name": "VariableDeclarationStatement",
- "src": "2614:49:2"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [1680]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "i",
- "overrides": null,
- "scope": 1733,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 1679,
- "name": "ElementaryTypeName",
- "src": "2678:4:2"
- }
- ],
- "id": 1680,
- "name": "VariableDeclaration",
- "src": "2678:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1681,
- "name": "Literal",
- "src": "2687:1:2"
- }
- ],
- "id": 1682,
- "name": "VariableDeclarationStatement",
- "src": "2678:10:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1680,
- "type": "uint256",
- "value": "i"
- },
- "id": 1683,
- "name": "Identifier",
- "src": "2690:1:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "length",
- "referencedDeclaration": null,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1664,
- "type": "bytes32",
- "value": "data"
- },
- "id": 1684,
- "name": "Identifier",
- "src": "2694:4:2"
- }
- ],
- "id": 1685,
- "name": "MemberAccess",
- "src": "2694:11:2"
- }
- ],
- "id": 1686,
- "name": "BinaryOperation",
- "src": "2690:15:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "++",
- "prefix": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1680,
- "type": "uint256",
- "value": "i"
- },
- "id": 1687,
- "name": "Identifier",
- "src": "2707:1:2"
- }
- ],
- "id": 1688,
- "name": "UnaryOperation",
- "src": "2707:3:2"
- }
- ],
- "id": 1689,
- "name": "ExpressionStatement",
- "src": "2707:3:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1668,
- "type": "bytes memory",
- "value": "str"
- },
- "id": 1690,
- "name": "Identifier",
- "src": "2726:3:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1680,
- "type": "uint256",
- "value": "i"
- },
- "id": 1691,
- "name": "Identifier",
- "src": "2730:1:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 1692,
- "name": "Literal",
- "src": "2734:1:2"
- }
- ],
- "id": 1693,
- "name": "BinaryOperation",
- "src": "2730:5:2"
- }
- ],
- "id": 1694,
- "name": "IndexAccess",
- "src": "2726:10:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1660,
- "type": "bytes memory",
- "value": "alphabet"
- },
- "id": 1695,
- "name": "Identifier",
- "src": "2739:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": null
- },
- "id": 1696,
- "name": "ElementaryTypeName",
- "src": "2748:4:2"
- }
- ],
- "id": 1697,
- "name": "ElementaryTypeNameExpression",
- "src": "2748:4:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint8)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": null
- },
- "id": 1698,
- "name": "ElementaryTypeName",
- "src": "2753:5:2"
- }
- ],
- "id": 1699,
- "name": "ElementaryTypeNameExpression",
- "src": "2753:5:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">>",
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1664,
- "type": "bytes32",
- "value": "data"
- },
- "id": 1700,
- "name": "Identifier",
- "src": "2759:4:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1680,
- "type": "uint256",
- "value": "i"
- },
- "id": 1701,
- "name": "Identifier",
- "src": "2764:1:2"
- }
- ],
- "id": 1702,
- "name": "IndexAccess",
- "src": "2759:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "34",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 4",
- "value": "4"
- },
- "id": 1703,
- "name": "Literal",
- "src": "2770:1:2"
- }
- ],
- "id": 1704,
- "name": "BinaryOperation",
- "src": "2759:12:2"
- }
- ],
- "id": 1705,
- "name": "FunctionCall",
- "src": "2753:19:2"
- }
- ],
- "id": 1706,
- "name": "FunctionCall",
- "src": "2748:25:2"
- }
- ],
- "id": 1707,
- "name": "IndexAccess",
- "src": "2739:35:2"
- }
- ],
- "id": 1708,
- "name": "Assignment",
- "src": "2726:48:2"
- }
- ],
- "id": 1709,
- "name": "ExpressionStatement",
- "src": "2726:48:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1668,
- "type": "bytes memory",
- "value": "str"
- },
- "id": 1710,
- "name": "Identifier",
- "src": "2788:3:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 1711,
- "name": "Literal",
- "src": "2792:1:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1680,
- "type": "uint256",
- "value": "i"
- },
- "id": 1712,
- "name": "Identifier",
- "src": "2796:1:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "32",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 2",
- "value": "2"
- },
- "id": 1713,
- "name": "Literal",
- "src": "2800:1:2"
- }
- ],
- "id": 1714,
- "name": "BinaryOperation",
- "src": "2796:5:2"
- }
- ],
- "id": 1715,
- "name": "BinaryOperation",
- "src": "2792:9:2"
- }
- ],
- "id": 1716,
- "name": "IndexAccess",
- "src": "2788:14:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1660,
- "type": "bytes memory",
- "value": "alphabet"
- },
- "id": 1717,
- "name": "Identifier",
- "src": "2805:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": null
- },
- "id": 1718,
- "name": "ElementaryTypeName",
- "src": "2814:4:2"
- }
- ],
- "id": 1719,
- "name": "ElementaryTypeNameExpression",
- "src": "2814:4:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint8",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(uint8)"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": null
- },
- "id": 1720,
- "name": "ElementaryTypeName",
- "src": "2819:5:2"
- }
- ],
- "id": 1721,
- "name": "ElementaryTypeNameExpression",
- "src": "2819:5:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_bytes1",
- "typeString": "bytes1"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "&",
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "bytes1"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1664,
- "type": "bytes32",
- "value": "data"
- },
- "id": 1722,
- "name": "Identifier",
- "src": "2825:4:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1680,
- "type": "uint256",
- "value": "i"
- },
- "id": 1723,
- "name": "Identifier",
- "src": "2830:1:2"
- }
- ],
- "id": 1724,
- "name": "IndexAccess",
- "src": "2825:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30783066",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 15",
- "value": "0x0f"
- },
- "id": 1725,
- "name": "Literal",
- "src": "2835:4:2"
- }
- ],
- "id": 1726,
- "name": "BinaryOperation",
- "src": "2825:14:2"
- }
- ],
- "id": 1727,
- "name": "FunctionCall",
- "src": "2819:21:2"
- }
- ],
- "id": 1728,
- "name": "FunctionCall",
- "src": "2814:27:2"
- }
- ],
- "id": 1729,
- "name": "IndexAccess",
- "src": "2805:37:2"
- }
- ],
- "id": 1730,
- "name": "Assignment",
- "src": "2788:54:2"
- }
- ],
- "id": 1731,
- "name": "ExpressionStatement",
- "src": "2788:54:2"
- }
- ],
- "id": 1732,
- "name": "Block",
- "src": "2712:141:2"
- }
- ],
- "id": 1733,
- "name": "ForStatement",
- "src": "2673:180:2"
- },
- {
- "attributes": {
- "functionReturnParameters": 1658
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "string memory",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes memory"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(string storage pointer)"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": null
- },
- "id": 1734,
- "name": "ElementaryTypeName",
- "src": "2869:6:2"
- }
- ],
- "id": 1735,
- "name": "ElementaryTypeNameExpression",
- "src": "2869:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1668,
- "type": "bytes memory",
- "value": "str"
- },
- "id": 1736,
- "name": "Identifier",
- "src": "2876:3:2"
- }
- ],
- "id": 1737,
- "name": "FunctionCall",
- "src": "2869:11:2"
- }
- ],
- "id": 1738,
- "name": "Return",
- "src": "2862:18:2"
- }
- ],
- "id": 1739,
- "name": "Block",
- "src": "2514:373:2"
- }
- ],
- "id": 1740,
- "name": "FunctionDefinition",
- "src": "2447:440:2"
- },
- {
- "attributes": {
- "functionSelector": "95d89b41",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "symbol",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."
- },
- "id": 1741,
- "name": "StructuredDocumentation",
- "src": "2893:102:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1742,
- "name": "ParameterList",
- "src": "3015:2:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1749,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 1743,
- "name": "ElementaryTypeName",
- "src": "3039:6:2"
- }
- ],
- "id": 1744,
- "name": "VariableDeclaration",
- "src": "3039:13:2"
- }
- ],
- "id": 1745,
- "name": "ParameterList",
- "src": "3038:15:2"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1745
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1552,
- "type": "string storage ref",
- "value": "_symbol"
- },
- "id": 1746,
- "name": "Identifier",
- "src": "3071:7:2"
- }
- ],
- "id": 1747,
- "name": "Return",
- "src": "3064:14:2"
- }
- ],
- "id": 1748,
- "name": "Block",
- "src": "3054:31:2"
- }
- ],
- "id": 1749,
- "name": "FunctionDefinition",
- "src": "3000:85:2"
- },
- {
- "attributes": {
- "functionSelector": "313ce567",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "decimals",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5,05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\n called.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
- },
- "id": 1750,
- "name": "StructuredDocumentation",
- "src": "3091:612:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1751,
- "name": "ParameterList",
- "src": "3725:2:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1758,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1752,
- "name": "ElementaryTypeName",
- "src": "3749:5:2"
- }
- ],
- "id": 1753,
- "name": "VariableDeclaration",
- "src": "3749:5:2"
- }
- ],
- "id": 1754,
- "name": "ParameterList",
- "src": "3748:7:2"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1754
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1555,
- "type": "uint8",
- "value": "_decimals"
- },
- "id": 1755,
- "name": "Identifier",
- "src": "3773:9:2"
- }
- ],
- "id": 1756,
- "name": "Return",
- "src": "3766:16:2"
- }
- ],
- "id": 1757,
- "name": "Block",
- "src": "3756:33:2"
- }
- ],
- "id": 1758,
- "name": "FunctionDefinition",
- "src": "3708:81:2"
- },
- {
- "attributes": {
- "baseFunctions": [3017],
- "functionSelector": "18160ddd",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "totalSupply",
- "scope": 2147,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-totalSupply}."
- },
- "id": 1759,
- "name": "StructuredDocumentation",
- "src": "3795:49:2"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 1761,
- "name": "OverrideSpecifier",
- "src": "3884:8:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1760,
- "name": "ParameterList",
- "src": "3869:2:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1768,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1762,
- "name": "ElementaryTypeName",
- "src": "3902:7:2"
- }
- ],
- "id": 1763,
- "name": "VariableDeclaration",
- "src": "3902:7:2"
- }
- ],
- "id": 1764,
- "name": "ParameterList",
- "src": "3901:9:2"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1764
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1550,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 1765,
- "name": "Identifier",
- "src": "3928:12:2"
- }
- ],
- "id": 1766,
- "name": "Return",
- "src": "3921:19:2"
- }
- ],
- "id": 1767,
- "name": "Block",
- "src": "3911:36:2"
- }
- ],
- "id": 1768,
- "name": "FunctionDefinition",
- "src": "3849:98:2"
- },
- {
- "attributes": {
- "baseFunctions": [3025],
- "functionSelector": "70a08231",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "balanceOf",
- "scope": 2147,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-balanceOf}."
- },
- "id": 1769,
- "name": "StructuredDocumentation",
- "src": "3953:47:2"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 1773,
- "name": "OverrideSpecifier",
- "src": "4053:8:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 1782,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1770,
- "name": "ElementaryTypeName",
- "src": "4024:7:2"
- }
- ],
- "id": 1771,
- "name": "VariableDeclaration",
- "src": "4024:15:2"
- }
- ],
- "id": 1772,
- "name": "ParameterList",
- "src": "4023:17:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1782,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1774,
- "name": "ElementaryTypeName",
- "src": "4071:7:2"
- }
- ],
- "id": 1775,
- "name": "VariableDeclaration",
- "src": "4071:7:2"
- }
- ],
- "id": 1776,
- "name": "ParameterList",
- "src": "4070:9:2"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1776
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1542,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 1777,
- "name": "Identifier",
- "src": "4097:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1771,
- "type": "address",
- "value": "account"
- },
- "id": 1778,
- "name": "Identifier",
- "src": "4107:7:2"
- }
- ],
- "id": 1779,
- "name": "IndexAccess",
- "src": "4097:18:2"
- }
- ],
- "id": 1780,
- "name": "Return",
- "src": "4090:25:2"
- }
- ],
- "id": 1781,
- "name": "Block",
- "src": "4080:42:2"
- }
- ],
- "id": 1782,
- "name": "FunctionDefinition",
- "src": "4005:117:2"
- },
- {
- "attributes": {
- "baseFunctions": [3035],
- "functionSelector": "a9059cbb",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "transfer",
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `recipient` cannot be the zero address.\n - the caller must have a balance of at least `amount`."
- },
- "id": 1783,
- "name": "StructuredDocumentation",
- "src": "4128:192:2"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 1789,
- "name": "OverrideSpecifier",
- "src": "4385:8:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 1803,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1784,
- "name": "ElementaryTypeName",
- "src": "4343:7:2"
- }
- ],
- "id": 1785,
- "name": "VariableDeclaration",
- "src": "4343:17:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1803,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1786,
- "name": "ElementaryTypeName",
- "src": "4362:7:2"
- }
- ],
- "id": 1787,
- "name": "VariableDeclaration",
- "src": "4362:14:2"
- }
- ],
- "id": 1788,
- "name": "ParameterList",
- "src": "4342:35:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1803,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1790,
- "name": "ElementaryTypeName",
- "src": "4403:4:2"
- }
- ],
- "id": 1791,
- "name": "VariableDeclaration",
- "src": "4403:4:2"
- }
- ],
- "id": 1792,
- "name": "ParameterList",
- "src": "4402:6:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1997,
- "type": "function (address,address,uint256)",
- "value": "_transfer"
- },
- "id": 1793,
- "name": "Identifier",
- "src": "4419:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 1794,
- "name": "Identifier",
- "src": "4429:10:2"
- }
- ],
- "id": 1795,
- "name": "FunctionCall",
- "src": "4429:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1785,
- "type": "address",
- "value": "recipient"
- },
- "id": 1796,
- "name": "Identifier",
- "src": "4443:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1787,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1797,
- "name": "Identifier",
- "src": "4454:6:2"
- }
- ],
- "id": 1798,
- "name": "FunctionCall",
- "src": "4419:42:2"
- }
- ],
- "id": 1799,
- "name": "ExpressionStatement",
- "src": "4419:42:2"
- },
- {
- "attributes": {
- "functionReturnParameters": 1792
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1800,
- "name": "Literal",
- "src": "4478:4:2"
- }
- ],
- "id": 1801,
- "name": "Return",
- "src": "4471:11:2"
- }
- ],
- "id": 1802,
- "name": "Block",
- "src": "4409:80:2"
- }
- ],
- "id": 1803,
- "name": "FunctionDefinition",
- "src": "4325:164:2"
- },
- {
- "attributes": {
- "baseFunctions": [3045],
- "functionSelector": "dd62ed3e",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "allowance",
- "scope": 2147,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-allowance}."
- },
- "id": 1804,
- "name": "StructuredDocumentation",
- "src": "4495:47:2"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 1810,
- "name": "OverrideSpecifier",
- "src": "4610:8:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "owner",
- "overrides": null,
- "scope": 1821,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1805,
- "name": "ElementaryTypeName",
- "src": "4566:7:2"
- }
- ],
- "id": 1806,
- "name": "VariableDeclaration",
- "src": "4566:13:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 1821,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1807,
- "name": "ElementaryTypeName",
- "src": "4581:7:2"
- }
- ],
- "id": 1808,
- "name": "VariableDeclaration",
- "src": "4581:15:2"
- }
- ],
- "id": 1809,
- "name": "ParameterList",
- "src": "4565:32:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1821,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1811,
- "name": "ElementaryTypeName",
- "src": "4628:7:2"
- }
- ],
- "id": 1812,
- "name": "VariableDeclaration",
- "src": "4628:7:2"
- }
- ],
- "id": 1813,
- "name": "ParameterList",
- "src": "4627:9:2"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1813
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1548,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 1814,
- "name": "Identifier",
- "src": "4654:11:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1806,
- "type": "address",
- "value": "owner"
- },
- "id": 1815,
- "name": "Identifier",
- "src": "4666:5:2"
- }
- ],
- "id": 1816,
- "name": "IndexAccess",
- "src": "4654:18:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1808,
- "type": "address",
- "value": "spender"
- },
- "id": 1817,
- "name": "Identifier",
- "src": "4673:7:2"
- }
- ],
- "id": 1818,
- "name": "IndexAccess",
- "src": "4654:27:2"
- }
- ],
- "id": 1819,
- "name": "Return",
- "src": "4647:34:2"
- }
- ],
- "id": 1820,
- "name": "Block",
- "src": "4637:51:2"
- }
- ],
- "id": 1821,
- "name": "FunctionDefinition",
- "src": "4547:141:2"
- },
- {
- "attributes": {
- "baseFunctions": [3055],
- "functionSelector": "095ea7b3",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "approve",
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-approve}.\n Requirements:\n - `spender` cannot be the zero address."
- },
- "id": 1822,
- "name": "StructuredDocumentation",
- "src": "4694:127:2"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 1828,
- "name": "OverrideSpecifier",
- "src": "4883:8:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 1842,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1823,
- "name": "ElementaryTypeName",
- "src": "4843:7:2"
- }
- ],
- "id": 1824,
- "name": "VariableDeclaration",
- "src": "4843:15:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1842,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1825,
- "name": "ElementaryTypeName",
- "src": "4860:7:2"
- }
- ],
- "id": 1826,
- "name": "VariableDeclaration",
- "src": "4860:14:2"
- }
- ],
- "id": 1827,
- "name": "ParameterList",
- "src": "4842:33:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1842,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1829,
- "name": "ElementaryTypeName",
- "src": "4901:4:2"
- }
- ],
- "id": 1830,
- "name": "VariableDeclaration",
- "src": "4901:4:2"
- }
- ],
- "id": 1831,
- "name": "ParameterList",
- "src": "4900:6:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2135,
- "type": "function (address,address,uint256)",
- "value": "_approve"
- },
- "id": 1832,
- "name": "Identifier",
- "src": "4917:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 1833,
- "name": "Identifier",
- "src": "4926:10:2"
- }
- ],
- "id": 1834,
- "name": "FunctionCall",
- "src": "4926:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1824,
- "type": "address",
- "value": "spender"
- },
- "id": 1835,
- "name": "Identifier",
- "src": "4940:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1826,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1836,
- "name": "Identifier",
- "src": "4949:6:2"
- }
- ],
- "id": 1837,
- "name": "FunctionCall",
- "src": "4917:39:2"
- }
- ],
- "id": 1838,
- "name": "ExpressionStatement",
- "src": "4917:39:2"
- },
- {
- "attributes": {
- "functionReturnParameters": 1831
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1839,
- "name": "Literal",
- "src": "4973:4:2"
- }
- ],
- "id": 1840,
- "name": "Return",
- "src": "4966:11:2"
- }
- ],
- "id": 1841,
- "name": "Block",
- "src": "4907:77:2"
- }
- ],
- "id": 1842,
- "name": "FunctionDefinition",
- "src": "4826:158:2"
- },
- {
- "attributes": {
- "baseFunctions": [3067],
- "functionSelector": "23b872dd",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "transferFrom",
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20};\n Requirements:\n - `sender` and `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`.\n - the caller must have allowance for ``sender``'s tokens of at least\n `amount`."
- },
- "id": 1843,
- "name": "StructuredDocumentation",
- "src": "4990:449:2"
- },
- {
- "attributes": {
- "overrides": [null]
- },
- "id": 1851,
- "name": "OverrideSpecifier",
- "src": "5524:8:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "sender",
- "overrides": null,
- "scope": 1880,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1844,
- "name": "ElementaryTypeName",
- "src": "5466:7:2"
- }
- ],
- "id": 1845,
- "name": "VariableDeclaration",
- "src": "5466:14:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 1880,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1846,
- "name": "ElementaryTypeName",
- "src": "5482:7:2"
- }
- ],
- "id": 1847,
- "name": "VariableDeclaration",
- "src": "5482:17:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1880,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1848,
- "name": "ElementaryTypeName",
- "src": "5501:7:2"
- }
- ],
- "id": 1849,
- "name": "VariableDeclaration",
- "src": "5501:14:2"
- }
- ],
- "id": 1850,
- "name": "ParameterList",
- "src": "5465:51:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1880,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1852,
- "name": "ElementaryTypeName",
- "src": "5542:4:2"
- }
- ],
- "id": 1853,
- "name": "VariableDeclaration",
- "src": "5542:4:2"
- }
- ],
- "id": 1854,
- "name": "ParameterList",
- "src": "5541:6:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1997,
- "type": "function (address,address,uint256)",
- "value": "_transfer"
- },
- "id": 1855,
- "name": "Identifier",
- "src": "5558:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1845,
- "type": "address",
- "value": "sender"
- },
- "id": 1856,
- "name": "Identifier",
- "src": "5568:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1847,
- "type": "address",
- "value": "recipient"
- },
- "id": 1857,
- "name": "Identifier",
- "src": "5576:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1849,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1858,
- "name": "Identifier",
- "src": "5587:6:2"
- }
- ],
- "id": 1859,
- "name": "FunctionCall",
- "src": "5558:36:2"
- }
- ],
- "id": 1860,
- "name": "ExpressionStatement",
- "src": "5558:36:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2135,
- "type": "function (address,address,uint256)",
- "value": "_approve"
- },
- "id": 1861,
- "name": "Identifier",
- "src": "5604:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1845,
- "type": "address",
- "value": "sender"
- },
- "id": 1862,
- "name": "Identifier",
- "src": "5613:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 1863,
- "name": "Identifier",
- "src": "5621:10:2"
- }
- ],
- "id": 1864,
- "name": "FunctionCall",
- "src": "5621:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330",
- "typeString": "literal_string \"ERC20: transfer amount exceeds allowance\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2456,
- "type": "function (uint256,uint256,string memory) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1548,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 1865,
- "name": "Identifier",
- "src": "5635:11:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1845,
- "type": "address",
- "value": "sender"
- },
- "id": 1866,
- "name": "Identifier",
- "src": "5647:6:2"
- }
- ],
- "id": 1867,
- "name": "IndexAccess",
- "src": "5635:19:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 1868,
- "name": "Identifier",
- "src": "5655:10:2"
- }
- ],
- "id": 1869,
- "name": "FunctionCall",
- "src": "5655:12:2"
- }
- ],
- "id": 1870,
- "name": "IndexAccess",
- "src": "5635:33:2"
- }
- ],
- "id": 1871,
- "name": "MemberAccess",
- "src": "5635:37:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1849,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1872,
- "name": "Identifier",
- "src": "5673:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: transfer amount exceeds allowance\"",
- "value": "ERC20: transfer amount exceeds allowance"
- },
- "id": 1873,
- "name": "Literal",
- "src": "5681:42:2"
- }
- ],
- "id": 1874,
- "name": "FunctionCall",
- "src": "5635:89:2"
- }
- ],
- "id": 1875,
- "name": "FunctionCall",
- "src": "5604:121:2"
- }
- ],
- "id": 1876,
- "name": "ExpressionStatement",
- "src": "5604:121:2"
- },
- {
- "attributes": {
- "functionReturnParameters": 1854
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1877,
- "name": "Literal",
- "src": "5742:4:2"
- }
- ],
- "id": 1878,
- "name": "Return",
- "src": "5735:11:2"
- }
- ],
- "id": 1879,
- "name": "Block",
- "src": "5548:205:2"
- }
- ],
- "id": 1880,
- "name": "FunctionDefinition",
- "src": "5444:309:2"
- },
- {
- "attributes": {
- "functionSelector": "39509351",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "increaseAllowance",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."
- },
- "id": 1881,
- "name": "StructuredDocumentation",
- "src": "5759:384:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 1908,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1882,
- "name": "ElementaryTypeName",
- "src": "6175:7:2"
- }
- ],
- "id": 1883,
- "name": "VariableDeclaration",
- "src": "6175:15:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "addedValue",
- "overrides": null,
- "scope": 1908,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1884,
- "name": "ElementaryTypeName",
- "src": "6192:7:2"
- }
- ],
- "id": 1885,
- "name": "VariableDeclaration",
- "src": "6192:18:2"
- }
- ],
- "id": 1886,
- "name": "ParameterList",
- "src": "6174:37:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1908,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1887,
- "name": "ElementaryTypeName",
- "src": "6228:4:2"
- }
- ],
- "id": 1888,
- "name": "VariableDeclaration",
- "src": "6228:4:2"
- }
- ],
- "id": 1889,
- "name": "ParameterList",
- "src": "6227:6:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2135,
- "type": "function (address,address,uint256)",
- "value": "_approve"
- },
- "id": 1890,
- "name": "Identifier",
- "src": "6244:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 1891,
- "name": "Identifier",
- "src": "6253:10:2"
- }
- ],
- "id": 1892,
- "name": "FunctionCall",
- "src": "6253:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1883,
- "type": "address",
- "value": "spender"
- },
- "id": 1893,
- "name": "Identifier",
- "src": "6267:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 2332,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1548,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 1894,
- "name": "Identifier",
- "src": "6276:11:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 1895,
- "name": "Identifier",
- "src": "6288:10:2"
- }
- ],
- "id": 1896,
- "name": "FunctionCall",
- "src": "6288:12:2"
- }
- ],
- "id": 1897,
- "name": "IndexAccess",
- "src": "6276:25:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1883,
- "type": "address",
- "value": "spender"
- },
- "id": 1898,
- "name": "Identifier",
- "src": "6302:7:2"
- }
- ],
- "id": 1899,
- "name": "IndexAccess",
- "src": "6276:34:2"
- }
- ],
- "id": 1900,
- "name": "MemberAccess",
- "src": "6276:38:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1885,
- "type": "uint256",
- "value": "addedValue"
- },
- "id": 1901,
- "name": "Identifier",
- "src": "6315:10:2"
- }
- ],
- "id": 1902,
- "name": "FunctionCall",
- "src": "6276:50:2"
- }
- ],
- "id": 1903,
- "name": "FunctionCall",
- "src": "6244:83:2"
- }
- ],
- "id": 1904,
- "name": "ExpressionStatement",
- "src": "6244:83:2"
- },
- {
- "attributes": {
- "functionReturnParameters": 1889
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1905,
- "name": "Literal",
- "src": "6344:4:2"
- }
- ],
- "id": 1906,
- "name": "Return",
- "src": "6337:11:2"
- }
- ],
- "id": 1907,
- "name": "Block",
- "src": "6234:121:2"
- }
- ],
- "id": 1908,
- "name": "FunctionDefinition",
- "src": "6148:207:2"
- },
- {
- "attributes": {
- "functionSelector": "a457c2d7",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "decreaseAllowance",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."
- },
- "id": 1909,
- "name": "StructuredDocumentation",
- "src": "6361:476:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 1937,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1910,
- "name": "ElementaryTypeName",
- "src": "6869:7:2"
- }
- ],
- "id": 1911,
- "name": "VariableDeclaration",
- "src": "6869:15:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "subtractedValue",
- "overrides": null,
- "scope": 1937,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1912,
- "name": "ElementaryTypeName",
- "src": "6886:7:2"
- }
- ],
- "id": 1913,
- "name": "VariableDeclaration",
- "src": "6886:23:2"
- }
- ],
- "id": 1914,
- "name": "ParameterList",
- "src": "6868:42:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 1937,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1915,
- "name": "ElementaryTypeName",
- "src": "6927:4:2"
- }
- ],
- "id": 1916,
- "name": "VariableDeclaration",
- "src": "6927:4:2"
- }
- ],
- "id": 1917,
- "name": "ParameterList",
- "src": "6926:6:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2135,
- "type": "function (address,address,uint256)",
- "value": "_approve"
- },
- "id": 1918,
- "name": "Identifier",
- "src": "6943:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 1919,
- "name": "Identifier",
- "src": "6952:10:2"
- }
- ],
- "id": 1920,
- "name": "FunctionCall",
- "src": "6952:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1911,
- "type": "address",
- "value": "spender"
- },
- "id": 1921,
- "name": "Identifier",
- "src": "6966:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8",
- "typeString": "literal_string \"ERC20: decreased allowance below zero\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2456,
- "type": "function (uint256,uint256,string memory) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1548,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 1922,
- "name": "Identifier",
- "src": "6975:11:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [null],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [null],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 3606,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 1923,
- "name": "Identifier",
- "src": "6987:10:2"
- }
- ],
- "id": 1924,
- "name": "FunctionCall",
- "src": "6987:12:2"
- }
- ],
- "id": 1925,
- "name": "IndexAccess",
- "src": "6975:25:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1911,
- "type": "address",
- "value": "spender"
- },
- "id": 1926,
- "name": "Identifier",
- "src": "7001:7:2"
- }
- ],
- "id": 1927,
- "name": "IndexAccess",
- "src": "6975:34:2"
- }
- ],
- "id": 1928,
- "name": "MemberAccess",
- "src": "6975:38:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1913,
- "type": "uint256",
- "value": "subtractedValue"
- },
- "id": 1929,
- "name": "Identifier",
- "src": "7014:15:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: decreased allowance below zero\"",
- "value": "ERC20: decreased allowance below zero"
- },
- "id": 1930,
- "name": "Literal",
- "src": "7031:39:2"
- }
- ],
- "id": 1931,
- "name": "FunctionCall",
- "src": "6975:96:2"
- }
- ],
- "id": 1932,
- "name": "FunctionCall",
- "src": "6943:129:2"
- }
- ],
- "id": 1933,
- "name": "ExpressionStatement",
- "src": "6943:129:2"
- },
- {
- "attributes": {
- "functionReturnParameters": 1917
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1934,
- "name": "Literal",
- "src": "7089:4:2"
- }
- ],
- "id": 1935,
- "name": "Return",
- "src": "7082:11:2"
- }
- ],
- "id": 1936,
- "name": "Block",
- "src": "6933:167:2"
- }
- ],
- "id": 1937,
- "name": "FunctionDefinition",
- "src": "6842:258:2"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_transfer",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Moves tokens `amount` from `sender` to `recipient`.\n This is internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `sender` cannot be the zero address.\n - `recipient` cannot be the zero address.\n - `sender` must have a balance of at least `amount`."
- },
- "id": 1938,
- "name": "StructuredDocumentation",
- "src": "7106:463:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "sender",
- "overrides": null,
- "scope": 1997,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1939,
- "name": "ElementaryTypeName",
- "src": "7593:7:2"
- }
- ],
- "id": 1940,
- "name": "VariableDeclaration",
- "src": "7593:14:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 1997,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1941,
- "name": "ElementaryTypeName",
- "src": "7609:7:2"
- }
- ],
- "id": 1942,
- "name": "VariableDeclaration",
- "src": "7609:17:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 1997,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1943,
- "name": "ElementaryTypeName",
- "src": "7628:7:2"
- }
- ],
- "id": 1944,
- "name": "VariableDeclaration",
- "src": "7628:14:2"
- }
- ],
- "id": 1945,
- "name": "ParameterList",
- "src": "7592:51:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 1946,
- "name": "ParameterList",
- "src": "7653:0:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea",
- "typeString": "literal_string \"ERC20: transfer from the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1947,
- "name": "Identifier",
- "src": "7663:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1940,
- "type": "address",
- "value": "sender"
- },
- "id": 1948,
- "name": "Identifier",
- "src": "7671:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 1949,
- "name": "ElementaryTypeName",
- "src": "7681:7:2"
- }
- ],
- "id": 1950,
- "name": "ElementaryTypeNameExpression",
- "src": "7681:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1951,
- "name": "Literal",
- "src": "7689:1:2"
- }
- ],
- "id": 1952,
- "name": "FunctionCall",
- "src": "7681:10:2"
- }
- ],
- "id": 1953,
- "name": "BinaryOperation",
- "src": "7671:20:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: transfer from the zero address\"",
- "value": "ERC20: transfer from the zero address"
- },
- "id": 1954,
- "name": "Literal",
- "src": "7693:39:2"
- }
- ],
- "id": 1955,
- "name": "FunctionCall",
- "src": "7663:70:2"
- }
- ],
- "id": 1956,
- "name": "ExpressionStatement",
- "src": "7663:70:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f",
- "typeString": "literal_string \"ERC20: transfer to the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1957,
- "name": "Identifier",
- "src": "7743:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1942,
- "type": "address",
- "value": "recipient"
- },
- "id": 1958,
- "name": "Identifier",
- "src": "7751:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 1959,
- "name": "ElementaryTypeName",
- "src": "7764:7:2"
- }
- ],
- "id": 1960,
- "name": "ElementaryTypeNameExpression",
- "src": "7764:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1961,
- "name": "Literal",
- "src": "7772:1:2"
- }
- ],
- "id": 1962,
- "name": "FunctionCall",
- "src": "7764:10:2"
- }
- ],
- "id": 1963,
- "name": "BinaryOperation",
- "src": "7751:23:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: transfer to the zero address\"",
- "value": "ERC20: transfer to the zero address"
- },
- "id": 1964,
- "name": "Literal",
- "src": "7776:37:2"
- }
- ],
- "id": 1965,
- "name": "FunctionCall",
- "src": "7743:71:2"
- }
- ],
- "id": 1966,
- "name": "ExpressionStatement",
- "src": "7743:71:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1542,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 1967,
- "name": "Identifier",
- "src": "7825:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1940,
- "type": "address",
- "value": "sender"
- },
- "id": 1968,
- "name": "Identifier",
- "src": "7835:6:2"
- }
- ],
- "id": 1969,
- "name": "IndexAccess",
- "src": "7825:17:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6",
- "typeString": "literal_string \"ERC20: transfer amount exceeds balance\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2456,
- "type": "function (uint256,uint256,string memory) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1542,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 1970,
- "name": "Identifier",
- "src": "7845:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1940,
- "type": "address",
- "value": "sender"
- },
- "id": 1971,
- "name": "Identifier",
- "src": "7855:6:2"
- }
- ],
- "id": 1972,
- "name": "IndexAccess",
- "src": "7845:17:2"
- }
- ],
- "id": 1973,
- "name": "MemberAccess",
- "src": "7845:21:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1944,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1974,
- "name": "Identifier",
- "src": "7867:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: transfer amount exceeds balance\"",
- "value": "ERC20: transfer amount exceeds balance"
- },
- "id": 1975,
- "name": "Literal",
- "src": "7875:40:2"
- }
- ],
- "id": 1976,
- "name": "FunctionCall",
- "src": "7845:71:2"
- }
- ],
- "id": 1977,
- "name": "Assignment",
- "src": "7825:91:2"
- }
- ],
- "id": 1978,
- "name": "ExpressionStatement",
- "src": "7825:91:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1542,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 1979,
- "name": "Identifier",
- "src": "7926:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1942,
- "type": "address",
- "value": "recipient"
- },
- "id": 1980,
- "name": "Identifier",
- "src": "7936:9:2"
- }
- ],
- "id": 1981,
- "name": "IndexAccess",
- "src": "7926:20:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 2332,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1542,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 1982,
- "name": "Identifier",
- "src": "7949:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1942,
- "type": "address",
- "value": "recipient"
- },
- "id": 1983,
- "name": "Identifier",
- "src": "7959:9:2"
- }
- ],
- "id": 1984,
- "name": "IndexAccess",
- "src": "7949:20:2"
- }
- ],
- "id": 1985,
- "name": "MemberAccess",
- "src": "7949:24:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1944,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1986,
- "name": "Identifier",
- "src": "7974:6:2"
- }
- ],
- "id": 1987,
- "name": "FunctionCall",
- "src": "7949:32:2"
- }
- ],
- "id": 1988,
- "name": "Assignment",
- "src": "7926:55:2"
- }
- ],
- "id": 1989,
- "name": "ExpressionStatement",
- "src": "7926:55:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3076,
- "type": "function (address,address,uint256)",
- "value": "Transfer"
- },
- "id": 1990,
- "name": "Identifier",
- "src": "7996:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1940,
- "type": "address",
- "value": "sender"
- },
- "id": 1991,
- "name": "Identifier",
- "src": "8005:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1942,
- "type": "address",
- "value": "recipient"
- },
- "id": 1992,
- "name": "Identifier",
- "src": "8013:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1944,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1993,
- "name": "Identifier",
- "src": "8024:6:2"
- }
- ],
- "id": 1994,
- "name": "FunctionCall",
- "src": "7996:35:2"
- }
- ],
- "id": 1995,
- "name": "EmitStatement",
- "src": "7991:40:2"
- }
- ],
- "id": 1996,
- "name": "Block",
- "src": "7653:385:2"
- }
- ],
- "id": 1997,
- "name": "FunctionDefinition",
- "src": "7574:464:2"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_mint",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": "@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements\n - `to` cannot be the zero address."
- },
- "id": 1998,
- "name": "StructuredDocumentation",
- "src": "8044:259:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 2043,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1999,
- "name": "ElementaryTypeName",
- "src": "8323:7:2"
- }
- ],
- "id": 2000,
- "name": "VariableDeclaration",
- "src": "8323:15:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2043,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2001,
- "name": "ElementaryTypeName",
- "src": "8340:7:2"
- }
- ],
- "id": 2002,
- "name": "VariableDeclaration",
- "src": "8340:14:2"
- }
- ],
- "id": 2003,
- "name": "ParameterList",
- "src": "8322:33:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2004,
- "name": "ParameterList",
- "src": "8365:0:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e",
- "typeString": "literal_string \"ERC20: mint to the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2005,
- "name": "Identifier",
- "src": "8375:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2000,
- "type": "address",
- "value": "account"
- },
- "id": 2006,
- "name": "Identifier",
- "src": "8383:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2007,
- "name": "ElementaryTypeName",
- "src": "8394:7:2"
- }
- ],
- "id": 2008,
- "name": "ElementaryTypeNameExpression",
- "src": "8394:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2009,
- "name": "Literal",
- "src": "8402:1:2"
- }
- ],
- "id": 2010,
- "name": "FunctionCall",
- "src": "8394:10:2"
- }
- ],
- "id": 2011,
- "name": "BinaryOperation",
- "src": "8383:21:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a206d696e7420746f20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: mint to the zero address\"",
- "value": "ERC20: mint to the zero address"
- },
- "id": 2012,
- "name": "Literal",
- "src": "8406:33:2"
- }
- ],
- "id": 2013,
- "name": "FunctionCall",
- "src": "8375:65:2"
- }
- ],
- "id": 2014,
- "name": "ExpressionStatement",
- "src": "8375:65:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1550,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 2015,
- "name": "Identifier",
- "src": "8451:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 2332,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1550,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 2016,
- "name": "Identifier",
- "src": "8466:12:2"
- }
- ],
- "id": 2017,
- "name": "MemberAccess",
- "src": "8466:16:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2002,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2018,
- "name": "Identifier",
- "src": "8483:6:2"
- }
- ],
- "id": 2019,
- "name": "FunctionCall",
- "src": "8466:24:2"
- }
- ],
- "id": 2020,
- "name": "Assignment",
- "src": "8451:39:2"
- }
- ],
- "id": 2021,
- "name": "ExpressionStatement",
- "src": "8451:39:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1542,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2022,
- "name": "Identifier",
- "src": "8500:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2000,
- "type": "address",
- "value": "account"
- },
- "id": 2023,
- "name": "Identifier",
- "src": "8510:7:2"
- }
- ],
- "id": 2024,
- "name": "IndexAccess",
- "src": "8500:18:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 2332,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1542,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2025,
- "name": "Identifier",
- "src": "8521:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2000,
- "type": "address",
- "value": "account"
- },
- "id": 2026,
- "name": "Identifier",
- "src": "8531:7:2"
- }
- ],
- "id": 2027,
- "name": "IndexAccess",
- "src": "8521:18:2"
- }
- ],
- "id": 2028,
- "name": "MemberAccess",
- "src": "8521:22:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2002,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2029,
- "name": "Identifier",
- "src": "8544:6:2"
- }
- ],
- "id": 2030,
- "name": "FunctionCall",
- "src": "8521:30:2"
- }
- ],
- "id": 2031,
- "name": "Assignment",
- "src": "8500:51:2"
- }
- ],
- "id": 2032,
- "name": "ExpressionStatement",
- "src": "8500:51:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3076,
- "type": "function (address,address,uint256)",
- "value": "Transfer"
- },
- "id": 2033,
- "name": "Identifier",
- "src": "8566:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2034,
- "name": "ElementaryTypeName",
- "src": "8575:7:2"
- }
- ],
- "id": 2035,
- "name": "ElementaryTypeNameExpression",
- "src": "8575:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2036,
- "name": "Literal",
- "src": "8583:1:2"
- }
- ],
- "id": 2037,
- "name": "FunctionCall",
- "src": "8575:10:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2000,
- "type": "address",
- "value": "account"
- },
- "id": 2038,
- "name": "Identifier",
- "src": "8587:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2002,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2039,
- "name": "Identifier",
- "src": "8596:6:2"
- }
- ],
- "id": 2040,
- "name": "FunctionCall",
- "src": "8566:37:2"
- }
- ],
- "id": 2041,
- "name": "EmitStatement",
- "src": "8561:42:2"
- }
- ],
- "id": 2042,
- "name": "Block",
- "src": "8365:245:2"
- }
- ],
- "id": 2043,
- "name": "FunctionDefinition",
- "src": "8308:302:2"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_burn",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."
- },
- "id": 2044,
- "name": "StructuredDocumentation",
- "src": "8616:308:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 2090,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2045,
- "name": "ElementaryTypeName",
- "src": "8944:7:2"
- }
- ],
- "id": 2046,
- "name": "VariableDeclaration",
- "src": "8944:15:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2090,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2047,
- "name": "ElementaryTypeName",
- "src": "8961:7:2"
- }
- ],
- "id": 2048,
- "name": "VariableDeclaration",
- "src": "8961:14:2"
- }
- ],
- "id": 2049,
- "name": "ParameterList",
- "src": "8943:33:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2050,
- "name": "ParameterList",
- "src": "8986:0:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f",
- "typeString": "literal_string \"ERC20: burn from the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2051,
- "name": "Identifier",
- "src": "8996:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2046,
- "type": "address",
- "value": "account"
- },
- "id": 2052,
- "name": "Identifier",
- "src": "9004:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2053,
- "name": "ElementaryTypeName",
- "src": "9015:7:2"
- }
- ],
- "id": 2054,
- "name": "ElementaryTypeNameExpression",
- "src": "9015:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2055,
- "name": "Literal",
- "src": "9023:1:2"
- }
- ],
- "id": 2056,
- "name": "FunctionCall",
- "src": "9015:10:2"
- }
- ],
- "id": 2057,
- "name": "BinaryOperation",
- "src": "9004:21:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a206275726e2066726f6d20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: burn from the zero address\"",
- "value": "ERC20: burn from the zero address"
- },
- "id": 2058,
- "name": "Literal",
- "src": "9027:35:2"
- }
- ],
- "id": 2059,
- "name": "FunctionCall",
- "src": "8996:67:2"
- }
- ],
- "id": 2060,
- "name": "ExpressionStatement",
- "src": "8996:67:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1542,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2061,
- "name": "Identifier",
- "src": "9074:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2046,
- "type": "address",
- "value": "account"
- },
- "id": 2062,
- "name": "Identifier",
- "src": "9084:7:2"
- }
- ],
- "id": 2063,
- "name": "IndexAccess",
- "src": "9074:18:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd",
- "typeString": "literal_string \"ERC20: burn amount exceeds balance\""
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2456,
- "type": "function (uint256,uint256,string memory) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1542,
- "type": "mapping(address => uint256)",
- "value": "_balances"
- },
- "id": 2064,
- "name": "Identifier",
- "src": "9095:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2046,
- "type": "address",
- "value": "account"
- },
- "id": 2065,
- "name": "Identifier",
- "src": "9105:7:2"
- }
- ],
- "id": 2066,
- "name": "IndexAccess",
- "src": "9095:18:2"
- }
- ],
- "id": 2067,
- "name": "MemberAccess",
- "src": "9095:22:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2048,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2068,
- "name": "Identifier",
- "src": "9118:6:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: burn amount exceeds balance\"",
- "value": "ERC20: burn amount exceeds balance"
- },
- "id": 2069,
- "name": "Literal",
- "src": "9126:36:2"
- }
- ],
- "id": 2070,
- "name": "FunctionCall",
- "src": "9095:68:2"
- }
- ],
- "id": 2071,
- "name": "Assignment",
- "src": "9074:89:2"
- }
- ],
- "id": 2072,
- "name": "ExpressionStatement",
- "src": "9074:89:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1550,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 2073,
- "name": "Identifier",
- "src": "9173:12:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sub",
- "referencedDeclaration": 2354,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1550,
- "type": "uint256",
- "value": "_totalSupply"
- },
- "id": 2074,
- "name": "Identifier",
- "src": "9188:12:2"
- }
- ],
- "id": 2075,
- "name": "MemberAccess",
- "src": "9188:16:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2048,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2076,
- "name": "Identifier",
- "src": "9205:6:2"
- }
- ],
- "id": 2077,
- "name": "FunctionCall",
- "src": "9188:24:2"
- }
- ],
- "id": 2078,
- "name": "Assignment",
- "src": "9173:39:2"
- }
- ],
- "id": 2079,
- "name": "ExpressionStatement",
- "src": "9173:39:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3076,
- "type": "function (address,address,uint256)",
- "value": "Transfer"
- },
- "id": 2080,
- "name": "Identifier",
- "src": "9227:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2046,
- "type": "address",
- "value": "account"
- },
- "id": 2081,
- "name": "Identifier",
- "src": "9236:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2082,
- "name": "ElementaryTypeName",
- "src": "9245:7:2"
- }
- ],
- "id": 2083,
- "name": "ElementaryTypeNameExpression",
- "src": "9245:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2084,
- "name": "Literal",
- "src": "9253:1:2"
- }
- ],
- "id": 2085,
- "name": "FunctionCall",
- "src": "9245:10:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2048,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2086,
- "name": "Identifier",
- "src": "9257:6:2"
- }
- ],
- "id": 2087,
- "name": "FunctionCall",
- "src": "9227:37:2"
- }
- ],
- "id": 2088,
- "name": "EmitStatement",
- "src": "9222:42:2"
- }
- ],
- "id": 2089,
- "name": "Block",
- "src": "8986:285:2"
- }
- ],
- "id": 2090,
- "name": "FunctionDefinition",
- "src": "8929:342:2"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_approve",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n This is internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."
- },
- "id": 2091,
- "name": "StructuredDocumentation",
- "src": "9277:414:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "owner",
- "overrides": null,
- "scope": 2135,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2092,
- "name": "ElementaryTypeName",
- "src": "9714:7:2"
- }
- ],
- "id": 2093,
- "name": "VariableDeclaration",
- "src": "9714:13:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 2135,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 2094,
- "name": "ElementaryTypeName",
- "src": "9729:7:2"
- }
- ],
- "id": 2095,
- "name": "VariableDeclaration",
- "src": "9729:15:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 2135,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 2096,
- "name": "ElementaryTypeName",
- "src": "9746:7:2"
- }
- ],
- "id": 2097,
- "name": "VariableDeclaration",
- "src": "9746:14:2"
- }
- ],
- "id": 2098,
- "name": "ParameterList",
- "src": "9713:48:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2099,
- "name": "ParameterList",
- "src": "9771:0:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208",
- "typeString": "literal_string \"ERC20: approve from the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2100,
- "name": "Identifier",
- "src": "9781:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2093,
- "type": "address",
- "value": "owner"
- },
- "id": 2101,
- "name": "Identifier",
- "src": "9789:5:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2102,
- "name": "ElementaryTypeName",
- "src": "9798:7:2"
- }
- ],
- "id": 2103,
- "name": "ElementaryTypeNameExpression",
- "src": "9798:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2104,
- "name": "Literal",
- "src": "9806:1:2"
- }
- ],
- "id": 2105,
- "name": "FunctionCall",
- "src": "9798:10:2"
- }
- ],
- "id": 2106,
- "name": "BinaryOperation",
- "src": "9789:19:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: approve from the zero address\"",
- "value": "ERC20: approve from the zero address"
- },
- "id": 2107,
- "name": "Literal",
- "src": "9810:38:2"
- }
- ],
- "id": 2108,
- "name": "FunctionCall",
- "src": "9781:68:2"
- }
- ],
- "id": 2109,
- "name": "ExpressionStatement",
- "src": "9781:68:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029",
- "typeString": "literal_string \"ERC20: approve to the zero address\""
- }
- ],
- "overloadedDeclarations": [-18, -18],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 2110,
- "name": "Identifier",
- "src": "9859:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2095,
- "type": "address",
- "value": "spender"
- },
- "id": 2111,
- "name": "Identifier",
- "src": "9867:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 2112,
- "name": "ElementaryTypeName",
- "src": "9878:7:2"
- }
- ],
- "id": 2113,
- "name": "ElementaryTypeNameExpression",
- "src": "9878:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 2114,
- "name": "Literal",
- "src": "9886:1:2"
- }
- ],
- "id": 2115,
- "name": "FunctionCall",
- "src": "9878:10:2"
- }
- ],
- "id": 2116,
- "name": "BinaryOperation",
- "src": "9867:21:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"ERC20: approve to the zero address\"",
- "value": "ERC20: approve to the zero address"
- },
- "id": 2117,
- "name": "Literal",
- "src": "9890:36:2"
- }
- ],
- "id": 2118,
- "name": "FunctionCall",
- "src": "9859:68:2"
- }
- ],
- "id": 2119,
- "name": "ExpressionStatement",
- "src": "9859:68:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "mapping(address => uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1548,
- "type": "mapping(address => mapping(address => uint256))",
- "value": "_allowances"
- },
- "id": 2120,
- "name": "Identifier",
- "src": "9938:11:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2093,
- "type": "address",
- "value": "owner"
- },
- "id": 2121,
- "name": "Identifier",
- "src": "9950:5:2"
- }
- ],
- "id": 2123,
- "name": "IndexAccess",
- "src": "9938:18:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2095,
- "type": "address",
- "value": "spender"
- },
- "id": 2122,
- "name": "Identifier",
- "src": "9957:7:2"
- }
- ],
- "id": 2124,
- "name": "IndexAccess",
- "src": "9938:27:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2097,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2125,
- "name": "Identifier",
- "src": "9968:6:2"
- }
- ],
- "id": 2126,
- "name": "Assignment",
- "src": "9938:36:2"
- }
- ],
- "id": 2127,
- "name": "ExpressionStatement",
- "src": "9938:36:2"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [null],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [null],
- "referencedDeclaration": 3085,
- "type": "function (address,address,uint256)",
- "value": "Approval"
- },
- "id": 2128,
- "name": "Identifier",
- "src": "9989:8:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2093,
- "type": "address",
- "value": "owner"
- },
- "id": 2129,
- "name": "Identifier",
- "src": "9998:5:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2095,
- "type": "address",
- "value": "spender"
- },
- "id": 2130,
- "name": "Identifier",
- "src": "10005:7:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2097,
- "type": "uint256",
- "value": "amount"
- },
- "id": 2131,
- "name": "Identifier",
- "src": "10014:6:2"
- }
- ],
- "id": 2132,
- "name": "FunctionCall",
- "src": "9989:32:2"
- }
- ],
- "id": 2133,
- "name": "EmitStatement",
- "src": "9984:37:2"
- }
- ],
- "id": 2134,
- "name": "Block",
- "src": "9771:257:2"
- }
- ],
- "id": 2135,
- "name": "FunctionDefinition",
- "src": "9696:332:2"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [null],
- "name": "_setupDecimals",
- "overrides": null,
- "scope": 2147,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Sets {decimals} to a value other than the default one of 18.\n WARNING: This function should only be called from the constructor. Most\n applications that interact with token contracts will not expect\n {decimals} to ever change, and may work incorrectly if it does."
- },
- "id": 2136,
- "name": "StructuredDocumentation",
- "src": "10034:312:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "decimals_",
- "overrides": null,
- "scope": 2146,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 2137,
- "name": "ElementaryTypeName",
- "src": "10375:5:2"
- }
- ],
- "id": 2138,
- "name": "VariableDeclaration",
- "src": "10375:15:2"
- }
- ],
- "id": 2139,
- "name": "ParameterList",
- "src": "10374:17:2"
- },
- {
- "attributes": {
- "parameters": [null]
- },
- "children": [],
- "id": 2140,
- "name": "ParameterList",
- "src": "10401:0:2"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 1555,
- "type": "uint8",
- "value": "_decimals"
- },
- "id": 2141,
- "name": "Identifier",
- "src": "10411:9:2"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [null],
- "referencedDeclaration": 2138,
- "type": "uint8",
- "value": "decimals_"
- },
- "id": 2142,
- "name": "Identifier",
- "src": "10423:9:2"
- }
- ],
- "id": 2143,
- "name": "Assignment",
- "src": "10411:21:2"
- }
- ],
- "id": 2144,
- "name": "ExpressionStatement",
- "src": "10411:21:2"
- }
- ],
- "id": 2145,
- "name": "Block",
- "src": "10401:38:2"
- }
- ],
- "id": 2146,
- "name": "FunctionDefinition",
- "src": "10351:88:2"
- }
- ],
- "id": 2147,
- "name": "ContractDefinition",
- "src": "304:10137:2"
- }
- ],
- "id": 2148,
- "name": "SourceUnit",
- "src": "67:10375:2"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.12+commit.27d51765.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.3.4",
- "updatedAt": "2021-04-12T21:53:29.906Z",
- "devdoc": {
- "kind": "dev",
- "methods": {
- "allowance(address,address)": {
- "details": "See {IERC20-allowance}."
- },
- "approve(address,uint256)": {
- "details": "See {IERC20-approve}. Requirements: - `spender` cannot be the zero address."
- },
- "balanceOf(address)": {
- "details": "See {IERC20-balanceOf}."
- },
- "decimals()": {
- "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
- },
- "decreaseAllowance(address,uint256)": {
- "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."
- },
- "increaseAllowance(address,uint256)": {
- "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."
- },
- "name()": {
- "details": "Returns the name of the token."
- },
- "symbol()": {
- "details": "Returns the symbol of the token, usually a shorter version of the name."
- },
- "totalSupply()": {
- "details": "See {IERC20-totalSupply}."
- },
- "transfer(address,uint256)": {
- "details": "See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."
- },
- "transferFrom(address,address,uint256)": {
- "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`."
- }
- },
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
diff --git a/packages/bridge-sdk/package.json b/packages/bridge-sdk/package.json
deleted file mode 100644
index 7d02ae8..0000000
--- a/packages/bridge-sdk/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "name": "@solana/bridge-sdk",
- "version": "0.0.1",
- "description": "Bridge common sdk utilities",
- "main": "dist/lib/index.js",
- "types": "dist/lib/index.d.ts",
- "exports": {
- ".": "./dist/lib/"
- },
- "license": "Apache-2.0",
- "publishConfig": {
- "access": "public"
- },
- "engines": {
- "node": ">=10"
- },
- "dependencies": {
- "@babel/preset-typescript": "^7.13.0",
- "@oyster/common": "0.0.2",
- "@solana/spl-token": "0.1.3",
- "@solana/spl-token-swap": "0.1.0",
- "@solana/web3.js": "^1.22.0",
- "bignumber.js": "^9.0.1",
- "bn.js": "^5.1.3",
- "bs58": "^4.0.1",
- "buffer-layout": "1.2.0",
- "ethers": "^4.0.48",
- "eventemitter3": "^4.0.7",
- "lodash": "^4.17.20",
- "typescript": "^4.1.3",
- "web3": "^1.3.0"
- },
- "scripts": {
- "build": "tsc",
- "start": "npm-run-all --parallel watch watch-css watch-css-src",
- "watch-css": "less-watch-compiler src/ dist/lib/",
- "watch-css-src": "less-watch-compiler src/ src/",
- "watch": "tsc --watch",
- "test": "jest test",
- "clean": "rm -rf dist",
- "prepare": "run-s clean build",
- "format:fix": "prettier --write \"**/*.+(js|jsx|ts|tsx|json|css|md)\"",
- "ethers": "typechain --target ethers-v4 --outDir src/contracts 'contracts/*.json'"
- },
- "files": [
- "dist"
- ],
- "browserslist": {
- "production": [
- ">0.2%",
- "not dead",
- "not op_mini all"
- ],
- "development": [
- "last 1 chrome version",
- "last 1 firefox version",
- "last 1 safari version"
- ]
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/solana-labs/oyster"
- },
- "peerDependencies": {
- "react": "*",
- "react-dom": "*"
- },
- "resolutions": {
- "react": "16.13.1",
- "react-dom": "16.13.1"
- },
- "homepage": ".",
- "devDependencies": {
- "@typechain/ethers-v4": "^1.0.0",
- "@types/bn.js": "^5.1.0",
- "@types/bs58": "^4.0.1",
- "@types/node": "^12.12.62",
- "arweave-deploy": "^1.9.1",
- "gh-pages": "^3.1.0",
- "jest": "^27.4.7",
- "prettier": "^2.1.2"
- }
-}
\ No newline at end of file
diff --git a/packages/bridge-sdk/src/bridge/claim.ts b/packages/bridge-sdk/src/bridge/claim.ts
deleted file mode 100644
index 254afd4..0000000
--- a/packages/bridge-sdk/src/bridge/claim.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// 40 - ExecutedVAA (claim)
-import { publicKey } from '@oyster/common/dist/lib/utils/layout';
-import * as BufferLayout from 'buffer-layout';
-
-export const ClaimedVAA = BufferLayout.struct([
- BufferLayout.blob(32, 'hash'),
- BufferLayout.u32('vaaTime'),
- BufferLayout.u8('initialized'),
- //BufferLayout.seq(BufferLayout.u8(), 3),
-]);
-
-/*
-pub struct ClaimedVAA {
- /// hash of the vaa
- pub hash: [u8; 32],
- /// time the vaa was submitted
- pub vaa_time: u32,
- /// Is `true` if this structure has been initialized.
- pub is_initialized: bool,
-}
-*/
diff --git a/packages/bridge-sdk/src/bridge/config.ts b/packages/bridge-sdk/src/bridge/config.ts
deleted file mode 100644
index 0d79716..0000000
--- a/packages/bridge-sdk/src/bridge/config.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-// 44 - bridge config
-import { publicKey } from '@oyster/common/dist/lib/utils/layout';
-import * as BufferLayout from 'buffer-layout';
-
-export const BridgeLayout = BufferLayout.struct([
- BufferLayout.u32('guardianSetIndex'),
- BufferLayout.u8('guardianSetExpirationTime'),
- publicKey('tokenProgram'),
- BufferLayout.u8('isInitialized'),
-]);
diff --git a/packages/bridge-sdk/src/bridge/constants.ts b/packages/bridge-sdk/src/bridge/constants.ts
deleted file mode 100644
index 643e4ef..0000000
--- a/packages/bridge-sdk/src/bridge/constants.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export enum ASSET_CHAIN {
- Solana = 1,
- Ethereum = 2,
-}
diff --git a/packages/bridge-sdk/src/bridge/custody.ts b/packages/bridge-sdk/src/bridge/custody.ts
deleted file mode 100644
index 24b94c5..0000000
--- a/packages/bridge-sdk/src/bridge/custody.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-// 34 - custody account
-import * as BufferLayout from 'buffer-layout';
-
-/// ForeignAddress u8 - 32
diff --git a/packages/bridge-sdk/src/bridge/guardianSet.ts b/packages/bridge-sdk/src/bridge/guardianSet.ts
deleted file mode 100644
index bfc9623..0000000
--- a/packages/bridge-sdk/src/bridge/guardianSet.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import * as BufferLayout from 'buffer-layout';
-
-// 420
-export const GuardianSetLayout: typeof BufferLayout.Structure = BufferLayout.struct(
- [
- BufferLayout.u32('index'),
- BufferLayout.u8('keysLength'),
-
- // TODO: decode keys
- BufferLayout.blob(406, 'keys'),
-
- BufferLayout.u32('creationTime'),
- BufferLayout.u32('expirationTime'),
- BufferLayout.u8('isInitialized'),
- ],
-);
diff --git a/packages/bridge-sdk/src/bridge/helpers.ts b/packages/bridge-sdk/src/bridge/helpers.ts
deleted file mode 100644
index 6987e46..0000000
--- a/packages/bridge-sdk/src/bridge/helpers.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { PublicKey } from '@solana/web3.js';
-import { AssetMeta } from './meta';
-
-export const bridgeAuthorityKey = async (bridgeId: PublicKey) => {
- // @ts-ignore
- return (
- await PublicKey.findProgramAddress([Buffer.from('bridge')], bridgeId)
- )[0];
-};
-export const wrappedAssetMintKey = async (
- bridgeId: PublicKey,
- authority: PublicKey,
- asset: AssetMeta,
-) => {
- if (asset.chain === 1) {
- return new PublicKey(asset.address);
- }
-
- let seeds: Array = [
- Buffer.from('wrapped'),
- authority.toBuffer(),
- Buffer.of(asset.chain),
- Buffer.of(asset.decimals),
- padBuffer(asset.address, 32),
- ];
- // @ts-ignore
- return (await PublicKey.findProgramAddress(seeds, bridgeId))[0];
-};
-
-export const wrappedAssetMetaKey = async (
- bridgeId: PublicKey,
- authority: PublicKey,
- mint: PublicKey,
-) => {
- let seeds: Array = [
- Buffer.from('meta'),
- authority.toBuffer(),
- mint.toBuffer(),
- ];
- // @ts-ignore
- return (await PublicKey.findProgramAddress(seeds, bridgeId))[0];
-};
-
-export function padBuffer(b: Buffer, len: number): Buffer {
- const zeroPad = Buffer.alloc(len);
- b.copy(zeroPad, len - b.length);
- return zeroPad;
-}
diff --git a/packages/bridge-sdk/src/bridge/index.ts b/packages/bridge-sdk/src/bridge/index.ts
deleted file mode 100644
index 1265027..0000000
--- a/packages/bridge-sdk/src/bridge/index.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export * from './config';
-export * from './guardianSet';
-export * from './meta';
-export * from './transferOutProposal';
-export * from './transfer';
-export * from './helpers';
diff --git a/packages/bridge-sdk/src/bridge/lock.ts b/packages/bridge-sdk/src/bridge/lock.ts
deleted file mode 100644
index dbec1c6..0000000
--- a/packages/bridge-sdk/src/bridge/lock.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import { programIds } from '@oyster/common';
-import {
- PublicKey,
- SystemProgram,
- SYSVAR_CLOCK_PUBKEY,
- SYSVAR_INSTRUCTIONS_PUBKEY,
- SYSVAR_RENT_PUBKEY,
- TransactionInstruction,
-} from '@solana/web3.js';
-import BN from 'bn.js';
-import * as BufferLayout from 'buffer-layout';
-import { padBuffer } from './helpers';
-import { AssetMeta } from './meta';
-import { ASSET_CHAIN } from './constants';
-
-export const createLockAssetInstruction = async (
- authorityKey: PublicKey,
- payer: PublicKey,
- tokenAccount: PublicKey,
- mint: PublicKey,
- amount: BN,
- targetChain: number,
- targetAddress: Buffer,
- asset: AssetMeta,
- nonce: number,
-) => {
- const programId = programIds().wormhole.pubkey;
- const dataLayout = BufferLayout.struct([
- BufferLayout.u8('instruction'),
- // uint256
- BufferLayout.blob(32, 'amount'),
- BufferLayout.u8('targetChain'),
- BufferLayout.blob(32, 'assetAddress'),
- BufferLayout.u8('assetChain'),
- BufferLayout.u8('assetDecimals'),
- BufferLayout.blob(32, 'targetAddress'),
- BufferLayout.seq(BufferLayout.u8(), 1),
- BufferLayout.u32('nonce'),
- ]);
-
- let nonceBuffer = Buffer.alloc(4);
- nonceBuffer.writeUInt32LE(nonce, 0);
-
- // @ts-ignore
- let seeds: Array = [
- Buffer.from('transfer'),
- authorityKey.toBuffer(),
- Buffer.from([asset.chain]),
- padBuffer(asset.address, 32),
- Buffer.from([targetChain]),
- padBuffer(targetAddress, 32),
- tokenAccount.toBuffer(),
- nonceBuffer,
- ];
- // @ts-ignore
- let transferKey = (await PublicKey.findProgramAddress(seeds, programId))[0];
-
- const data = Buffer.alloc(dataLayout.span);
- dataLayout.encode(
- {
- instruction: 1, // TransferOut instruction
- amount: padBuffer(Buffer.from(amount.toArray()), 32),
- targetChain: targetChain,
- assetAddress: padBuffer(asset.address, 32),
- assetChain: asset.chain,
- assetDecimals: asset.decimals,
- targetAddress: padBuffer(targetAddress, 32),
- nonce: nonce,
- },
- data,
- );
-
- const keys = [
- { pubkey: programId, isSigner: false, isWritable: false },
- {
- pubkey: SystemProgram.programId,
- isSigner: false,
- isWritable: false,
- },
- { pubkey: programIds().token, isSigner: false, isWritable: false },
- {
- pubkey: SYSVAR_RENT_PUBKEY,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: SYSVAR_CLOCK_PUBKEY,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: SYSVAR_INSTRUCTIONS_PUBKEY,
- isSigner: false,
- isWritable: false,
- },
- { pubkey: tokenAccount, isSigner: false, isWritable: true },
- { pubkey: authorityKey, isSigner: false, isWritable: false },
-
- { pubkey: transferKey, isSigner: false, isWritable: true },
- { pubkey: mint, isSigner: false, isWritable: true },
- { pubkey: payer, isSigner: true, isWritable: true },
- ];
-
- if (asset.chain === ASSET_CHAIN.Solana) {
- // @ts-ignore
- let custodyKey = (
- await PublicKey.findProgramAddress(
- [Buffer.from('custody'), authorityKey.toBuffer(), mint.toBuffer()],
- programId,
- )
- )[0];
- keys.push({ pubkey: custodyKey, isSigner: false, isWritable: true });
- }
-
- return {
- ix: new TransactionInstruction({
- keys,
- programId: programId,
- data,
- }),
- transferKey: transferKey,
- };
-};
diff --git a/packages/bridge-sdk/src/bridge/meta.ts b/packages/bridge-sdk/src/bridge/meta.ts
deleted file mode 100644
index 3681b79..0000000
--- a/packages/bridge-sdk/src/bridge/meta.ts
+++ /dev/null
@@ -1,94 +0,0 @@
-import { programIds } from '@oyster/common';
-import {
- PublicKey,
- SystemProgram,
- SYSVAR_RENT_PUBKEY,
- TransactionInstruction,
-} from '@solana/web3.js';
-import * as BufferLayout from 'buffer-layout';
-import { padBuffer, wrappedAssetMetaKey } from './helpers';
-
-export interface AssetMeta {
- chain: number;
- decimals: number;
- address: Buffer;
-}
-
-export const WrappedMetaLayout: typeof BufferLayout.Structure = BufferLayout.struct(
- [
- BufferLayout.u8('chain'),
- BufferLayout.blob(32, 'address'),
- BufferLayout.u8('isInitialized'),
- ],
-);
-
-export const createWrappedLayout = BufferLayout.struct([
- BufferLayout.u8('instruction'),
- BufferLayout.blob(32, 'assetAddress'),
- BufferLayout.u8('chain'),
- BufferLayout.u8('decimals'),
-]);
-
-export const createWrappedAssetInstruction = async (
- meta: AssetMeta,
- bridgeId: PublicKey,
- authorityKey: PublicKey,
- mintKey: PublicKey,
- payer: PublicKey,
-) => {
- let metaKey = await wrappedAssetMetaKey(bridgeId, authorityKey, mintKey);
- const wa_keys = [
- {
- pubkey: SystemProgram.programId,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: programIds().token,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: SYSVAR_RENT_PUBKEY,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: authorityKey,
- isSigner: false,
- isWritable: false,
- },
- {
- pubkey: payer,
- isSigner: true,
- isWritable: true,
- },
- {
- pubkey: mintKey,
- isSigner: false,
- isWritable: true,
- },
- {
- pubkey: metaKey,
- isSigner: false,
- isWritable: true,
- },
- ];
-
- const wrappedData = Buffer.alloc(createWrappedLayout.span);
- createWrappedLayout.encode(
- {
- instruction: 7, // CreateWrapped instruction
- assetAddress: padBuffer(meta.address, 32),
- chain: meta.chain,
- decimals: meta.decimals,
- },
- wrappedData,
- );
-
- return new TransactionInstruction({
- keys: wa_keys,
- programId: bridgeId,
- data: wrappedData,
- });
-};
diff --git a/packages/bridge-sdk/src/bridge/signatureState.ts b/packages/bridge-sdk/src/bridge/signatureState.ts
deleted file mode 100644
index 4d6bece..0000000
--- a/packages/bridge-sdk/src/bridge/signatureState.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-// 1340 - SigState - (VerifySignatures - parameter 4)
-// export const NOP = 0;
-
-import * as BufferLayout from 'buffer-layout';
-
-// 1184 TransferOutProposal
-export const SignatureLayout = BufferLayout.struct([
- BufferLayout.blob(64 * 1000, 'signatures'),
- BufferLayout.blob(32, 'hash'),
- BufferLayout.u32('guardianSetIndex'),
- BufferLayout.u8('initialized'),
-]);
diff --git a/packages/bridge-sdk/src/bridge/transfer/fromSolana.ts b/packages/bridge-sdk/src/bridge/transfer/fromSolana.ts
deleted file mode 100644
index a932089..0000000
--- a/packages/bridge-sdk/src/bridge/transfer/fromSolana.ts
+++ /dev/null
@@ -1,281 +0,0 @@
-import {
- programIds,
- sendTransactionWithRetry,
- sleep,
- WalletSigner,
-} from '@oyster/common';
-import { ethers } from 'ethers';
-import { WormholeFactory } from '../../contracts/WormholeFactory';
-import { bridgeAuthorityKey } from './../helpers';
-import { Connection, PublicKey, SystemProgram } from '@solana/web3.js';
-import { Token, u64 } from '@solana/spl-token';
-import { ProgressUpdate, TransferRequest } from './interface';
-import BN from 'bn.js';
-import { createLockAssetInstruction } from '../lock';
-import { TransferOutProposalLayout } from '../transferOutProposal';
-import { SolanaBridge } from '../../core';
-
-export const fromSolana = async (
- connection: Connection,
- wallet: WalletSigner,
- request: TransferRequest,
- provider: ethers.providers.Web3Provider,
- setProgress: (update: ProgressUpdate) => void,
- bridge?: SolanaBridge,
-) => {
- if (
- !request.asset ||
- !request.amount ||
- !request.to ||
- !request.info ||
- !bridge
- ) {
- return;
- }
- const signer = provider?.getSigner();
- request.recipient = Buffer.from((await signer.getAddress()).slice(2), 'hex');
- const nonce = await provider.getTransactionCount(
- signer.getAddress(),
- 'pending',
- );
-
- let counter = 0;
- // check difference between lock/approve (invoke lock if allowance < amount)
- const steps = {
- transfer: async (request: TransferRequest) => {
- if (!request.info) {
- throw new Error('Missing info');
- }
-
- if (!request.amount) {
- throw new Error('Missing amount');
- }
-
- return steps.lock(request);
- },
-
- // locks assets in the bridge
- lock: async (request: TransferRequest) => {
- if (
- !request.amount ||
- !request.recipient ||
- !request.to ||
- !request.info ||
- !wallet.publicKey
- ) {
- return;
- }
-
- const amountBN = ethers.utils.parseUnits(
- request.amount.toString(),
- request.info.decimals || 0,
- );
- const amountBI = BigInt(amountBN.toString())
-
- let group = 'Initiate transfer';
- const programs = programIds();
- const bridgeId = programs.wormhole.pubkey;
- const authorityKey = await bridgeAuthorityKey(bridgeId);
-
- let { ix: lock_ix, transferKey } = await createLockAssetInstruction(
- authorityKey,
- wallet.publicKey,
- new PublicKey(request.info.address),
- new PublicKey(request.info.mint),
- new BN(amountBN.toString()),
- request.to,
- request.recipient,
- {
- chain: request.info.chainID,
- address: request.info.assetAddress,
- decimals: request.info.decimals,
- },
- // TODO: should this is use durable nonce account?
- Math.random() * 100000,
- );
-
- let ix = Token.createApproveInstruction(
- programs.token,
- new PublicKey(request.info.address),
- authorityKey,
- wallet.publicKey,
- [],
- new u64(amountBI.toString(16), 16),
- );
-
- setProgress({
- message: 'Waiting for Solana approval...',
- type: 'user',
- group,
- step: counter++,
- });
- let fee_ix = SystemProgram.transfer({
- fromPubkey: wallet.publicKey,
- toPubkey: authorityKey,
- lamports: await getTransferFee(connection),
- });
-
- const { slot } = await sendTransactionWithRetry(
- connection,
- wallet,
- [ix, fee_ix, lock_ix],
- [],
- undefined,
- false,
- undefined,
- () => {
- setProgress({
- message: 'Executing Solana Transaction',
- type: 'wait',
- group,
- step: counter++,
- });
- },
- );
-
- return steps.wait(request, transferKey, slot);
- },
- wait: async (
- request: TransferRequest,
- proposalKey: PublicKey,
- slot: number,
- ) => {
- return new Promise((resolve, reject) => {
- let completed = false;
- let unsubscribed = false;
- let startSlot = slot;
-
- let group = 'Lock assets';
- const solConfirmationMessage = (current: number) =>
- `Awaiting Solana confirmations: ${current} out of 32`;
- let replaceMessage = false;
- let slotUpdateListener = connection.onSlotChange(slot => {
- if (unsubscribed) {
- return;
- }
-
- const passedSlots = Math.min(Math.max(slot.slot - startSlot, 0), 32);
- const isLast = passedSlots - 1 === 31;
- if (passedSlots <= 32) {
- setProgress({
- message: solConfirmationMessage(passedSlots),
- type: isLast ? 'done' : 'wait',
- step: counter++,
- group,
- replace: replaceMessage,
- });
- replaceMessage = true;
- }
-
- if (completed || isLast) {
- unsubscribed = true;
- setProgress({
- message: 'Awaiting guardian confirmation. (Up to few min.)',
- type: 'wait',
- step: counter++,
- group,
- });
- }
- });
-
- let accountChangeListener = connection.onAccountChange(
- proposalKey,
- async a => {
- if (completed) return;
-
- let lockup = TransferOutProposalLayout.decode(a.data);
- let vaa = lockup.vaa;
-
- for (let i = vaa.length; i > 0; i--) {
- if (vaa[i] == 0xff) {
- vaa = vaa.slice(0, i);
- break;
- }
- }
-
- // Probably a poke
- if (vaa.filter((v: number) => v !== 0).length == 0) {
- return;
- }
-
- completed = true;
- connection.removeAccountChangeListener(accountChangeListener);
- connection.removeSlotChangeListener(slotUpdateListener);
- let signatures;
-
- while (!signatures) {
- try {
- signatures = await bridge.fetchSignatureStatus(
- lockup.signatureAccount,
- );
- break;
- } catch {
- await sleep(500);
- }
- }
-
- let sigData = Buffer.of(
- ...signatures.reduce((previousValue, currentValue) => {
- previousValue.push(currentValue.index);
- previousValue.push(...currentValue.signature);
-
- return previousValue;
- }, new Array()),
- );
-
- vaa = Buffer.concat([
- vaa.slice(0, 5),
- Buffer.of(signatures.length),
- sigData,
- vaa.slice(6),
- ]);
-
- try {
- await steps.postVAA(request, vaa);
- resolve();
- } catch {
- reject();
- }
- },
- 'single',
- );
- });
- },
- postVAA: async (request: TransferRequest, vaa: any) => {
- let wh = WormholeFactory.connect(programIds().wormhole.bridge, signer);
- let group = 'Finalizing transfer';
- setProgress({
- message: 'Sign the claim...',
- type: 'wait',
- group,
- step: counter++,
- });
- let tx = await wh.submitVAA(vaa);
- setProgress({
- message: 'Waiting for tokens unlock to be mined... (Up to few min.)',
- type: 'wait',
- group,
- step: counter++,
- });
- await tx.wait(1);
- setProgress({
- message: 'Execution of VAA succeeded',
- type: 'done',
- group,
- step: counter++,
- });
- //message.success({content: "", key: "eth_tx"})
- },
- };
-
- return steps.transfer(request);
-};
-
-const getTransferFee = async (connection: Connection) => {
- // claim + signature
- // Reference processor.rs::Bridge::transfer_fee
- return (
- (await connection.getMinimumBalanceForRentExemption((40 + 1340) * 2)) +
- 18 * 10000 * 2
- );
-};
diff --git a/packages/bridge-sdk/src/bridge/transfer/index.ts b/packages/bridge-sdk/src/bridge/transfer/index.ts
deleted file mode 100644
index f0fec90..0000000
--- a/packages/bridge-sdk/src/bridge/transfer/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from './toSolana';
-export * from './fromSolana';
-export * from './interface';
diff --git a/packages/bridge-sdk/src/bridge/transfer/interface.ts b/packages/bridge-sdk/src/bridge/transfer/interface.ts
deleted file mode 100644
index 3eb4b85..0000000
--- a/packages/bridge-sdk/src/bridge/transfer/interface.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { BigNumber } from 'bignumber.js';
-import { ethers } from 'ethers';
-import { ASSET_CHAIN } from '../constants';
-
-export interface ProgressUpdate {
- message: string;
- type: string;
- step: number;
- group: string;
- replace?: boolean;
-}
-
-export interface TransferRequestInfo {
- address: string;
- name: string;
- balance: BigNumber;
- decimals: number;
- allowance: ethers.utils.BigNumber;
- isWrapped: boolean;
- chainID: number;
- assetAddress: Buffer;
- mint: string;
-}
-
-export interface TransferRequest {
- amount?: number;
-
- info?: TransferRequestInfo;
-
- from?: ASSET_CHAIN;
- asset?: string;
-
- to?: ASSET_CHAIN;
- recipient?: Buffer;
-}
-
-export const displayBalance = (info?: TransferRequestInfo) => {
- try {
- const balance = info?.balance || new BigNumber(0);
- const precision = new BigNumber(10).pow(info?.decimals || new BigNumber(0));
- return balance.div(precision).toNumber();
- } catch (e) {
- return 0;
- }
-};
diff --git a/packages/bridge-sdk/src/bridge/transfer/toSolana.ts b/packages/bridge-sdk/src/bridge/transfer/toSolana.ts
deleted file mode 100644
index e48430f..0000000
--- a/packages/bridge-sdk/src/bridge/transfer/toSolana.ts
+++ /dev/null
@@ -1,356 +0,0 @@
-import {
- programIds,
- getMultipleAccounts,
- sendTransactionWithRetry,
- cache,
- TokenAccountParser,
- ParsedAccount,
- createAssociatedTokenAccountInstruction,
- WalletSigner,
-} from '@oyster/common';
-import { ethers } from 'ethers';
-import { ERC20Factory } from '../../contracts/ERC20Factory';
-import { WormholeFactory } from '../../contracts/WormholeFactory';
-import { AssetMeta, createWrappedAssetInstruction } from './../meta';
-import { bridgeAuthorityKey, wrappedAssetMintKey } from './../helpers';
-import {
- Account,
- Connection,
- PublicKey,
- TransactionInstruction,
-} from '@solana/web3.js';
-import { AccountInfo } from '@solana/spl-token';
-import { TransferRequest, ProgressUpdate } from './interface';
-import { BigNumber } from 'bignumber.js';
-
-export const toSolana = async (
- connection: Connection,
- wallet: WalletSigner,
- request: TransferRequest,
- provider: ethers.providers.Web3Provider,
- setProgress: (update: ProgressUpdate) => void,
-) => {
- if (
- !request.asset ||
- !request.amount ||
- !request.info ||
- !request.info.address
- ) {
- return;
- }
- const walletName = 'MetaMask';
- const signer = provider?.getSigner();
-
- const nonce = await provider.getTransactionCount(
- signer.getAddress(),
- 'pending',
- );
- const amountBigNumber = new BigNumber(request.amount.toString()).toFormat(
- request.info.decimals,
- );
-
- const amountBN = ethers.utils.parseUnits(
- request.amount.toString(),
- request.info.decimals,
- );
-
- let counter = 0;
- // check difference between lock/approve (invoke lock if allowance < amount)
- const steps = {
- transfer: async (request: TransferRequest) => {
- if (!request.info || !request.amount) {
- return;
- }
-
- return steps.prepare(request);
- },
-
- // creates wrapped account on solana
- prepare: async (request: TransferRequest) => {
- if (!request.info || !request.from || !wallet.publicKey) {
- return;
- }
-
- const group = 'Initiate transfer';
- try {
- let mintKey: PublicKey;
-
- const bridgeId = programIds().wormhole.pubkey;
- const authority = await bridgeAuthorityKey(bridgeId);
- const meta: AssetMeta = {
- decimals: Math.min(request.info?.decimals, 9),
- address: request.info?.assetAddress,
- chain: request.from,
- };
- if (request.info.mint) {
- mintKey = new PublicKey(request.info.mint);
- } else {
- mintKey = await wrappedAssetMintKey(bridgeId, authority, meta);
- }
-
- const recipientKey =
- cache
- .byParser(TokenAccountParser)
- .map(key => {
- let account = cache.get(key) as ParsedAccount;
- if (
- account?.info.mint.toBase58() === mintKey.toBase58() &&
- account?.info.owner.toBase58() === wallet?.publicKey?.toBase58()
- ) {
- return key;
- }
-
- return;
- })
- .find(_ => _) || '';
- const recipient: PublicKey = recipientKey
- ? new PublicKey(recipientKey)
- : (
- await PublicKey.findProgramAddress(
- [
- wallet.publicKey.toBuffer(),
- programIds().token.toBuffer(),
- mintKey.toBuffer(),
- ],
- programIds().associatedToken,
- )
- )[0];
-
- request.recipient = recipient.toBuffer();
-
- const accounts = await getMultipleAccounts(
- connection,
- [mintKey.toBase58(), recipient.toBase58()],
- 'single',
- );
- const instructions: TransactionInstruction[] = [];
- const signers: Account[] = [];
-
- if (!accounts.array[0]) {
- // create mint using wormhole instruction
-
- instructions.push(
- await createWrappedAssetInstruction(
- meta,
- bridgeId,
- authority,
- mintKey,
- wallet.publicKey,
- ),
- );
- }
-
- if (!accounts.array[1]) {
- createAssociatedTokenAccountInstruction(
- instructions,
- recipient,
- wallet.publicKey,
- wallet.publicKey,
- mintKey,
- );
- }
-
- if (instructions.length > 0) {
- setProgress({
- message: 'Waiting for Solana approval...',
- type: 'user',
- group,
- step: counter++,
- });
-
- await sendTransactionWithRetry(
- connection,
- wallet,
- instructions,
- signers,
- );
- }
- } catch (err) {
- setProgress({
- message: `Couldn't create Solana account!`,
- type: 'error',
- group,
- step: counter++,
- });
- throw err;
- }
-
- return steps.approve(request);
- },
- // approves assets for transfer
- approve: async (request: TransferRequest) => {
- if (!request.info?.address) {
- return;
- }
-
- const group = 'Approve assets';
- try {
- if (request.info?.allowance.lt(amountBN)) {
- let e = ERC20Factory.connect(request.info.address, signer);
- setProgress({
- message: `Waiting for ${walletName} approval`,
- type: 'user',
- group,
- step: counter++,
- });
- let res = await e.approve(programIds().wormhole.bridge, amountBN);
- setProgress({
- message:
- 'Waiting for ETH transaction to be mined... (Up to few min.)',
- type: 'wait',
- group,
- step: counter++,
- });
- await res.wait(1);
- setProgress({
- message: 'Approval on ETH succeeded!',
- type: 'done',
- group,
- step: counter++,
- });
- } else {
- setProgress({
- message: 'Already approved on ETH!',
- type: 'done',
- group,
- step: counter++,
- });
- }
- } catch (err) {
- setProgress({
- message: 'Approval failed!',
- type: 'error',
- group,
- step: counter++,
- });
- throw err;
- }
-
- return steps.lock(request);
- },
- // locks assets in the bridge
- lock: async (request: TransferRequest) => {
- if (
- !amountBN ||
- !request.info?.address ||
- !request.recipient ||
- !request.to ||
- !request.info
- ) {
- return;
- }
-
- let group = 'Lock assets';
-
- try {
- let wh = WormholeFactory.connect(programIds().wormhole.bridge, signer);
- setProgress({
- message: `Waiting for ${walletName} transfer approval`,
- type: 'user',
- group,
- step: counter++,
- });
- let res = await wh.lockAssets(
- request.info.address,
- amountBN,
- request.recipient,
- request.to,
- nonce,
- false,
- );
- setProgress({
- message:
- 'Waiting for ETH transaction to be mined... (Up to few min.)',
- type: 'wait',
- group,
- step: counter++,
- });
- await res.wait(1);
- setProgress({
- message: 'Transfer on ETH succeeded!',
- type: 'done',
- group,
- step: counter++,
- });
- } catch (err) {
- setProgress({
- message: 'Transfer failed!',
- type: 'error',
- group,
- step: counter++,
- });
- throw err;
- }
-
- return steps.wait(request);
- },
- wait: async (request: TransferRequest) => {
- let startBlock = provider.blockNumber;
- let completed = false;
- let group = 'Finalizing transfer';
-
- const ethConfirmationMessage = (current: number) =>
- `Awaiting ETH confirmations: ${current} out of 15`;
-
- setProgress({
- message: ethConfirmationMessage(0),
- type: 'wait',
- step: counter++,
- group,
- });
-
- let blockHandler = (blockNumber: number) => {
- let passedBlocks = blockNumber - startBlock;
- const isLast = passedBlocks === 14;
- if (passedBlocks < 15) {
- setProgress({
- message: ethConfirmationMessage(passedBlocks),
- type: isLast ? 'done' : 'wait',
- step: counter++,
- group,
- replace: passedBlocks > 0,
- });
-
- if (isLast) {
- setProgress({
- message: 'Awaiting completion on Solana...',
- type: 'wait',
- group,
- step: counter++,
- });
- }
- } else if (!completed) {
- provider.removeListener('block', blockHandler);
- }
- };
- provider.on('block', blockHandler);
-
- return new Promise((resolve, reject) => {
- if (!request.recipient) {
- return;
- }
-
- let accountChangeListener = connection.onAccountChange(
- new PublicKey(request.recipient),
- () => {
- if (completed) return;
-
- completed = true;
- provider.removeListener('block', blockHandler);
- connection.removeAccountChangeListener(accountChangeListener);
- setProgress({
- message: 'Transfer completed on Solana',
- type: 'info',
- group,
- step: counter++,
- });
- resolve();
- },
- 'single',
- );
- });
- },
- };
-
- return steps.transfer(request);
-};
diff --git a/packages/bridge-sdk/src/bridge/transferOutProposal.ts b/packages/bridge-sdk/src/bridge/transferOutProposal.ts
deleted file mode 100644
index 1cac47f..0000000
--- a/packages/bridge-sdk/src/bridge/transferOutProposal.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { publicKey } from '@oyster/common/dist/lib/utils/layout';
-import * as BufferLayout from 'buffer-layout';
-
-// 1184 TransferOutProposal
-export const TransferOutProposalLayout = BufferLayout.struct([
- BufferLayout.blob(32, 'amount'),
- BufferLayout.u8('toChain'),
- publicKey('sourceAddress'),
- BufferLayout.blob(32, 'targetAddress'),
- BufferLayout.blob(32, 'assetAddress'),
- BufferLayout.u8('assetChain'),
- BufferLayout.u8('assetDecimals'),
- BufferLayout.seq(BufferLayout.u8(), 1), // 4 byte alignment because a u32 is following
- BufferLayout.u32('nonce'),
- BufferLayout.blob(1001, 'vaa'),
- BufferLayout.seq(BufferLayout.u8(), 3), // 4 byte alignment because a u32 is following
- BufferLayout.u32('vaaTime'),
- BufferLayout.u32('lockupTime'),
- BufferLayout.u8('pokeCounter'),
- publicKey('signatureAccount'),
- BufferLayout.u8('initialized'),
- BufferLayout.seq(BufferLayout.u8(), 2), // 2 byte alignment
-]);
diff --git a/packages/bridge-sdk/src/contracts/ERC20.d.ts b/packages/bridge-sdk/src/contracts/ERC20.d.ts
deleted file mode 100644
index 471736c..0000000
--- a/packages/bridge-sdk/src/contracts/ERC20.d.ts
+++ /dev/null
@@ -1,600 +0,0 @@
-/* Autogenerated file. Do not edit manually. */
-/* tslint:disable */
-/* eslint-disable */
-
-import { Contract, ContractTransaction, EventFilter, Signer } from 'ethers';
-import { Listener, Provider } from 'ethers/providers';
-import { Arrayish, BigNumber, BigNumberish, Interface } from 'ethers/utils';
-import {
- TransactionOverrides,
- TypedEventDescription,
- TypedFunctionDescription,
-} from '.';
-
-interface ERC20Interface extends Interface {
- functions: {
- name: TypedFunctionDescription<{ encode([]: []): string }>;
-
- symbol: TypedFunctionDescription<{ encode([]: []): string }>;
-
- decimals: TypedFunctionDescription<{ encode([]: []): string }>;
-
- totalSupply: TypedFunctionDescription<{ encode([]: []): string }>;
-
- balanceOf: TypedFunctionDescription<{
- encode([account]: [string]): string;
- }>;
-
- transfer: TypedFunctionDescription<{
- encode([recipient, amount]: [string, BigNumberish]): string;
- }>;
-
- allowance: TypedFunctionDescription<{
- encode([owner, spender]: [string, string]): string;
- }>;
-
- approve: TypedFunctionDescription<{
- encode([spender, amount]: [string, BigNumberish]): string;
- }>;
-
- transferFrom: TypedFunctionDescription<{
- encode([sender, recipient, amount]: [
- string,
- string,
- BigNumberish,
- ]): string;
- }>;
-
- increaseAllowance: TypedFunctionDescription<{
- encode([spender, addedValue]: [string, BigNumberish]): string;
- }>;
-
- decreaseAllowance: TypedFunctionDescription<{
- encode([spender, subtractedValue]: [string, BigNumberish]): string;
- }>;
- };
-
- events: {
- Approval: TypedEventDescription<{
- encodeTopics([owner, spender, value]: [
- string | null,
- string | null,
- null,
- ]): string[];
- }>;
-
- Transfer: TypedEventDescription<{
- encodeTopics([from, to, value]: [
- string | null,
- string | null,
- null,
- ]): string[];
- }>;
- };
-}
-
-export class ERC20 extends Contract {
- connect(signerOrProvider: Signer | Provider | string): ERC20;
- attach(addressOrName: string): ERC20;
- deployed(): Promise;
-
- on(event: EventFilter | string, listener: Listener): ERC20;
- once(event: EventFilter | string, listener: Listener): ERC20;
- addListener(eventName: EventFilter | string, listener: Listener): ERC20;
- removeAllListeners(eventName: EventFilter | string): ERC20;
- removeListener(eventName: any, listener: Listener): ERC20;
-
- interface: ERC20Interface;
-
- functions: {
- /**
- * Returns the name of the token.
- */
- name(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the name of the token.
- */
- 'name()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the symbol of the token, usually a shorter version of the name.
- */
- symbol(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the symbol of the token, usually a shorter version of the name.
- */
- 'symbol()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
- */
- decimals(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
- */
- 'decimals()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-totalSupply}.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-totalSupply}.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-balanceOf}.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-balanceOf}.
- */
- 'balanceOf(address)'(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.
- */
- transfer(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.
- */
- 'transfer(address,uint256)'(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-allowance}.
- */
- allowance(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-allowance}.
- */
- 'allowance(address,address)'(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.
- */
- approve(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.
- */
- 'approve(address,uint256)'(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.
- */
- transferFrom(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.
- */
- 'transferFrom(address,address,uint256)'(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.
- */
- increaseAllowance(
- spender: string,
- addedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.
- */
- 'increaseAllowance(address,uint256)'(
- spender: string,
- addedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.
- */
- decreaseAllowance(
- spender: string,
- subtractedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.
- */
- 'decreaseAllowance(address,uint256)'(
- spender: string,
- subtractedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
- };
-
- /**
- * Returns the name of the token.
- */
- name(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the name of the token.
- */
- 'name()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the symbol of the token, usually a shorter version of the name.
- */
- symbol(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the symbol of the token, usually a shorter version of the name.
- */
- 'symbol()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
- */
- decimals(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
- */
- 'decimals()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-totalSupply}.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-totalSupply}.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-balanceOf}.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-balanceOf}.
- */
- 'balanceOf(address)'(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.
- */
- transfer(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.
- */
- 'transfer(address,uint256)'(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-allowance}.
- */
- allowance(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-allowance}.
- */
- 'allowance(address,address)'(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.
- */
- approve(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.
- */
- 'approve(address,uint256)'(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.
- */
- transferFrom(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.
- */
- 'transferFrom(address,address,uint256)'(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.
- */
- increaseAllowance(
- spender: string,
- addedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.
- */
- 'increaseAllowance(address,uint256)'(
- spender: string,
- addedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.
- */
- decreaseAllowance(
- spender: string,
- subtractedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.
- */
- 'decreaseAllowance(address,uint256)'(
- spender: string,
- subtractedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- filters: {
- Approval(
- owner: string | null,
- spender: string | null,
- value: null,
- ): EventFilter;
-
- Transfer(from: string | null, to: string | null, value: null): EventFilter;
- };
-
- estimate: {
- /**
- * Returns the name of the token.
- */
- name(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the name of the token.
- */
- 'name()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the symbol of the token, usually a shorter version of the name.
- */
- symbol(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the symbol of the token, usually a shorter version of the name.
- */
- 'symbol()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
- */
- decimals(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
- */
- 'decimals()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-totalSupply}.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-totalSupply}.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-balanceOf}.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-balanceOf}.
- */
- 'balanceOf(address)'(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.
- */
- transfer(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.
- */
- 'transfer(address,uint256)'(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-allowance}.
- */
- allowance(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-allowance}.
- */
- 'allowance(address,address)'(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.
- */
- approve(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.
- */
- 'approve(address,uint256)'(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.
- */
- transferFrom(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.
- */
- 'transferFrom(address,address,uint256)'(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.
- */
- increaseAllowance(
- spender: string,
- addedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.
- */
- 'increaseAllowance(address,uint256)'(
- spender: string,
- addedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.
- */
- decreaseAllowance(
- spender: string,
- subtractedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.
- */
- 'decreaseAllowance(address,uint256)'(
- spender: string,
- subtractedValue: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
- };
-}
diff --git a/packages/bridge-sdk/src/contracts/ERC20Factory.ts b/packages/bridge-sdk/src/contracts/ERC20Factory.ts
deleted file mode 100644
index 3777a42..0000000
--- a/packages/bridge-sdk/src/contracts/ERC20Factory.ts
+++ /dev/null
@@ -1,332 +0,0 @@
-/* Autogenerated file. Do not edit manually. */
-/* tslint:disable */
-/* eslint-disable */
-
-import { Contract, ContractFactory, Signer } from 'ethers';
-import { Provider } from 'ethers/providers';
-import { UnsignedTransaction } from 'ethers/utils/transaction';
-
-import { TransactionOverrides } from '.';
-import { ERC20 } from './ERC20';
-
-export class ERC20Factory extends ContractFactory {
- constructor(signer?: Signer) {
- super(_abi, _bytecode, signer);
- }
-
- deploy(
- name_: string,
- symbol_: string,
- overrides?: TransactionOverrides,
- ): Promise {
- return super.deploy(name_, symbol_, overrides) as Promise;
- }
- getDeployTransaction(
- name_: string,
- symbol_: string,
- overrides?: TransactionOverrides,
- ): UnsignedTransaction {
- return super.getDeployTransaction(name_, symbol_, overrides);
- }
- attach(address: string): ERC20 {
- return super.attach(address) as ERC20;
- }
- connect(signer: Signer): ERC20Factory {
- return super.connect(signer) as ERC20Factory;
- }
- static connect(address: string, signerOrProvider: Signer | Provider): ERC20 {
- return new Contract(address, _abi, signerOrProvider) as ERC20;
- }
-}
-
-const _abi = [
- {
- inputs: [
- {
- internalType: 'string',
- name: 'name_',
- type: 'string',
- },
- {
- internalType: 'string',
- name: 'symbol_',
- type: 'string',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'constructor',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'value',
- type: 'uint256',
- },
- ],
- name: 'Approval',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'from',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'to',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'value',
- type: 'uint256',
- },
- ],
- name: 'Transfer',
- type: 'event',
- },
- {
- inputs: [],
- name: 'name',
- outputs: [
- {
- internalType: 'string',
- name: '',
- type: 'string',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'symbol',
- outputs: [
- {
- internalType: 'string',
- name: '',
- type: 'string',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'decimals',
- outputs: [
- {
- internalType: 'uint8',
- name: '',
- type: 'uint8',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'totalSupply',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'account',
- type: 'address',
- },
- ],
- name: 'balanceOf',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'recipient',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'transfer',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- ],
- name: 'allowance',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'approve',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'sender',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'recipient',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'transferFrom',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'addedValue',
- type: 'uint256',
- },
- ],
- name: 'increaseAllowance',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'subtractedValue',
- type: 'uint256',
- },
- ],
- name: 'decreaseAllowance',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
-];
-
-const _bytecode =
- '0x60806040523480156200001157600080fd5b506040516200139f3803806200139f833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b506040525050508160039080519060200190620001cd9291906200020b565b508060049080519060200190620001e69291906200020b565b506012600560006101000a81548160ff021916908360ff1602179055505050620002b1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024e57805160ff19168380011785556200027f565b828001600101855582156200027f579182015b828111156200027e57825182559160200191906001019062000261565b5b5090506200028e919062000292565b5090565b5b80821115620002ad57600081600090555060010162000293565b5090565b6110de80620002c16000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025857806370a08231146102bc57806395d89b4114610314578063a457c2d714610397578063a9059cbb146103fb578063dd62ed3e1461045f576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019557806323b872dd146101b3578063313ce56714610237575b600080fd5b6100b66104d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b60405180821515815260200191505060405180910390f35b61019d610597565b6040518082815260200191505060405180910390f35b61021f600480360360608110156101c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105a1565b60405180821515815260200191505060405180910390f35b61023f61067a565b604051808260ff16815260200191505060405180910390f35b6102a46004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610691565b60405180821515815260200191505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610744565b6040518082815260200191505060405180910390f35b61031c61078c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035c578082015181840152602081019050610341565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103e3600480360360408110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b60405180821515815260200191505060405180910390f35b6104476004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108fb565b60405180821515815260200191505060405180910390f35b6104c16004803603604081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610919565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561056f5780601f106105445761010080835404028352916020019161056f565b820191906000526020600020905b81548152906001019060200180831161055257829003601f168201915b5050505050905090565b600061058d6105866109a0565b84846109a8565b6001905092915050565b6000600254905090565b60006105ae848484610b9f565b61066f846105ba6109a0565b61066a8560405180606001604052806028815260200161101360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106206109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061073a61069e6109a0565b8461073585600160006106af6109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6109a8565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b60006108f161083b6109a0565b846108ec8560405180606001604052806025815260200161108460259139600160006108656109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b6001905092915050565b600061090f6109086109a0565b8484610b9f565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fcb6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061103b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fa86023913960400191505060405180910390fd5b610cb6838383610fa2565b610d2181604051806060016040528060268152602001610fed602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed2578082015181840152602081019050610eb7565b50505050905090810190601f168015610eff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bd3f1ebbd37f184285799523b3026426208876513625827f88611ecf03a6e1e864736f6c634300060c0033';
diff --git a/packages/bridge-sdk/src/contracts/IERC20.d.ts b/packages/bridge-sdk/src/contracts/IERC20.d.ts
deleted file mode 100644
index bdb82de..0000000
--- a/packages/bridge-sdk/src/contracts/IERC20.d.ts
+++ /dev/null
@@ -1,388 +0,0 @@
-/* Autogenerated file. Do not edit manually. */
-/* tslint:disable */
-/* eslint-disable */
-
-import { Contract, ContractTransaction, EventFilter, Signer } from 'ethers';
-import { Listener, Provider } from 'ethers/providers';
-import { Arrayish, BigNumber, BigNumberish, Interface } from 'ethers/utils';
-import {
- TransactionOverrides,
- TypedEventDescription,
- TypedFunctionDescription,
-} from '.';
-
-interface IERC20Interface extends Interface {
- functions: {
- totalSupply: TypedFunctionDescription<{ encode([]: []): string }>;
-
- balanceOf: TypedFunctionDescription<{
- encode([account]: [string]): string;
- }>;
-
- transfer: TypedFunctionDescription<{
- encode([recipient, amount]: [string, BigNumberish]): string;
- }>;
-
- allowance: TypedFunctionDescription<{
- encode([owner, spender]: [string, string]): string;
- }>;
-
- approve: TypedFunctionDescription<{
- encode([spender, amount]: [string, BigNumberish]): string;
- }>;
-
- transferFrom: TypedFunctionDescription<{
- encode([sender, recipient, amount]: [
- string,
- string,
- BigNumberish,
- ]): string;
- }>;
- };
-
- events: {
- Approval: TypedEventDescription<{
- encodeTopics([owner, spender, value]: [
- string | null,
- string | null,
- null,
- ]): string[];
- }>;
-
- Transfer: TypedEventDescription<{
- encodeTopics([from, to, value]: [
- string | null,
- string | null,
- null,
- ]): string[];
- }>;
- };
-}
-
-export class IERC20 extends Contract {
- connect(signerOrProvider: Signer | Provider | string): IERC20;
- attach(addressOrName: string): IERC20;
- deployed(): Promise;
-
- on(event: EventFilter | string, listener: Listener): IERC20;
- once(event: EventFilter | string, listener: Listener): IERC20;
- addListener(eventName: EventFilter | string, listener: Listener): IERC20;
- removeAllListeners(eventName: EventFilter | string): IERC20;
- removeListener(eventName: any, listener: Listener): IERC20;
-
- interface: IERC20Interface;
-
- functions: {
- /**
- * Returns the amount of tokens in existence.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the amount of tokens in existence.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- 'balanceOf(address)'(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transfer(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transfer(address,uint256)'(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- allowance(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- 'allowance(address,address)'(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- approve(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- 'approve(address,uint256)'(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transferFrom(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transferFrom(address,address,uint256)'(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
- };
-
- /**
- * Returns the amount of tokens in existence.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the amount of tokens in existence.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- 'balanceOf(address)'(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transfer(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transfer(address,uint256)'(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- allowance(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- 'allowance(address,address)'(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- approve(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- 'approve(address,uint256)'(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transferFrom(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transferFrom(address,address,uint256)'(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- filters: {
- Approval(
- owner: string | null,
- spender: string | null,
- value: null,
- ): EventFilter;
-
- Transfer(from: string | null, to: string | null, value: null): EventFilter;
- };
-
- estimate: {
- /**
- * Returns the amount of tokens in existence.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the amount of tokens in existence.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- 'balanceOf(address)'(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transfer(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transfer(address,uint256)'(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- allowance(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- 'allowance(address,address)'(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- approve(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- 'approve(address,uint256)'(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transferFrom(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transferFrom(address,address,uint256)'(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
- };
-}
diff --git a/packages/bridge-sdk/src/contracts/IERC20Factory.ts b/packages/bridge-sdk/src/contracts/IERC20Factory.ts
deleted file mode 100644
index d243672..0000000
--- a/packages/bridge-sdk/src/contracts/IERC20Factory.ts
+++ /dev/null
@@ -1,200 +0,0 @@
-/* Autogenerated file. Do not edit manually. */
-/* tslint:disable */
-/* eslint-disable */
-
-import { Contract, Signer } from 'ethers';
-import { Provider } from 'ethers/providers';
-
-import { IERC20 } from './IERC20';
-
-export class IERC20Factory {
- static connect(address: string, signerOrProvider: Signer | Provider): IERC20 {
- return new Contract(address, _abi, signerOrProvider) as IERC20;
- }
-}
-
-const _abi = [
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'value',
- type: 'uint256',
- },
- ],
- name: 'Approval',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'from',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'to',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'value',
- type: 'uint256',
- },
- ],
- name: 'Transfer',
- type: 'event',
- },
- {
- inputs: [],
- name: 'totalSupply',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'account',
- type: 'address',
- },
- ],
- name: 'balanceOf',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'recipient',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'transfer',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- ],
- name: 'allowance',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'approve',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'sender',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'recipient',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'transferFrom',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
-];
diff --git a/packages/bridge-sdk/src/contracts/WETH.d.ts b/packages/bridge-sdk/src/contracts/WETH.d.ts
deleted file mode 100644
index f37b134..0000000
--- a/packages/bridge-sdk/src/contracts/WETH.d.ts
+++ /dev/null
@@ -1,436 +0,0 @@
-/* Autogenerated file. Do not edit manually. */
-/* tslint:disable */
-/* eslint-disable */
-
-import { Contract, ContractTransaction, EventFilter, Signer } from 'ethers';
-import { Listener, Provider } from 'ethers/providers';
-import { Arrayish, BigNumber, BigNumberish, Interface } from 'ethers/utils';
-import {
- TransactionOverrides,
- TypedEventDescription,
- TypedFunctionDescription,
-} from '.';
-
-interface WETHInterface extends Interface {
- functions: {
- allowance: TypedFunctionDescription<{
- encode([owner, spender]: [string, string]): string;
- }>;
-
- approve: TypedFunctionDescription<{
- encode([spender, amount]: [string, BigNumberish]): string;
- }>;
-
- balanceOf: TypedFunctionDescription<{
- encode([account]: [string]): string;
- }>;
-
- totalSupply: TypedFunctionDescription<{ encode([]: []): string }>;
-
- transfer: TypedFunctionDescription<{
- encode([recipient, amount]: [string, BigNumberish]): string;
- }>;
-
- transferFrom: TypedFunctionDescription<{
- encode([sender, recipient, amount]: [
- string,
- string,
- BigNumberish,
- ]): string;
- }>;
-
- deposit: TypedFunctionDescription<{ encode([]: []): string }>;
-
- withdraw: TypedFunctionDescription<{
- encode([amount]: [BigNumberish]): string;
- }>;
- };
-
- events: {
- Approval: TypedEventDescription<{
- encodeTopics([owner, spender, value]: [
- string | null,
- string | null,
- null,
- ]): string[];
- }>;
-
- Transfer: TypedEventDescription<{
- encodeTopics([from, to, value]: [
- string | null,
- string | null,
- null,
- ]): string[];
- }>;
- };
-}
-
-export class WETH extends Contract {
- connect(signerOrProvider: Signer | Provider | string): WETH;
- attach(addressOrName: string): WETH;
- deployed(): Promise;
-
- on(event: EventFilter | string, listener: Listener): WETH;
- once(event: EventFilter | string, listener: Listener): WETH;
- addListener(eventName: EventFilter | string, listener: Listener): WETH;
- removeAllListeners(eventName: EventFilter | string): WETH;
- removeListener(eventName: any, listener: Listener): WETH;
-
- interface: WETHInterface;
-
- functions: {
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- allowance(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- 'allowance(address,address)'(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- approve(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- 'approve(address,uint256)'(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- 'balanceOf(address)'(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens in existence.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the amount of tokens in existence.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transfer(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transfer(address,uint256)'(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transferFrom(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transferFrom(address,address,uint256)'(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- deposit(overrides?: TransactionOverrides): Promise;
-
- 'deposit()'(overrides?: TransactionOverrides): Promise;
-
- withdraw(
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'withdraw(uint256)'(
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
- };
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- allowance(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- 'allowance(address,address)'(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- approve(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- 'approve(address,uint256)'(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- 'balanceOf(address)'(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens in existence.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the amount of tokens in existence.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transfer(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transfer(address,uint256)'(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transferFrom(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transferFrom(address,address,uint256)'(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- deposit(overrides?: TransactionOverrides): Promise;
-
- 'deposit()'(overrides?: TransactionOverrides): Promise;
-
- withdraw(
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'withdraw(uint256)'(
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- filters: {
- Approval(
- owner: string | null,
- spender: string | null,
- value: null,
- ): EventFilter;
-
- Transfer(from: string | null, to: string | null, value: null): EventFilter;
- };
-
- estimate: {
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- allowance(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.
- */
- 'allowance(address,address)'(
- owner: string,
- spender: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- approve(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.
- */
- 'approve(address,uint256)'(
- spender: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens owned by `account`.
- */
- 'balanceOf(address)'(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the amount of tokens in existence.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the amount of tokens in existence.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transfer(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transfer(address,uint256)'(
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- transferFrom(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.
- */
- 'transferFrom(address,address,uint256)'(
- sender: string,
- recipient: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- deposit(overrides?: TransactionOverrides): Promise;
-
- 'deposit()'(overrides?: TransactionOverrides): Promise;
-
- withdraw(
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'withdraw(uint256)'(
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
- };
-}
diff --git a/packages/bridge-sdk/src/contracts/WETHFactory.ts b/packages/bridge-sdk/src/contracts/WETHFactory.ts
deleted file mode 100644
index 62578ce..0000000
--- a/packages/bridge-sdk/src/contracts/WETHFactory.ts
+++ /dev/null
@@ -1,220 +0,0 @@
-/* Autogenerated file. Do not edit manually. */
-/* tslint:disable */
-/* eslint-disable */
-
-import { Contract, Signer } from 'ethers';
-import { Provider } from 'ethers/providers';
-
-import { WETH } from './WETH';
-
-export class WETHFactory {
- static connect(address: string, signerOrProvider: Signer | Provider): WETH {
- return new Contract(address, _abi, signerOrProvider) as WETH;
- }
-}
-
-const _abi = [
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'value',
- type: 'uint256',
- },
- ],
- name: 'Approval',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: 'address',
- name: 'from',
- type: 'address',
- },
- {
- indexed: true,
- internalType: 'address',
- name: 'to',
- type: 'address',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'value',
- type: 'uint256',
- },
- ],
- name: 'Transfer',
- type: 'event',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'owner',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- ],
- name: 'allowance',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'spender',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'approve',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'account',
- type: 'address',
- },
- ],
- name: 'balanceOf',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'totalSupply',
- outputs: [
- {
- internalType: 'uint256',
- name: '',
- type: 'uint256',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'recipient',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'transfer',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'sender',
- type: 'address',
- },
- {
- internalType: 'address',
- name: 'recipient',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'transferFrom',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [],
- name: 'deposit',
- outputs: [],
- stateMutability: 'payable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- ],
- name: 'withdraw',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
-];
diff --git a/packages/bridge-sdk/src/contracts/Wormhole.d.ts b/packages/bridge-sdk/src/contracts/Wormhole.d.ts
deleted file mode 100644
index 0334b15..0000000
--- a/packages/bridge-sdk/src/contracts/Wormhole.d.ts
+++ /dev/null
@@ -1,556 +0,0 @@
-/* Autogenerated file. Do not edit manually. */
-/* tslint:disable */
-/* eslint-disable */
-
-import { Contract, ContractTransaction, EventFilter, Signer } from 'ethers';
-import { Listener, Provider } from 'ethers/providers';
-import { Arrayish, BigNumber, BigNumberish, Interface } from 'ethers/utils';
-import {
- TransactionOverrides,
- TypedEventDescription,
- TypedFunctionDescription,
-} from '.';
-
-interface WormholeInterface extends Interface {
- functions: {
- consumedVAAs: TypedFunctionDescription<{ encode([]: [Arrayish]): string }>;
-
- guardian_set_expirity: TypedFunctionDescription<{ encode([]: []): string }>;
-
- guardian_set_index: TypedFunctionDescription<{ encode([]: []): string }>;
-
- guardian_sets: TypedFunctionDescription<{
- encode([]: [BigNumberish]): string;
- }>;
-
- isWrappedAsset: TypedFunctionDescription<{ encode([]: [string]): string }>;
-
- wrappedAssetMaster: TypedFunctionDescription<{ encode([]: []): string }>;
-
- wrappedAssets: TypedFunctionDescription<{ encode([]: [Arrayish]): string }>;
-
- getGuardianSet: TypedFunctionDescription<{
- encode([idx]: [BigNumberish]): string;
- }>;
-
- submitVAA: TypedFunctionDescription<{ encode([vaa]: [Arrayish]): string }>;
-
- parseAndVerifyVAA: TypedFunctionDescription<{
- encode([vaa]: [Arrayish]): string;
- }>;
-
- lockAssets: TypedFunctionDescription<{
- encode([asset, amount, recipient, target_chain, nonce, refund_dust]: [
- string,
- BigNumberish,
- Arrayish,
- BigNumberish,
- BigNumberish,
- boolean,
- ]): string;
- }>;
-
- lockETH: TypedFunctionDescription<{
- encode([recipient, target_chain, nonce]: [
- Arrayish,
- BigNumberish,
- BigNumberish,
- ]): string;
- }>;
- };
-
- events: {
- LogGuardianSetChanged: TypedEventDescription<{
- encodeTopics([oldGuardianIndex, newGuardianIndex]: [
- null,
- null,
- ]): string[];
- }>;
-
- LogTokensLocked: TypedEventDescription<{
- encodeTopics([
- target_chain,
- token_chain,
- token_decimals,
- token,
- sender,
- recipient,
- amount,
- nonce,
- ]: [
- null,
- null,
- null,
- Arrayish | null,
- Arrayish | null,
- null,
- null,
- null,
- ]): string[];
- }>;
- };
-}
-
-export class Wormhole extends Contract {
- connect(signerOrProvider: Signer | Provider | string): Wormhole;
- attach(addressOrName: string): Wormhole;
- deployed(): Promise;
-
- on(event: EventFilter | string, listener: Listener): Wormhole;
- once(event: EventFilter | string, listener: Listener): Wormhole;
- addListener(eventName: EventFilter | string, listener: Listener): Wormhole;
- removeAllListeners(eventName: EventFilter | string): Wormhole;
- removeListener(eventName: any, listener: Listener): Wormhole;
-
- interface: WormholeInterface;
-
- functions: {
- consumedVAAs(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'consumedVAAs(bytes32)'(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- guardian_set_expirity(overrides?: TransactionOverrides): Promise;
-
- 'guardian_set_expirity()'(
- overrides?: TransactionOverrides,
- ): Promise;
-
- guardian_set_index(overrides?: TransactionOverrides): Promise;
-
- 'guardian_set_index()'(overrides?: TransactionOverrides): Promise;
-
- guardian_sets(
- arg0: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'guardian_sets(uint32)'(
- arg0: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- isWrappedAsset(
- arg0: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'isWrappedAsset(address)'(
- arg0: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- wrappedAssetMaster(overrides?: TransactionOverrides): Promise;
-
- 'wrappedAssetMaster()'(overrides?: TransactionOverrides): Promise;
-
- wrappedAssets(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'wrappedAssets(bytes32)'(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- getGuardianSet(
- idx: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise<{
- keys: string[];
- expiration_time: number;
- 0: string[];
- 1: number;
- }>;
-
- 'getGuardianSet(uint32)'(
- idx: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise<{
- keys: string[];
- expiration_time: number;
- 0: string[];
- 1: number;
- }>;
-
- submitVAA(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'submitVAA(bytes)'(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- parseAndVerifyVAA(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise<{
- version: number;
- hash: string;
- guardian_set_index: number;
- timestamp: number;
- action: number;
- payload: string;
- 0: number;
- 1: string;
- 2: number;
- 3: number;
- 4: number;
- 5: string;
- }>;
-
- 'parseAndVerifyVAA(bytes)'(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise<{
- version: number;
- hash: string;
- guardian_set_index: number;
- timestamp: number;
- action: number;
- payload: string;
- 0: number;
- 1: string;
- 2: number;
- 3: number;
- 4: number;
- 5: string;
- }>;
-
- lockAssets(
- asset: string,
- amount: BigNumberish,
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- refund_dust: boolean,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'lockAssets(address,uint256,bytes32,uint8,uint32,bool)'(
- asset: string,
- amount: BigNumberish,
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- refund_dust: boolean,
- overrides?: TransactionOverrides,
- ): Promise;
-
- lockETH(
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'lockETH(bytes32,uint8,uint32)'(
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
- };
-
- consumedVAAs(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'consumedVAAs(bytes32)'(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- guardian_set_expirity(overrides?: TransactionOverrides): Promise;
-
- 'guardian_set_expirity()'(overrides?: TransactionOverrides): Promise;
-
- guardian_set_index(overrides?: TransactionOverrides): Promise;
-
- 'guardian_set_index()'(overrides?: TransactionOverrides): Promise;
-
- guardian_sets(
- arg0: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'guardian_sets(uint32)'(
- arg0: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- isWrappedAsset(
- arg0: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'isWrappedAsset(address)'(
- arg0: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- wrappedAssetMaster(overrides?: TransactionOverrides): Promise;
-
- 'wrappedAssetMaster()'(overrides?: TransactionOverrides): Promise;
-
- wrappedAssets(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'wrappedAssets(bytes32)'(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- getGuardianSet(
- idx: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise<{
- keys: string[];
- expiration_time: number;
- 0: string[];
- 1: number;
- }>;
-
- 'getGuardianSet(uint32)'(
- idx: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise<{
- keys: string[];
- expiration_time: number;
- 0: string[];
- 1: number;
- }>;
-
- submitVAA(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'submitVAA(bytes)'(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- parseAndVerifyVAA(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise<{
- version: number;
- hash: string;
- guardian_set_index: number;
- timestamp: number;
- action: number;
- payload: string;
- 0: number;
- 1: string;
- 2: number;
- 3: number;
- 4: number;
- 5: string;
- }>;
-
- 'parseAndVerifyVAA(bytes)'(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise<{
- version: number;
- hash: string;
- guardian_set_index: number;
- timestamp: number;
- action: number;
- payload: string;
- 0: number;
- 1: string;
- 2: number;
- 3: number;
- 4: number;
- 5: string;
- }>;
-
- lockAssets(
- asset: string,
- amount: BigNumberish,
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- refund_dust: boolean,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'lockAssets(address,uint256,bytes32,uint8,uint32,bool)'(
- asset: string,
- amount: BigNumberish,
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- refund_dust: boolean,
- overrides?: TransactionOverrides,
- ): Promise;
-
- lockETH(
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'lockETH(bytes32,uint8,uint32)'(
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- filters: {
- LogGuardianSetChanged(
- oldGuardianIndex: null,
- newGuardianIndex: null,
- ): EventFilter;
-
- LogTokensLocked(
- target_chain: null,
- token_chain: null,
- token_decimals: null,
- token: Arrayish | null,
- sender: Arrayish | null,
- recipient: null,
- amount: null,
- nonce: null,
- ): EventFilter;
- };
-
- estimate: {
- consumedVAAs(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'consumedVAAs(bytes32)'(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- guardian_set_expirity(overrides?: TransactionOverrides): Promise;
-
- 'guardian_set_expirity()'(
- overrides?: TransactionOverrides,
- ): Promise;
-
- guardian_set_index(overrides?: TransactionOverrides): Promise;
-
- 'guardian_set_index()'(
- overrides?: TransactionOverrides,
- ): Promise;
-
- guardian_sets(
- arg0: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'guardian_sets(uint32)'(
- arg0: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- isWrappedAsset(
- arg0: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'isWrappedAsset(address)'(
- arg0: string,
- overrides?: TransactionOverrides,
- ): Promise;
-
- wrappedAssetMaster(overrides?: TransactionOverrides): Promise;
-
- 'wrappedAssetMaster()'(
- overrides?: TransactionOverrides,
- ): Promise;
-
- wrappedAssets(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'wrappedAssets(bytes32)'(
- arg0: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- getGuardianSet(
- idx: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'getGuardianSet(uint32)'(
- idx: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- submitVAA(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'submitVAA(bytes)'(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- parseAndVerifyVAA(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'parseAndVerifyVAA(bytes)'(
- vaa: Arrayish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- lockAssets(
- asset: string,
- amount: BigNumberish,
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- refund_dust: boolean,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'lockAssets(address,uint256,bytes32,uint8,uint32,bool)'(
- asset: string,
- amount: BigNumberish,
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- refund_dust: boolean,
- overrides?: TransactionOverrides,
- ): Promise;
-
- lockETH(
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'lockETH(bytes32,uint8,uint32)'(
- recipient: Arrayish,
- target_chain: BigNumberish,
- nonce: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
- };
-}
diff --git a/packages/bridge-sdk/src/contracts/WormholeFactory.ts b/packages/bridge-sdk/src/contracts/WormholeFactory.ts
deleted file mode 100644
index 2bef261..0000000
--- a/packages/bridge-sdk/src/contracts/WormholeFactory.ts
+++ /dev/null
@@ -1,448 +0,0 @@
-/* Autogenerated file. Do not edit manually. */
-/* tslint:disable */
-/* eslint-disable */
-
-import { Contract, ContractFactory, Signer } from 'ethers';
-import { Provider } from 'ethers/providers';
-import { UnsignedTransaction } from 'ethers/utils/transaction';
-import { BigNumberish } from 'ethers/utils';
-
-import { TransactionOverrides } from '.';
-import { Wormhole } from './Wormhole';
-
-export class WormholeFactory extends ContractFactory {
- constructor(signer?: Signer) {
- super(_abi, _bytecode, signer);
- }
-
- deploy(
- initial_guardian_set: { keys: string[]; expiration_time: BigNumberish },
- wrapped_asset_master: string,
- _guardian_set_expirity: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise {
- return super.deploy(
- initial_guardian_set,
- wrapped_asset_master,
- _guardian_set_expirity,
- overrides,
- ) as Promise;
- }
- getDeployTransaction(
- initial_guardian_set: { keys: string[]; expiration_time: BigNumberish },
- wrapped_asset_master: string,
- _guardian_set_expirity: BigNumberish,
- overrides?: TransactionOverrides,
- ): UnsignedTransaction {
- return super.getDeployTransaction(
- initial_guardian_set,
- wrapped_asset_master,
- _guardian_set_expirity,
- overrides,
- );
- }
- attach(address: string): Wormhole {
- return super.attach(address) as Wormhole;
- }
- connect(signer: Signer): WormholeFactory {
- return super.connect(signer) as WormholeFactory;
- }
- static connect(
- address: string,
- signerOrProvider: Signer | Provider,
- ): Wormhole {
- return new Contract(address, _abi, signerOrProvider) as Wormhole;
- }
-}
-
-const _abi = [
- {
- inputs: [
- {
- components: [
- {
- internalType: 'address[]',
- name: 'keys',
- type: 'address[]',
- },
- {
- internalType: 'uint32',
- name: 'expiration_time',
- type: 'uint32',
- },
- ],
- internalType: 'struct Wormhole.GuardianSet',
- name: 'initial_guardian_set',
- type: 'tuple',
- },
- {
- internalType: 'address',
- name: 'wrapped_asset_master',
- type: 'address',
- },
- {
- internalType: 'uint32',
- name: '_guardian_set_expirity',
- type: 'uint32',
- },
- ],
- stateMutability: 'nonpayable',
- type: 'constructor',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint32',
- name: 'oldGuardianIndex',
- type: 'uint32',
- },
- {
- indexed: false,
- internalType: 'uint32',
- name: 'newGuardianIndex',
- type: 'uint32',
- },
- ],
- name: 'LogGuardianSetChanged',
- type: 'event',
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: 'uint8',
- name: 'target_chain',
- type: 'uint8',
- },
- {
- indexed: false,
- internalType: 'uint8',
- name: 'token_chain',
- type: 'uint8',
- },
- {
- indexed: false,
- internalType: 'uint8',
- name: 'token_decimals',
- type: 'uint8',
- },
- {
- indexed: true,
- internalType: 'bytes32',
- name: 'token',
- type: 'bytes32',
- },
- {
- indexed: true,
- internalType: 'bytes32',
- name: 'sender',
- type: 'bytes32',
- },
- {
- indexed: false,
- internalType: 'bytes32',
- name: 'recipient',
- type: 'bytes32',
- },
- {
- indexed: false,
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- {
- indexed: false,
- internalType: 'uint32',
- name: 'nonce',
- type: 'uint32',
- },
- ],
- name: 'LogTokensLocked',
- type: 'event',
- },
- {
- stateMutability: 'payable',
- type: 'fallback',
- },
- {
- inputs: [
- {
- internalType: 'bytes32',
- name: '',
- type: 'bytes32',
- },
- ],
- name: 'consumedVAAs',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'guardian_set_expirity',
- outputs: [
- {
- internalType: 'uint32',
- name: '',
- type: 'uint32',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'guardian_set_index',
- outputs: [
- {
- internalType: 'uint32',
- name: '',
- type: 'uint32',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'uint32',
- name: '',
- type: 'uint32',
- },
- ],
- name: 'guardian_sets',
- outputs: [
- {
- internalType: 'uint32',
- name: 'expiration_time',
- type: 'uint32',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: '',
- type: 'address',
- },
- ],
- name: 'isWrappedAsset',
- outputs: [
- {
- internalType: 'bool',
- name: '',
- type: 'bool',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [],
- name: 'wrappedAssetMaster',
- outputs: [
- {
- internalType: 'address',
- name: '',
- type: 'address',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'bytes32',
- name: '',
- type: 'bytes32',
- },
- ],
- name: 'wrappedAssets',
- outputs: [
- {
- internalType: 'address',
- name: '',
- type: 'address',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- stateMutability: 'payable',
- type: 'receive',
- },
- {
- inputs: [
- {
- internalType: 'uint32',
- name: 'idx',
- type: 'uint32',
- },
- ],
- name: 'getGuardianSet',
- outputs: [
- {
- components: [
- {
- internalType: 'address[]',
- name: 'keys',
- type: 'address[]',
- },
- {
- internalType: 'uint32',
- name: 'expiration_time',
- type: 'uint32',
- },
- ],
- internalType: 'struct Wormhole.GuardianSet',
- name: 'gs',
- type: 'tuple',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'bytes',
- name: 'vaa',
- type: 'bytes',
- },
- ],
- name: 'submitVAA',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'bytes',
- name: 'vaa',
- type: 'bytes',
- },
- ],
- name: 'parseAndVerifyVAA',
- outputs: [
- {
- components: [
- {
- internalType: 'uint8',
- name: 'version',
- type: 'uint8',
- },
- {
- internalType: 'bytes32',
- name: 'hash',
- type: 'bytes32',
- },
- {
- internalType: 'uint32',
- name: 'guardian_set_index',
- type: 'uint32',
- },
- {
- internalType: 'uint32',
- name: 'timestamp',
- type: 'uint32',
- },
- {
- internalType: 'uint8',
- name: 'action',
- type: 'uint8',
- },
- {
- internalType: 'bytes',
- name: 'payload',
- type: 'bytes',
- },
- ],
- internalType: 'struct Wormhole.ParsedVAA',
- name: 'parsed_vaa',
- type: 'tuple',
- },
- ],
- stateMutability: 'view',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'address',
- name: 'asset',
- type: 'address',
- },
- {
- internalType: 'uint256',
- name: 'amount',
- type: 'uint256',
- },
- {
- internalType: 'bytes32',
- name: 'recipient',
- type: 'bytes32',
- },
- {
- internalType: 'uint8',
- name: 'target_chain',
- type: 'uint8',
- },
- {
- internalType: 'uint32',
- name: 'nonce',
- type: 'uint32',
- },
- {
- internalType: 'bool',
- name: 'refund_dust',
- type: 'bool',
- },
- ],
- name: 'lockAssets',
- outputs: [],
- stateMutability: 'nonpayable',
- type: 'function',
- },
- {
- inputs: [
- {
- internalType: 'bytes32',
- name: 'recipient',
- type: 'bytes32',
- },
- {
- internalType: 'uint8',
- name: 'target_chain',
- type: 'uint8',
- },
- {
- internalType: 'uint32',
- name: 'nonce',
- type: 'uint32',
- },
- ],
- name: 'lockETH',
- outputs: [],
- stateMutability: 'payable',
- type: 'function',
- },
-];
-
-const _bytecode =
- '0x60806040526002600160146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b50604051620044543803806200445483398181016040528101906200005391906200033e565b600160008190555082600260008063ffffffff1681526020019081526020016000206000820151816000019080519060200190620000939291906200014b565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055509050506000600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200047c565b828054828255906000526020600020908101928215620001c7579160200282015b82811115620001c65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200016c565b5b509050620001d69190620001da565b5090565b5b808211156200021357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620001db565b5090565b600081519050620002288162000448565b92915050565b600082601f8301126200024057600080fd5b8151620002576200025182620003db565b620003ad565b915081818352602084019350602081019050838560208402820111156200027d57600080fd5b60005b83811015620002b1578162000296888262000217565b84526020840193506020830192505060018101905062000280565b5050505092915050565b600060408284031215620002ce57600080fd5b620002da6040620003ad565b9050600082015167ffffffffffffffff811115620002f757600080fd5b62000305848285016200022e565b60008301525060206200031b8482850162000327565b60208301525092915050565b600081519050620003388162000462565b92915050565b6000806000606084860312156200035457600080fd5b600084015167ffffffffffffffff8111156200036f57600080fd5b6200037d86828701620002bb565b9350506020620003908682870162000217565b9250506040620003a38682870162000327565b9150509250925092565b6000604051905081810181811067ffffffffffffffff82111715620003d157600080fd5b8060405250919050565b600067ffffffffffffffff821115620003f357600080fd5b602082029050602081019050919050565b6000620004118262000418565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600063ffffffff82169050919050565b620004538162000404565b81146200045f57600080fd5b50565b6200046d8162000438565b81146200047957600080fd5b50565b613fc8806200048c6000396000f3fe6080604052600436106100ab5760003560e01c80637071396011610064578063707139601461024d578063822d82b31461027657806399da1d3c146102a1578063a31fe409146102cc578063b6694c2a14610309578063f951975a14610346576100eb565b80631a2be4da146101265780633bc0aee61461016357806342b0aefa1461018c5780634db47840146101c957806358d62e46146101f4578063600b9aa614610210576100eb565b366100eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100e290613927565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011d90613927565b60405180910390fd5b34801561013257600080fd5b5061014d60048036038101906101489190612a8a565b610383565b60405161015a9190613845565b60405180910390f35b34801561016f57600080fd5b5061018a60048036038101906101859190612c06565b6103a3565b005b34801561019857600080fd5b506101b360048036038101906101ae9190612c74565b610526565b6040516101c09190613c2b565b60405180910390f35b3480156101d557600080fd5b506101de610554565b6040516101eb9190613c2b565b60405180910390f35b61020e60048036038101906102099190612bb7565b61056a565b005b34801561021c57600080fd5b5061023760048036038101906102329190612c06565b6107f0565b6040516102449190613c09565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190612ab3565b611094565b005b34801561028257600080fd5b5061028b61172a565b6040516102989190613c2b565b60405180910390f35b3480156102ad57600080fd5b506102b6611740565b6040516102c39190613786565b60405180910390f35b3480156102d857600080fd5b506102f360048036038101906102ee9190612b65565b611766565b6040516103009190613845565b60405180910390f35b34801561031557600080fd5b50610330600480360381019061032b9190612b65565b611786565b60405161033d9190613786565b60405180910390f35b34801561035257600080fd5b5061036d60048036038101906103689190612c74565b6117b9565b60405161037a9190613be7565b60405180910390f35b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156103e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e090613ba7565b60405180910390fd5b60026000819055506103f961283e565b61040383836107f0565b90506001816080015160ff16141561048b57600360009054906101000a900463ffffffff1663ffffffff16816040015163ffffffff1614610479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047090613987565b60405180910390fd5b6104868160a001516118a6565b6104e9565b6010816080015160ff1614156104ad576104a88160a00151611b87565b6104e8565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104df906138e7565b60405180910390fd5b5b6001600460008360200151815260200190815260200160002060006101000a81548160ff0219169083151502179055505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b600360049054906101000a900463ffffffff1681565b600260005414156105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a790613ba7565b60405180910390fd5b6002600081905550600160149054906101000a900460ff1660ff168260ff161415610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790613a27565b60405180910390fd5b6000610629633b9aca0034611f0590919063ffffffff16565b90506000610644633b9aca0034611f5b90919063ffffffff16565b9050600081141561068a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068190613a87565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156106d0573d6000803e3d6000fd5b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db08334036040518263ffffffff1660e01b81526004016000604051808303818588803b15801561072f57600080fd5b505af1158015610743573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab886600160149054906101000a900460ff1660098a878a6040516107d996959493929190613ca6565b60405180910390a350506001600081905550505050565b6107f861283e565b610850600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b816000019060ff16908160ff16815250506001816000015160ff16146108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a2906139e7565b60405180910390fd5b610903600184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061200f90919063ffffffff16565b816040019063ffffffff16908163ffffffff16815250506000610974600585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b60ff16905060008160420260060190506109db8186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061200f90919063ffffffff16565b836060019063ffffffff16908163ffffffff1681525050610a508182878790500387878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061206d9092919063ffffffff16565b80519060200120836020018181525050600460008460200151815260200190815260200160002060009054906101000a900460ff1615610ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abc90613907565b60405180910390fd5b610acd612889565b60026000856040015163ffffffff1663ffffffff16815260200190815260200160002060405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610b8057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b36575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050600081600001515111610bf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf090613bc7565b60405180910390fd5b6000816020015163ffffffff161480610c1b575042816020015163ffffffff16115b610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190613b07565b60405180910390fd5b826001600a60026003600a8660000151510281610c7357fe5b040281610c7c57fe5b04011115610cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb690613ac7565b60405180910390fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905060005b84811015610fb2576000610d4e604283026006018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b90508260010b8160ff1613610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90613b47565b60405180910390fd5b8060ff1692506000610dfd604284026007018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061212f90919063ffffffff16565b90506000610e5e604285026027018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061212f90919063ffffffff16565b90506000610ebf604286026047018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b9050601b8101905086600001518460ff1681518110610eda57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660018b6020015183868660405160008152602001604052604051610f1f9493929190613860565b6020604051602081039080840390855afa158015610f41573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890613a47565b60405180910390fd5b505050508080600101915050610ce7565b5061100d6004840188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611fb190919063ffffffff16565b856080019060ff16908160ff16815250506110826005840160058501898990500389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061206d9092919063ffffffff16565b8560a001819052505050505092915050565b600260005414156110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d190613ba7565b60405180910390fd5b6002600081905550600160149054906101000a900460ff1660ff168360ff16141561113a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113190613a27565b60405180910390fd5b6000600160149054906101000a900460ff1690506000808873ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561119757600080fd5b505afa1580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf9190612c9d565b9050600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611395578873ffffffffffffffffffffffffffffffffffffffff16639dc29fac338a6040518363ffffffff1660e01b815260040161125e9291906137bc565b600060405180830381600087803b15801561127857600080fd5b505af115801561128c573d6000803e3d6000fd5b505050508873ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156112d657600080fd5b505afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190612c9d565b92508873ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561135657600080fd5b505afa15801561136a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138e9190612b8e565b9150611677565b60008973ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113d091906137a1565b60206040518083038186803b1580156113e857600080fd5b505afa1580156113fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114209190612c4b565b905061144f33308b8d73ffffffffffffffffffffffffffffffffffffffff1661218d909392919063ffffffff16565b60008a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161148a91906137a1565b60206040518083038186803b1580156114a257600080fd5b505afa1580156114b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114da9190612c4b565b90506114ef828261221690919063ffffffff16565b995060098360ff1611156115735760008a905061151e6009850360ff16600a0a8c611f5b90919063ffffffff16565b9a50861561156d5761156c336115466009870360ff16600a0a84611f0590919063ffffffff16565b8e73ffffffffffffffffffffffffffffffffffffffff166122669092919063ffffffff16565b5b60099350505b67ffffffffffffffff801661161760098d73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156115c957600080fd5b505afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116019190612c9d565b0360ff16600a0a83611f5b90919063ffffffff16565b1115611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f906138c7565b60405180910390fd5b8a73ffffffffffffffffffffffffffffffffffffffff1660001b935050505b60008814156116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290613a87565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1660001b827f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab88886858c8e8c60405161170f96959493929190613d07565b60405180910390a35050506001600081905550505050505050565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117c1612889565b600260008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561187057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611826575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b60006118bc60008361200f90919063ffffffff16565b90506001600360009054906101000a900463ffffffff160163ffffffff168163ffffffff1614611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890613aa7565b60405180910390fd5b6000611937600484611fb190919063ffffffff16565b905060608160ff1667ffffffffffffffff8111801561195557600080fd5b506040519080825280602002602001820160405280156119845781602001602082028036833780820191505090505b50905060005b8260ff16811015611a075760006119b060148302600501876122ec90919063ffffffff16565b9050808383815181106119bf57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061198a565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff160217905550611a48612889565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000019080519060200190611ab49291906128a9565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff16604051611b77929190613c46565b60405180910390a1505050505050565b6000611b9d600483611fb190919063ffffffff16565b90506000611bb5600584611fb190919063ffffffff16565b90506000611bcd6032856122ec90919063ffffffff16565b90506000611be5604686611fb190919063ffffffff16565b90506000611bfd60688761235990919063ffffffff16565b90508360ff168560ff161415611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613b87565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9690613ae7565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611e0a576000611cd160478861212f90919063ffffffff16565b905060008382604051602001611ce892919061375a565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d95576000611d8360678b611fb190919063ffffffff16565b9050611d91838786846123b7565b9150505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611dd092919061381c565b600060405180830381600087803b158015611dea57600080fd5b505af1158015611dfe573d6000803e3d6000fd5b50505050505050611efd565b6000611e206053886122ec90919063ffffffff16565b905060008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6a57600080fd5b505afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea29190612c9d565b905060098160ff161115611ecf57611ecc6009820360ff16600a0a8461256090919063ffffffff16565b92505b611efa85848473ffffffffffffffffffffffffffffffffffffffff166122669092919063ffffffff16565b50505b505050505050565b6000808211611f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4090613a07565b60405180910390fd5b818381611f5257fe5b06905092915050565b6000808211611f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f96906139a7565b60405180910390fd5b818381611fa857fe5b04905092915050565b60006001820183511015611ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff1906139c7565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f906139c7565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156120b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ac906139c7565b60405180910390fd5b60608215600081146120d257604051915060208201604052612123565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561211057805183526020830192506020810190506120f3565b50868552601f19601f8301166040525050505b50809150509392505050565b60006020820183511015612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216f906139c7565b60405180910390fd5b60008260208501015190508091505092915050565b612210846323b872dd60e01b8585856040516024016121ae939291906137e5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506125d0565b50505050565b60008282111561225b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225290613947565b60405180910390fd5b818303905092915050565b6122e78363a9059cbb60e01b848460405160240161228592919061381c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506125d0565b505050565b60006014820183511015612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232c906139c7565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b600060208201835110156123a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612399906139c7565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152866037826000f59250508173ffffffffffffffffffffffffffffffffffffffff1663a7a2d3fb8686866040518463ffffffff1660e01b815260040161247b93929190613c6f565b600060405180830381600087803b15801561249557600080fd5b505af11580156124a9573d6000803e3d6000fd5b50505050816005600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050949350505050565b60008083141561257357600090506125ca565b600082840290508284828161258457fe5b04146125c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bc90613a67565b60405180910390fd5b809150505b92915050565b6060612632826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166126979092919063ffffffff16565b905060008151111561269257808060200190518101906126529190612b3c565b612691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268890613b67565b60405180910390fd5b5b505050565b60606126a684846000856126af565b90509392505050565b6060824710156126f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126eb90613967565b60405180910390fd5b6126fd856127c4565b61273c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273390613b27565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516127669190613743565b60006040518083038185875af1925050503d80600081146127a3576040519150601f19603f3d011682016040523d82523d6000602084013e6127a8565b606091505b50915091506127b88282866127d7565b92505050949350505050565b600080823b905060008111915050919050565b606083156127e757829050612837565b6000835111156127fa5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282e91906138a5565b60405180910390fd5b9392505050565b6040518060c00160405280600060ff16815260200160008019168152602001600063ffffffff168152602001600063ffffffff168152602001600060ff168152602001606081525090565b604051806040016040528060608152602001600063ffffffff1681525090565b828054828255906000526020600020908101928215612922579160200282015b828111156129215782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906128c9565b5b50905061292f9190612933565b5090565b5b8082111561296a57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612934565b5090565b60008135905061297d81613f08565b92915050565b60008135905061299281613f1f565b92915050565b6000815190506129a781613f1f565b92915050565b6000813590506129bc81613f36565b92915050565b6000815190506129d181613f36565b92915050565b60008083601f8401126129e957600080fd5b8235905067ffffffffffffffff811115612a0257600080fd5b602083019150836001820283011115612a1a57600080fd5b9250929050565b600081359050612a3081613f4d565b92915050565b600081519050612a4581613f4d565b92915050565b600081359050612a5a81613f64565b92915050565b600081359050612a6f81613f7b565b92915050565b600081519050612a8481613f7b565b92915050565b600060208284031215612a9c57600080fd5b6000612aaa8482850161296e565b91505092915050565b60008060008060008060c08789031215612acc57600080fd5b6000612ada89828a0161296e565b9650506020612aeb89828a01612a21565b9550506040612afc89828a016129ad565b9450506060612b0d89828a01612a60565b9350506080612b1e89828a01612a4b565b92505060a0612b2f89828a01612983565b9150509295509295509295565b600060208284031215612b4e57600080fd5b6000612b5c84828501612998565b91505092915050565b600060208284031215612b7757600080fd5b6000612b85848285016129ad565b91505092915050565b600060208284031215612ba057600080fd5b6000612bae848285016129c2565b91505092915050565b600080600060608486031215612bcc57600080fd5b6000612bda868287016129ad565b9350506020612beb86828701612a60565b9250506040612bfc86828701612a4b565b9150509250925092565b60008060208385031215612c1957600080fd5b600083013567ffffffffffffffff811115612c3357600080fd5b612c3f858286016129d7565b92509250509250929050565b600060208284031215612c5d57600080fd5b6000612c6b84828501612a36565b91505092915050565b600060208284031215612c8657600080fd5b6000612c9484828501612a4b565b91505092915050565b600060208284031215612caf57600080fd5b6000612cbd84828501612a75565b91505092915050565b6000612cd28383612ced565b60208301905092915050565b612ce781613e53565b82525050565b612cf681613de4565b82525050565b612d0581613de4565b82525050565b6000612d1682613d78565b612d208185613da6565b9350612d2b83613d68565b8060005b83811015612d5c578151612d438882612cc6565b9750612d4e83613d99565b925050600181019050612d2f565b5085935050505092915050565b612d7281613df6565b82525050565b612d8181613e02565b82525050565b612d9081613e02565b82525050565b612da7612da282613e02565b613ece565b82525050565b6000612db882613d83565b612dc28185613db7565b9350612dd2818560208601613e9b565b612ddb81613eea565b840191505092915050565b6000612df182613d83565b612dfb8185613dc8565b9350612e0b818560208601613e9b565b80840191505092915050565b612e2081613e65565b82525050565b6000612e3182613d8e565b612e3b8185613dd3565b9350612e4b818560208601613e9b565b612e5481613eea565b840191505092915050565b6000612e6c602383613dd3565b91507f6272696467652062616c616e636520776f756c6420657863656564206d61786960008301527f6d756d00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ed2601283613dd3565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000612f12601883613dd3565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612f52602c83613dd3565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b6000612fb8601e83613dd3565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612ff8602683613dd3565b91507f416464726573733a20696e73756666696369656e742062616c616e636520666f60008301527f722063616c6c00000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061305e603983613dd3565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b60006130c4601a83613dd3565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000613104601283613dd3565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000613144601883613dd3565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000613184601883613dd3565b91507f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000006000830152602082019050919050565b60006131c4602383613dd3565b91507f6d757374206e6f74207472616e7366657220746f207468652073616d6520636860008301527f61696e00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061322a601583613dd3565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061326a602183613dd3565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132d0601e83613dd3565b91507f7472756e636174656420616d6f756e74206d757374206e6f74206265203000006000830152602082019050919050565b6000613310602183613dd3565b91507f696e646578206d75737420696e63726561736520696e207374657073206f662060008301527f31000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613376600983613dd3565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b60006133b6601983613dd3565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006133f6601883613dd3565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000613436601d83613dd3565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000613476602383613dd3565b91507f7369676e617475726520696e6469636573206d75737420626520617363656e6460008301527f696e6700000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134dc602a83613dd3565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000613542602683613dd3565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135a8601f83613dd3565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006135e8601483613dd3565b91507f696e76616c696420677561726469616e207365740000000000000000000000006000830152602082019050919050565b600060408301600083015184820360008601526136388282612d0b565b915050602083015161364d60208601826136f0565b508091505092915050565b600060c083016000830151613670600086018261370e565b5060208301516136836020860182612d78565b50604083015161369660408601826136f0565b5060608301516136a960608601826136f0565b5060808301516136bc608086018261370e565b5060a083015184820360a08601526136d48282612dad565b9150508091505092915050565b6136ea81613e2c565b82525050565b6136f981613e36565b82525050565b61370881613e36565b82525050565b61371781613e46565b82525050565b61372681613e46565b82525050565b61373d61373882613e46565b613ed8565b82525050565b600061374f8284612de6565b915081905092915050565b6000613766828561372c565b6001820191506137768284612d96565b6020820191508190509392505050565b600060208201905061379b6000830184612cfc565b92915050565b60006020820190506137b66000830184612cde565b92915050565b60006040820190506137d16000830185612cde565b6137de60208301846136e1565b9392505050565b60006060820190506137fa6000830186612cfc565b6138076020830185612cfc565b61381460408301846136e1565b949350505050565b60006040820190506138316000830185612cfc565b61383e60208301846136e1565b9392505050565b600060208201905061385a6000830184612d69565b92915050565b60006080820190506138756000830187612d87565b613882602083018661371d565b61388f6040830185612d87565b61389c6060830184612d87565b95945050505050565b600060208201905081810360008301526138bf8184612e26565b905092915050565b600060208201905081810360008301526138e081612e5f565b9050919050565b6000602082019050818103600083015261390081612ec5565b9050919050565b6000602082019050818103600083015261392081612f05565b9050919050565b6000602082019050818103600083015261394081612f45565b9050919050565b6000602082019050818103600083015261396081612fab565b9050919050565b6000602082019050818103600083015261398081612feb565b9050919050565b600060208201905081810360008301526139a081613051565b9050919050565b600060208201905081810360008301526139c0816130b7565b9050919050565b600060208201905081810360008301526139e0816130f7565b9050919050565b60006020820190508181036000830152613a0081613137565b9050919050565b60006020820190508181036000830152613a2081613177565b9050919050565b60006020820190508181036000830152613a40816131b7565b9050919050565b60006020820190508181036000830152613a608161321d565b9050919050565b60006020820190508181036000830152613a808161325d565b9050919050565b60006020820190508181036000830152613aa0816132c3565b9050919050565b60006020820190508181036000830152613ac081613303565b9050919050565b60006020820190508181036000830152613ae081613369565b9050919050565b60006020820190508181036000830152613b00816133a9565b9050919050565b60006020820190508181036000830152613b20816133e9565b9050919050565b60006020820190508181036000830152613b4081613429565b9050919050565b60006020820190508181036000830152613b6081613469565b9050919050565b60006020820190508181036000830152613b80816134cf565b9050919050565b60006020820190508181036000830152613ba081613535565b9050919050565b60006020820190508181036000830152613bc08161359b565b9050919050565b60006020820190508181036000830152613be0816135db565b9050919050565b60006020820190508181036000830152613c01818461361b565b905092915050565b60006020820190508181036000830152613c238184613658565b905092915050565b6000602082019050613c4060008301846136ff565b92915050565b6000604082019050613c5b60008301856136ff565b613c6860208301846136ff565b9392505050565b6000606082019050613c84600083018661371d565b613c916020830185612d87565b613c9e604083018461371d565b949350505050565b600060c082019050613cbb600083018961371d565b613cc8602083018861371d565b613cd56040830187612e17565b613ce26060830186612d87565b613cef60808301856136e1565b613cfc60a08301846136ff565b979650505050505050565b600060c082019050613d1c600083018961371d565b613d29602083018861371d565b613d36604083018761371d565b613d436060830186612d87565b613d5060808301856136e1565b613d5d60a08301846136ff565b979650505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613def82613e0c565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000613e5e82613e77565b9050919050565b6000613e7082613e46565b9050919050565b6000613e8282613e89565b9050919050565b6000613e9482613e0c565b9050919050565b60005b83811015613eb9578082015181840152602081019050613e9e565b83811115613ec8576000848401525b50505050565b6000819050919050565b6000613ee382613efb565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b613f1181613de4565b8114613f1c57600080fd5b50565b613f2881613df6565b8114613f3357600080fd5b50565b613f3f81613e02565b8114613f4a57600080fd5b50565b613f5681613e2c565b8114613f6157600080fd5b50565b613f6d81613e36565b8114613f7857600080fd5b50565b613f8481613e46565b8114613f8f57600080fd5b5056fea2646970667358221220be6268c55fc12db2a6d48a837359a790ca4e234bc0d1c3c7914a3dcb9598614464736f6c634300060c0033';
diff --git a/packages/bridge-sdk/src/contracts/WrappedAsset.d.ts b/packages/bridge-sdk/src/contracts/WrappedAsset.d.ts
deleted file mode 100644
index 636f0e2..0000000
--- a/packages/bridge-sdk/src/contracts/WrappedAsset.d.ts
+++ /dev/null
@@ -1,789 +0,0 @@
-/* Autogenerated file. Do not edit manually. */
-/* tslint:disable */
-/* eslint-disable */
-
-import { Contract, ContractTransaction, EventFilter, Signer } from 'ethers';
-import { Listener, Provider } from 'ethers/providers';
-import { Arrayish, BigNumber, BigNumberish, Interface } from 'ethers/utils';
-import {
- TransactionOverrides,
- TypedEventDescription,
- TypedFunctionDescription,
-} from '.';
-
-interface WrappedAssetInterface extends Interface {
- functions: {
- assetAddress: TypedFunctionDescription<{ encode([]: []): string }>;
-
- assetChain: TypedFunctionDescription<{ encode([]: []): string }>;
-
- bridge: TypedFunctionDescription<{ encode([]: []): string }>;
-
- initialized: TypedFunctionDescription<{ encode([]: []): string }>;
-
- initialize: TypedFunctionDescription<{
- encode([_assetChain, _assetAddress, decimals]: [
- BigNumberish,
- Arrayish,
- BigNumberish,
- ]): string;
- }>;
-
- mint: TypedFunctionDescription<{
- encode([account, amount]: [string, BigNumberish]): string;
- }>;
-
- burn: TypedFunctionDescription<{
- encode([account, amount]: [string, BigNumberish]): string;
- }>;
-
- name: TypedFunctionDescription<{ encode([]: []): string }>;
-
- symbol: TypedFunctionDescription<{ encode([]: []): string }>;
-
- decimals: TypedFunctionDescription<{ encode([]: []): string }>;
-
- totalSupply: TypedFunctionDescription<{ encode([]: []): string }>;
-
- balanceOf: TypedFunctionDescription<{
- encode([account]: [string]): string;
- }>;
-
- transfer: TypedFunctionDescription<{
- encode([recipient, amount]: [string, BigNumberish]): string;
- }>;
-
- allowance: TypedFunctionDescription<{
- encode([owner, spender]: [string, string]): string;
- }>;
-
- approve: TypedFunctionDescription<{
- encode([spender, amount]: [string, BigNumberish]): string;
- }>;
-
- transferFrom: TypedFunctionDescription<{
- encode([sender, recipient, amount]: [
- string,
- string,
- BigNumberish,
- ]): string;
- }>;
-
- increaseAllowance: TypedFunctionDescription<{
- encode([spender, addedValue]: [string, BigNumberish]): string;
- }>;
-
- decreaseAllowance: TypedFunctionDescription<{
- encode([spender, subtractedValue]: [string, BigNumberish]): string;
- }>;
- };
-
- events: {
- Approval: TypedEventDescription<{
- encodeTopics([owner, spender, value]: [
- string | null,
- string | null,
- null,
- ]): string[];
- }>;
-
- Transfer: TypedEventDescription<{
- encodeTopics([from, to, value]: [
- string | null,
- string | null,
- null,
- ]): string[];
- }>;
- };
-}
-
-export class WrappedAsset extends Contract {
- connect(signerOrProvider: Signer | Provider | string): WrappedAsset;
- attach(addressOrName: string): WrappedAsset;
- deployed(): Promise;
-
- on(event: EventFilter | string, listener: Listener): WrappedAsset;
- once(event: EventFilter | string, listener: Listener): WrappedAsset;
- addListener(
- eventName: EventFilter | string,
- listener: Listener,
- ): WrappedAsset;
- removeAllListeners(eventName: EventFilter | string): WrappedAsset;
- removeListener(eventName: any, listener: Listener): WrappedAsset;
-
- interface: WrappedAssetInterface;
-
- functions: {
- assetAddress(overrides?: TransactionOverrides): Promise;
-
- 'assetAddress()'(overrides?: TransactionOverrides): Promise;
-
- assetChain(overrides?: TransactionOverrides): Promise;
-
- 'assetChain()'(overrides?: TransactionOverrides): Promise;
-
- bridge(overrides?: TransactionOverrides): Promise;
-
- 'bridge()'(overrides?: TransactionOverrides): Promise;
-
- initialized(overrides?: TransactionOverrides): Promise;
-
- 'initialized()'(overrides?: TransactionOverrides): Promise;
-
- initialize(
- _assetChain: BigNumberish,
- _assetAddress: Arrayish,
- decimals: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'initialize(uint8,bytes32,uint8)'(
- _assetChain: BigNumberish,
- _assetAddress: Arrayish,
- decimals: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- mint(
- account: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'mint(address,uint256)'(
- account: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- burn(
- account: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- 'burn(address,uint256)'(
- account: string,
- amount: BigNumberish,
- overrides?: TransactionOverrides,
- ): Promise;
-
- /**
- * Returns the name of the token.
- */
- name(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the name of the token.
- */
- 'name()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the symbol of the token, usually a shorter version of the name.
- */
- symbol(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the symbol of the token, usually a shorter version of the name.
- */
- 'symbol()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
- */
- decimals(overrides?: TransactionOverrides): Promise;
-
- /**
- * Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.
- */
- 'decimals()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-totalSupply}.
- */
- totalSupply(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-totalSupply}.
- */
- 'totalSupply()'(overrides?: TransactionOverrides): Promise;
-
- /**
- * See {IERC20-balanceOf}.
- */
- balanceOf(
- account: string,
- overrides?: TransactionOverrides,
- ): Promise