diff --git a/ethereum/contracts/Wormhole.sol b/ethereum/contracts/Wormhole.sol index 52de4ef7a..0ca868823 100644 --- a/ethereum/contracts/Wormhole.sol +++ b/ethereum/contracts/Wormhole.sol @@ -57,8 +57,8 @@ contract Wormhole { mapping(bytes32 => bool) consumedVAAs; // Mapping of wrapped asset ERC20 contracts - mapping(bytes32 => address) wrappedAssets; - mapping(address => bool) isWrappedAsset; + mapping(bytes32 => address) public wrappedAssets; + mapping(address => bool) public isWrappedAsset; constructor(GuardianSet memory initial_guardian_set, address wrapped_asset_master, uint32 _vaa_expiry) public { guardian_sets[0] = initial_guardian_set; diff --git a/ethereum/package-lock.json b/ethereum/package-lock.json index 07f83e419..75decaf0b 100644 --- a/ethereum/package-lock.json +++ b/ethereum/package-lock.json @@ -4,6 +4,59 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/plugin-transform-runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz", + "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/types": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", + "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, "@ethersproject/abi": { "version": "5.0.0-beta.153", "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", @@ -2082,6 +2135,68 @@ "integrity": "sha512-QUM9ZWiwlXGixFGpV18g5I6vua6/r+ZV9W/5DQA5go9A3eZUNPHPaTKMIQPJLYn6+ZV5jg5H28zCHq56LHF3yA==", "dev": true }, + "@truffle/hdwallet-provider": { + "version": "1.0.42", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.0.42.tgz", + "integrity": "sha512-Q6+Pn6x9oLE0lTk72xC4V7il/UoI2i6dy8kSfh4xjYkE585SO9sc7ndXqX5K+epPolr7UAndEe7Lv6mHjiPmsQ==", + "dev": true, + "requires": { + "@trufflesuite/web3-provider-engine": "15.0.13-1", + "@types/web3": "^1.0.20", + "any-promise": "^1.3.0", + "bindings": "^1.5.0", + "ethereum-cryptography": "^0.1.3", + "ethereum-protocol": "^1.0.1", + "ethereumjs-tx": "^1.0.0", + "ethereumjs-util": "^6.1.0", + "ethereumjs-wallet": "^0.6.3", + "source-map-support": "^0.5.19" + }, + "dependencies": { + "@types/web3": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.2.2.tgz", + "integrity": "sha512-eFiYJKggNrOl0nsD+9cMh2MLk4zVBfXfGnVeRFbpiZzBE20eet4KLA3fXcjSuHaBn0RnQzwLAGdgzgzdet4C0A==", + "dev": true, + "requires": { + "web3": "*" + } + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", + "dev": true + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "dev": true, + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + } + } + }, "@truffle/interface-adapter": { "version": "0.4.13", "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.4.13.tgz", @@ -2505,6 +2620,212 @@ } } }, + "@trufflesuite/eth-json-rpc-filters": { + "version": "4.1.2-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", + "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", + "dev": true, + "requires": { + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", + "await-semaphore": "^0.1.3", + "eth-query": "^2.1.2", + "json-rpc-engine": "^5.1.3", + "lodash.flatmap": "^4.5.0", + "safe-event-emitter": "^1.0.1" + } + }, + "@trufflesuite/eth-json-rpc-infura": { + "version": "4.0.3-0", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz", + "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==", + "dev": true, + "requires": { + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "cross-fetch": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "json-rpc-engine": "^5.1.3" + }, + "dependencies": { + "eth-json-rpc-errors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", + "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.6" + } + } + } + }, + "@trufflesuite/eth-json-rpc-middleware": { + "version": "4.4.2-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", + "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", + "dev": true, + "requires": { + "@trufflesuite/eth-sig-util": "^1.4.2", + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "eth-query": "^2.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.7", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.6.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^5.1.3", + "json-stable-stringify": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + }, + "dependencies": { + "eth-json-rpc-errors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", + "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.6" + } + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", + "dev": true + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "dev": true, + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "@trufflesuite/eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", + "dev": true, + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "@trufflesuite/web3-provider-engine": { + "version": "15.0.13-1", + "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-1.tgz", + "integrity": "sha512-6u3x/iIN5fyj8pib5QTUDmIOUiwAGhaqdSTXdqCu6v9zo2BEwdCqgEJd1uXDh3DBmPRDfiZ/ge8oUPy7LerpHg==", + "dev": true, + "requires": { + "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", + "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0", + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "@trufflesuite/eth-sig-util": "^1.4.2", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-errors": "^2.0.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-tx": "^1.2.0", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", + "dev": true + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "dev": true, + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "@types/bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", @@ -2617,6 +2938,15 @@ "@types/underscore": "*" } }, + "abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -2798,6 +3128,24 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-eventemitter": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", + "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", + "dev": true, + "requires": { + "async": "^2.4.0" + } + }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -2810,6 +3158,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "await-semaphore": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz", + "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q==", + "dev": true + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -2832,6 +3186,15 @@ "is-buffer": "^2.0.2" } }, + "backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", + "dev": true, + "requires": { + "precond": "0.2" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -2878,6 +3241,15 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bl": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", @@ -3112,6 +3484,12 @@ "safe-buffer": "^5.1.2" } }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "dev": true + }, "buffer": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", @@ -3286,6 +3664,15 @@ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, + "checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "dev": true, + "requires": { + "functional-red-black-tree": "^1.0.1" + } + }, "cheerio": { "version": "1.0.0-rc.3", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", @@ -3412,6 +3799,12 @@ } } }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -3613,6 +4006,30 @@ "sha.js": "^2.4.8" } }, + "cross-fetch": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.3.tgz", + "integrity": "sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw==", + "dev": true, + "requires": { + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" + }, + "dependencies": { + "node-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", + "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=", + "dev": true + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==", + "dev": true + } + } + }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -3814,6 +4231,15 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "dev": true, + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -4023,6 +4449,15 @@ "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "dev": true }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, "es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", @@ -4131,6 +4566,28 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, + "eth-block-tracker": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", + "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "dev": true, + "requires": { + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, "eth-ens-namehash": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", @@ -4141,6 +4598,15 @@ "js-sha3": "^0.5.7" } }, + "eth-json-rpc-errors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz", + "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.6" + } + }, "eth-lib": { "version": "0.1.29", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", @@ -4155,6 +4621,25 @@ "xhr-request-promise": "^0.1.2" } }, + "eth-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", + "dev": true, + "requires": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "eth-rpc-errors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", + "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.6" + } + }, "ethereum-bloom-filters": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", @@ -4172,6 +4657,12 @@ } } }, + "ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", + "dev": true + }, "ethereum-cryptography": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", @@ -4233,6 +4724,98 @@ "web3": "^1.0.0-beta.34" } }, + "ethereum-protocol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz", + "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg==", + "dev": true + }, + "ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dev": true, + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "dev": true, + "requires": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, + "ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "dev": true, + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + }, + "dependencies": { + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", + "dev": true + } + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, "ethereumjs-common": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.1.tgz", @@ -4264,6 +4847,57 @@ "rlp": "^2.2.3" } }, + "ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "dev": true, + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "ethereumjs-block": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", + "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", + "dev": true, + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + } + } + }, "ethereumjs-wallet": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz", @@ -4382,6 +5016,12 @@ "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", "dev": true }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -4530,6 +5170,15 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, + "fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "dev": true, + "requires": { + "checkpoint-store": "^1.1.0" + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4542,6 +5191,12 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true + }, "faye-websocket": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", @@ -4560,6 +5215,15 @@ "pend": "~1.2.0" } }, + "fetch-ponyfill": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", + "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", + "dev": true, + "requires": { + "node-fetch": "~1.7.1" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -4575,6 +5239,12 @@ "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -4780,6 +5450,12 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "ganache-core": { "version": "2.11.2", "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.11.2.tgz", @@ -15105,6 +15781,12 @@ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "dev": true + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -15230,6 +15912,12 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, + "is-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=", + "dev": true + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -15423,6 +16111,22 @@ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, + "json-rpc-engine": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.3.0.tgz", + "integrity": "sha512-+diJ9s8rxB+fbJhT7ZEf8r8spaLRignLd8jTgQ/h5JSGppAHGtNMZtCoabipCaleR1B3GTGxbXBOqhaJSGmPGQ==", + "dev": true, + "requires": { + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "json-rpc-random-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -15435,6 +16139,15 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -15459,6 +16172,12 @@ "graceful-fs": "^4.1.6" } }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -15499,6 +16218,133 @@ "graceful-fs": "^4.1.9" } }, + "level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==", + "dev": true + }, + "level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "dev": true, + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "dev": true, + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "dev": true, + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + }, + "dependencies": { + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + } + } + }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -15541,6 +16387,12 @@ "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", "dev": true }, + "lodash.flatmap": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", + "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=", + "dev": true + }, "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", @@ -15591,6 +16443,12 @@ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", + "dev": true + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -15625,6 +16483,37 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, + "memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", + "dev": true, + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "dev": true, + "requires": { + "xtend": "~4.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -15637,6 +16526,45 @@ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, + "merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "dev": true, + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + } + } + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -16333,6 +17261,12 @@ "pinkie": "^2.0.0" } }, + "precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=", + "dev": true + }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", @@ -16363,6 +17297,16 @@ "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==", "dev": true }, + "promise-to-callback": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", + "dev": true, + "requires": { + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" + } + }, "promise.allsettled": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", @@ -16414,6 +17358,12 @@ "ipaddr.js": "1.9.1" } }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -16541,6 +17491,12 @@ "picomatch": "^2.0.7" } }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -16647,6 +17603,12 @@ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, + "rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true + }, "rxjs": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", @@ -16662,6 +17624,15 @@ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, + "safe-event-emitter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", + "dev": true, + "requires": { + "events": "^3.0.0" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -16738,6 +17709,12 @@ } } }, + "semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", + "dev": true + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -16829,6 +17806,12 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, "setimmediate": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", @@ -17292,6 +18275,12 @@ "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", "dev": true }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", diff --git a/ethereum/package.json b/ethereum/package.json index 50036db96..66cd88963 100644 --- a/ethereum/package.json +++ b/ethereum/package.json @@ -11,7 +11,8 @@ "chai": "^4.2.0", "mocha": "^8.1.1", "truffle-assertions": "^0.9.2", - "truffle": "^5.1.37" + "truffle": "^5.1.37", + "@truffle/hdwallet-provider": "^1.0.42" }, "scripts": { "build": "truffle compile", diff --git a/web/contracts/Wormhole.json b/web/contracts/Wormhole.json index f20e06dc2..69c91ad37 100644 --- a/web/contracts/Wormhole.json +++ b/web/contracts/Wormhole.json @@ -29,6 +29,11 @@ "internalType": "address", "name": "wrapped_asset_master", "type": "address" + }, + { + "internalType": "uint32", + "name": "_vaa_expiry", + "type": "uint32" } ], "stateMutability": "nonpayable", @@ -130,37 +135,6 @@ "name": "LogTokensLocked", "type": "event" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "sender", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTokensUnlocked", - "type": "event" - }, { "stateMutability": "payable", "type": "fallback" @@ -178,6 +152,54 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "guardian_sets", + "outputs": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "parity", + "type": "uint8" + }, + { + "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": "vaa_expiry", @@ -204,6 +226,25 @@ "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" @@ -268,25 +309,25 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"parity\",\"type\":\"uint8\"},{\"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\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"parity\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"indexed\":true,\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"oldGuardian\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"parity\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"indexed\":true,\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"newGuardian\",\"type\":\"tuple\"}],\"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\":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\"}],\"name\":\"LogTokensLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTokensUnlocked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"guardian_set_index\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"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\"}],\"name\":\"lockAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"}],\"name\":\"lockETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"vaa\",\"type\":\"bytes\"}],\"name\":\"submitVAA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaa_expiry\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedAssetMaster\",\"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\":{\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol\":\"Wormhole\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/BytesLib.sol\":{\"keccak256\":\"0x4a28e69afc4c1c1aee48c7b497f9b8452b295ddcf4bbf453d594a1467016d5f2\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://279e22c43f79567e9f7842cfca8ad2329bbbad2eac30413b620796d51f308719\",\"dweb:/ipfs/QmbdRLJYoKJxDbDLeverNMHsNFEcxnohAA713UFLjLm3Jy\"]},\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/SchnorrSECP256K1.sol\":{\"keccak256\":\"0x83c638d63ee08fd708c97d72ab10248031773f6172acabcc4e8ee96725679906\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82c05b3e8d17a95032d29053737cb982eecdc540f3f5a8f9ab6914a41bf8ac9f\",\"dweb:/ipfs/QmUccQmFUzrwAHvra98jZ7Fv5jAikQQrMCeno8g1Aqqz2Y\"]},\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol\":{\"keccak256\":\"0x2fa82fe3e3b2b3af83f1abfed82c4cbaca775d9c1e93e58ee35bf785f40207a4\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://948f30fef973026947b12348defbc1b2eee33a1dc41bbed06dfe777cfaf49230\",\"dweb:/ipfs/QmW9GsWz2but2WtvfoEVBzrSz1QiWagQyPZpsLDCiAY2wY\"]},\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/WrappedAsset.sol\":{\"keccak256\":\"0x029a9b6e1df05a76c4c09570bf403eb91a2df33acdb0b7414e950f35fa240b97\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://a1d5d79ed2fdbe41c9eb88971ab0c7677b66579d6ef322a5eb7b23bf8fc9f891\",\"dweb:/ipfs/QmPRZWXa3hx87fJ9u14rDxZ7mYXL2EjQHcDmC2jYZEDMNW\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3\",\"dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]}},\"version\":1}", - "bytecode": "0x60806040526002600060146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b5060405162002f0438038062002f048339818101604052810190620000539190620001f1565b81600160008063ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff1602179055509050506000600260006101000a81548163ffffffff021916908363ffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000323565b6000815190506200013d81620002bb565b92915050565b6000606082840312156200015657600080fd5b62000162606062000232565b905060006200017484828501620001ac565b60008301525060206200018a84828501620001da565b6020830152506040620001a084828501620001c3565b60408301525092915050565b600081519050620001bd81620002d5565b92915050565b600081519050620001d481620002ef565b92915050565b600081519050620001eb8162000309565b92915050565b600080608083850312156200020557600080fd5b6000620002158582860162000143565b925050606062000228858286016200012c565b9150509250929050565b6000604051905081810181811067ffffffffffffffff821117156200025657600080fd5b8060405250919050565b60006200026d8262000274565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b620002c68162000260565b8114620002d257600080fd5b50565b620002e08162000294565b8114620002ec57600080fd5b50565b620002fa816200029e565b81146200030657600080fd5b50565b6200031481620002ae565b81146200032057600080fd5b50565b612bd180620003336000396000f3fe6080604052600436106100595760003560e01c80633bc0aee6146100d4578063780e2183146100fd5780637f04d9e614610119578063822d82b31461014457806399da1d3c1461016f578063e66fd3731461019a57610099565b36610099576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610090906126d9565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cb906126d9565b60405180910390fd5b3480156100e057600080fd5b506100fb60048036038101906100f69190611dfc565b6101c3565b005b61011760048036038101906101129190611dc0565b61087a565b005b34801561012557600080fd5b5061012e6109cb565b60405161013b91906128cc565b60405180910390f35b34801561015057600080fd5b506101596109e1565b60405161016691906128cc565b60405180910390f35b34801561017b57600080fd5b506101846109f7565b60405161019191906125b8565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611d0b565b610a1b565b005b600061021d600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e1390919063ffffffff16565b905060018160ff1614610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c90612719565b60405180910390fd5b60006102bf600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e7190919063ffffffff16565b9050600061031b600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ecf90919063ffffffff16565b90506000610377602587878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f2d90919063ffffffff16565b905060006103d3603988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e7190919063ffffffff16565b905042600260049054906101000a900463ffffffff16820163ffffffff1610610431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042890612739565b60405180910390fd5b60006104926039808a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f9a9092919063ffffffff16565b8051906020012090506003600082815260200190815260200160002060009054906101000a900460ff16156104fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f3906126b9565b60405180910390fd5b610504611bef565b600160008763ffffffff1663ffffffff168152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816040015163ffffffff16148061059f575042816040015163ffffffff16115b6105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d5906127f9565b60405180910390fd5b73__Schnorr_______________________________63ff51dff282600001518360200151888660001c896040518663ffffffff1660e01b8152600401610628959493929190612879565b60206040518083038186803b15801561064057600080fd5b505af4158015610654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106789190611d6e565b6106b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ae90612759565b60405180910390fd5b6000610711603d8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e1390919063ffffffff16565b9050600061076d603e8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e1390919063ffffffff16565b905060606107ce603f8360ff168e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f9a9092919063ffffffff16565b905060018360ff1614156107ea576107e58161105c565b610840565b60108360ff161415610804576107ff81611337565b61083f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083690612699565b60405180910390fd5b5b60016003600087815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505050505050565b60003414156108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b5906127b9565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561091a57600080fd5b505af115801561092e573d6000803e3d6000fd5b50505050508173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b83600060149054906101000a900460ff163373ffffffffffffffffffffffffffffffffffffffff1660001b346040516109bf9493929190612910565b60405180910390a35050565b600260049054906101000a900463ffffffff1681565b600260009054906101000a900463ffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000831415610a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a56906127b9565b60405180910390fd5b60008060149054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c38578573ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401610b019291906125ee565b600060405180830381600087803b158015610b1b57600080fd5b505af1158015610b2f573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb19190611e6a565b91508573ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bf957600080fd5b505afa158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c319190611d97565b9050610db3565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c7391906125d3565b60206040518083038186803b158015610c8b57600080fd5b505afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190611e41565b9050610cf23330888a73ffffffffffffffffffffffffffffffffffffffff166115ed909392919063ffffffff16565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d2d91906125d3565b60206040518083038186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d9190611e41565b9050610d92828261167690919063ffffffff16565b96508773ffffffffffffffffffffffffffffffffffffffff1660001b925050505b83817f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b85853373ffffffffffffffffffffffffffffffffffffffff1660001b8a604051610e039493929190612910565b60405180910390a3505050505050565b60006001820183511015610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906126f9565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb1906126f9565b60405180910390fd5b60008260048501015190508091505092915050565b60006020820183511015610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f906126f9565b60405180910390fd5b60008260208501015190508091505092915050565b60006014820183511015610f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6d906126f9565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b606081830184511015610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd9906126f9565b60405180910390fd5b6060821560008114610fff57604051915060208201604052611050565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561103d5780518352602083019250602081019050611020565b50868552601f19601f8301166040525050505b50809150509392505050565b6000611072600083610ecf90919063ffffffff16565b9050600061108a602084610ecf90919063ffffffff16565b905060006110a2604085610e7190919063ffffffff16565b9050600260009054906101000a900463ffffffff1663ffffffff168163ffffffff1611611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90612779565b60405180910390fd5b6001807ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141901c01831061116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390612799565b60405180910390fd5b6000600260009054906101000a900463ffffffff16905081600260006101000a81548163ffffffff021916908363ffffffff1602179055506111ac611bef565b6040518060600160405280868152602001600286816111c757fe5b0660ff168152602001600063ffffffff1681525090508060016000600260009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff160217905550905050600260049054906101000a900463ffffffff164201600160008463ffffffff1663ffffffff16815260200190815260200160002060010160016101000a81548163ffffffff021916908363ffffffff160217905550806040516112c79190612556565b6040518091039020600160008463ffffffff1663ffffffff1681526020019081526020016000206040516112fb9190612571565b60405180910390207f776a7721d091beb15fb219d7be3c92b83fa7c10428af15a7312461bc3bc52e0b60405160405180910390a3505050505050565b600061134d600483610e1390919063ffffffff16565b90506000611365600584610e1390919063ffffffff16565b9050600061137d603285610f2d90919063ffffffff16565b90506000611395604686610e1390919063ffffffff16565b905060006113ad606787610ecf90919063ffffffff16565b90508360ff168560ff1614156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612859565b60405180910390fd5b600060149054906101000a900460ff1660ff168460ff161461144f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611446906127d9565b60405180910390fd5b600060149054906101000a900460ff1660ff168260ff16146115a05760006114816047886116c090919063ffffffff16565b90506000838260405160200161149892919061258c565b60405160208183030381529060405280519060200120905060006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561152b5761152882868561171e565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b815260040161156692919061264e565b600060405180830381600087803b15801561158057600080fd5b505af1158015611594573d6000803e3d6000fd5b505050505050506115e5565b60006115b6605388610f2d90919063ffffffff16565b90506115e384838373ffffffffffffffffffffffffffffffffffffffff166118c19092919063ffffffff16565b505b505050505050565b611670846323b872dd60e01b85858560405160240161160e93929190612617565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611947565b50505050565b60006116b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a0e565b905092915050565b60006020820183511015611709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611700906126f9565b60405180910390fd5b60008260208501015190508091505092915050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b81526004016117dd9291906128e7565b600060405180830381600087803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b50505050816004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b6119428363a9059cbb60e01b84846040516024016118e092919061264e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611947565b505050565b60606119a9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611a699092919063ffffffff16565b9050600081511115611a0957808060200190518101906119c99190611d6e565b611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90612839565b60405180910390fd5b5b505050565b6000838311158290611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d9190612677565b60405180910390fd5b5060008385039050809150509392505050565b6060611a788484600085611a81565b90509392505050565b6060611a8c85611ba4565b611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac290612819565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611af5919061253f565b60006040518083038185875af1925050503d8060008114611b32576040519150601f19603f3d011682016040523d82523d6000602084013e611b37565b606091505b50915091508115611b4c578092505050611b9c565b600081511115611b5f5780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b939190612677565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611be657506000801b8214155b92505050919050565b604051806060016040528060008152602001600060ff168152602001600063ffffffff1681525090565b600081359050611c2881612b28565b92915050565b600081519050611c3d81612b3f565b92915050565b600081359050611c5281612b56565b92915050565b600081519050611c6781612b56565b92915050565b60008083601f840112611c7f57600080fd5b8235905067ffffffffffffffff811115611c9857600080fd5b602083019150836001820283011115611cb057600080fd5b9250929050565b600081359050611cc681612b6d565b92915050565b600081519050611cdb81612b6d565b92915050565b600081359050611cf081612b84565b92915050565b600081519050611d0581612b84565b92915050565b60008060008060808587031215611d2157600080fd5b6000611d2f87828801611c19565b9450506020611d4087828801611cb7565b9350506040611d5187828801611c43565b9250506060611d6287828801611ce1565b91505092959194509250565b600060208284031215611d8057600080fd5b6000611d8e84828501611c2e565b91505092915050565b600060208284031215611da957600080fd5b6000611db784828501611c58565b91505092915050565b60008060408385031215611dd357600080fd5b6000611de185828601611c43565b9250506020611df285828601611ce1565b9150509250929050565b60008060208385031215611e0f57600080fd5b600083013567ffffffffffffffff811115611e2957600080fd5b611e3585828601611c6d565b92509250509250929050565b600060208284031215611e5357600080fd5b6000611e6184828501611ccc565b91505092915050565b600060208284031215611e7c57600080fd5b6000611e8a84828501611cf6565b91505092915050565b6000611e9f83836124ce565b60208301905092915050565b6000611eb783836124ec565b60208301905092915050565b6000611ecf8383612519565b60208301905092915050565b611ee481612a1d565b82525050565b611ef3816129ae565b82525050565b611f02816129ae565b82525050565b611f11816129cc565b82525050565b611f28611f23826129cc565b612ad4565b82525050565b6000611f3982612955565b611f43818561296b565b9350611f53818560208601612a53565b80840191505092915050565b6000611f6a82612960565b611f748185612976565b9350611f84818560208601612a53565b611f8d81612af0565b840191505092915050565b6000611fa5601283612976565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000611fe5601883612976565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612025602c83612976565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b600061208b601283612976565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b60006120cb601883612976565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b600061210b600f83612976565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b600061214b601583612976565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061218b602b83612976565b91507f696e646578206f66206e657720677561726469616e20736574206d757374206260008301527f65203e2063757272656e740000000000000000000000000000000000000000006020830152604082019050919050565b60006121f1602983612976565b91507f696e76616c6964206b657920666f722066617374205363686e6f72722076657260008301527f696669636174696f6e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612257601483612976565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b6000612297601983612976565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006122d7601883612976565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612317601d83612976565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612357602a83612976565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b60006123bd602683612976565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000820160008201516124298482611e93565b935050602082015161243b8482611ec3565b935050604082015161244d8482611eab565b935050505050565b60008201600080830154905061246a81612a86565b6124748582611e93565b9450506001830154905061248781612aa0565b6124918582611ec3565b94505061249d81612aba565b6124a78582611eab565b94505050505050565b6124b9816129f6565b82525050565b6124c8816129f6565b82525050565b6124d7816129f6565b82525050565b6124e681612a00565b82525050565b6124f581612a00565b82525050565b61250481612a10565b82525050565b61251381612a10565b82525050565b61252281612a10565b82525050565b61253961253482612a10565b612ade565b82525050565b600061254b8284611f2e565b915081905092915050565b60006125628284612416565b60608201915081905092915050565b600061257d8284612455565b60608201915081905092915050565b60006125988285612528565b6001820191506125a88284611f17565b6020820191508190509392505050565b60006020820190506125cd6000830184611eea565b92915050565b60006020820190506125e86000830184611edb565b92915050565b60006040820190506126036000830185611edb565b61261060208301846124b0565b9392505050565b600060608201905061262c6000830186611eea565b6126396020830185611eea565b61264660408301846124b0565b949350505050565b60006040820190506126636000830185611eea565b61267060208301846124b0565b9392505050565b600060208201905081810360008301526126918184611f5f565b905092915050565b600060208201905081810360008301526126b281611f98565b9050919050565b600060208201905081810360008301526126d281611fd8565b9050919050565b600060208201905081810360008301526126f281612018565b9050919050565b600060208201905081810360008301526127128161207e565b9050919050565b60006020820190508181036000830152612732816120be565b9050919050565b60006020820190508181036000830152612752816120fe565b9050919050565b600060208201905081810360008301526127728161213e565b9050919050565b600060208201905081810360008301526127928161217e565b9050919050565b600060208201905081810360008301526127b2816121e4565b9050919050565b600060208201905081810360008301526127d28161224a565b9050919050565b600060208201905081810360008301526127f28161228a565b9050919050565b60006020820190508181036000830152612812816122ca565b9050919050565b600060208201905081810360008301526128328161230a565b9050919050565b600060208201905081810360008301526128528161234a565b9050919050565b60006020820190508181036000830152612872816123b0565b9050919050565b600060a08201905061288e60008301886124bf565b61289b602083018761250a565b6128a860408301866124bf565b6128b560608301856124bf565b6128c26080830184611ef9565b9695505050505050565b60006020820190506128e160008301846124dd565b92915050565b60006040820190506128fc60008301856124fb565b6129096020830184611f08565b9392505050565b600060808201905061292560008301876124fb565b61293260208301866124fb565b61293f6040830185611f08565b61294c60608301846124b0565b95945050505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006129b9826129d6565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612a2882612a2f565b9050919050565b6000612a3a82612a41565b9050919050565b6000612a4c826129d6565b9050919050565b60005b83811015612a71578082015181840152602081019050612a56565b83811115612a80576000848401525b50505050565b6000612a99612a9483612b0e565b612987565b9050919050565b6000612ab3612aae83612b0e565b6129a1565b9050919050565b6000612acd612ac883612b1b565b612991565b9050919050565b6000819050919050565b6000612ae982612b01565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160001c9050919050565b60008160081c9050919050565b612b31816129ae565b8114612b3c57600080fd5b50565b612b48816129c0565b8114612b5357600080fd5b50565b612b5f816129cc565b8114612b6a57600080fd5b50565b612b76816129f6565b8114612b8157600080fd5b50565b612b8d81612a10565b8114612b9857600080fd5b5056fea264697066735822122033713fbc06fc98ebfb1480eb1fb0380c4ff666a6ec58c529f5305334818eb30164736f6c634300060c0033", - "deployedBytecode": "0x6080604052600436106100595760003560e01c80633bc0aee6146100d4578063780e2183146100fd5780637f04d9e614610119578063822d82b31461014457806399da1d3c1461016f578063e66fd3731461019a57610099565b36610099576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610090906126d9565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cb906126d9565b60405180910390fd5b3480156100e057600080fd5b506100fb60048036038101906100f69190611dfc565b6101c3565b005b61011760048036038101906101129190611dc0565b61087a565b005b34801561012557600080fd5b5061012e6109cb565b60405161013b91906128cc565b60405180910390f35b34801561015057600080fd5b506101596109e1565b60405161016691906128cc565b60405180910390f35b34801561017b57600080fd5b506101846109f7565b60405161019191906125b8565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611d0b565b610a1b565b005b600061021d600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e1390919063ffffffff16565b905060018160ff1614610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c90612719565b60405180910390fd5b60006102bf600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e7190919063ffffffff16565b9050600061031b600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ecf90919063ffffffff16565b90506000610377602587878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f2d90919063ffffffff16565b905060006103d3603988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e7190919063ffffffff16565b905042600260049054906101000a900463ffffffff16820163ffffffff1610610431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042890612739565b60405180910390fd5b60006104926039808a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f9a9092919063ffffffff16565b8051906020012090506003600082815260200190815260200160002060009054906101000a900460ff16156104fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f3906126b9565b60405180910390fd5b610504611bef565b600160008763ffffffff1663ffffffff168152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816040015163ffffffff16148061059f575042816040015163ffffffff16115b6105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d5906127f9565b60405180910390fd5b73__Schnorr_______________________________63ff51dff282600001518360200151888660001c896040518663ffffffff1660e01b8152600401610628959493929190612879565b60206040518083038186803b15801561064057600080fd5b505af4158015610654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106789190611d6e565b6106b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ae90612759565b60405180910390fd5b6000610711603d8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e1390919063ffffffff16565b9050600061076d603e8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e1390919063ffffffff16565b905060606107ce603f8360ff168e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f9a9092919063ffffffff16565b905060018360ff1614156107ea576107e58161105c565b610840565b60108360ff161415610804576107ff81611337565b61083f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083690612699565b60405180910390fd5b5b60016003600087815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505050505050565b60003414156108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b5906127b9565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561091a57600080fd5b505af115801561092e573d6000803e3d6000fd5b50505050508173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b83600060149054906101000a900460ff163373ffffffffffffffffffffffffffffffffffffffff1660001b346040516109bf9493929190612910565b60405180910390a35050565b600260049054906101000a900463ffffffff1681565b600260009054906101000a900463ffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000831415610a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a56906127b9565b60405180910390fd5b60008060149054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c38578573ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401610b019291906125ee565b600060405180830381600087803b158015610b1b57600080fd5b505af1158015610b2f573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb19190611e6a565b91508573ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bf957600080fd5b505afa158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c319190611d97565b9050610db3565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c7391906125d3565b60206040518083038186803b158015610c8b57600080fd5b505afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190611e41565b9050610cf23330888a73ffffffffffffffffffffffffffffffffffffffff166115ed909392919063ffffffff16565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d2d91906125d3565b60206040518083038186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d9190611e41565b9050610d92828261167690919063ffffffff16565b96508773ffffffffffffffffffffffffffffffffffffffff1660001b925050505b83817f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b85853373ffffffffffffffffffffffffffffffffffffffff1660001b8a604051610e039493929190612910565b60405180910390a3505050505050565b60006001820183511015610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906126f9565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb1906126f9565b60405180910390fd5b60008260048501015190508091505092915050565b60006020820183511015610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f906126f9565b60405180910390fd5b60008260208501015190508091505092915050565b60006014820183511015610f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6d906126f9565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b606081830184511015610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd9906126f9565b60405180910390fd5b6060821560008114610fff57604051915060208201604052611050565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561103d5780518352602083019250602081019050611020565b50868552601f19601f8301166040525050505b50809150509392505050565b6000611072600083610ecf90919063ffffffff16565b9050600061108a602084610ecf90919063ffffffff16565b905060006110a2604085610e7190919063ffffffff16565b9050600260009054906101000a900463ffffffff1663ffffffff168163ffffffff1611611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90612779565b60405180910390fd5b6001807ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141901c01831061116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390612799565b60405180910390fd5b6000600260009054906101000a900463ffffffff16905081600260006101000a81548163ffffffff021916908363ffffffff1602179055506111ac611bef565b6040518060600160405280868152602001600286816111c757fe5b0660ff168152602001600063ffffffff1681525090508060016000600260009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff160217905550905050600260049054906101000a900463ffffffff164201600160008463ffffffff1663ffffffff16815260200190815260200160002060010160016101000a81548163ffffffff021916908363ffffffff160217905550806040516112c79190612556565b6040518091039020600160008463ffffffff1663ffffffff1681526020019081526020016000206040516112fb9190612571565b60405180910390207f776a7721d091beb15fb219d7be3c92b83fa7c10428af15a7312461bc3bc52e0b60405160405180910390a3505050505050565b600061134d600483610e1390919063ffffffff16565b90506000611365600584610e1390919063ffffffff16565b9050600061137d603285610f2d90919063ffffffff16565b90506000611395604686610e1390919063ffffffff16565b905060006113ad606787610ecf90919063ffffffff16565b90508360ff168560ff1614156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612859565b60405180910390fd5b600060149054906101000a900460ff1660ff168460ff161461144f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611446906127d9565b60405180910390fd5b600060149054906101000a900460ff1660ff168260ff16146115a05760006114816047886116c090919063ffffffff16565b90506000838260405160200161149892919061258c565b60405160208183030381529060405280519060200120905060006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561152b5761152882868561171e565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b815260040161156692919061264e565b600060405180830381600087803b15801561158057600080fd5b505af1158015611594573d6000803e3d6000fd5b505050505050506115e5565b60006115b6605388610f2d90919063ffffffff16565b90506115e384838373ffffffffffffffffffffffffffffffffffffffff166118c19092919063ffffffff16565b505b505050505050565b611670846323b872dd60e01b85858560405160240161160e93929190612617565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611947565b50505050565b60006116b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a0e565b905092915050565b60006020820183511015611709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611700906126f9565b60405180910390fd5b60008260208501015190508091505092915050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b81526004016117dd9291906128e7565b600060405180830381600087803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b50505050816004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b6119428363a9059cbb60e01b84846040516024016118e092919061264e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611947565b505050565b60606119a9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611a699092919063ffffffff16565b9050600081511115611a0957808060200190518101906119c99190611d6e565b611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90612839565b60405180910390fd5b5b505050565b6000838311158290611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d9190612677565b60405180910390fd5b5060008385039050809150509392505050565b6060611a788484600085611a81565b90509392505050565b6060611a8c85611ba4565b611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac290612819565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611af5919061253f565b60006040518083038185875af1925050503d8060008114611b32576040519150601f19603f3d011682016040523d82523d6000602084013e611b37565b606091505b50915091508115611b4c578092505050611b9c565b600081511115611b5f5780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b939190612677565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611be657506000801b8214155b92505050919050565b604051806060016040528060008152602001600060ff168152602001600063ffffffff1681525090565b600081359050611c2881612b28565b92915050565b600081519050611c3d81612b3f565b92915050565b600081359050611c5281612b56565b92915050565b600081519050611c6781612b56565b92915050565b60008083601f840112611c7f57600080fd5b8235905067ffffffffffffffff811115611c9857600080fd5b602083019150836001820283011115611cb057600080fd5b9250929050565b600081359050611cc681612b6d565b92915050565b600081519050611cdb81612b6d565b92915050565b600081359050611cf081612b84565b92915050565b600081519050611d0581612b84565b92915050565b60008060008060808587031215611d2157600080fd5b6000611d2f87828801611c19565b9450506020611d4087828801611cb7565b9350506040611d5187828801611c43565b9250506060611d6287828801611ce1565b91505092959194509250565b600060208284031215611d8057600080fd5b6000611d8e84828501611c2e565b91505092915050565b600060208284031215611da957600080fd5b6000611db784828501611c58565b91505092915050565b60008060408385031215611dd357600080fd5b6000611de185828601611c43565b9250506020611df285828601611ce1565b9150509250929050565b60008060208385031215611e0f57600080fd5b600083013567ffffffffffffffff811115611e2957600080fd5b611e3585828601611c6d565b92509250509250929050565b600060208284031215611e5357600080fd5b6000611e6184828501611ccc565b91505092915050565b600060208284031215611e7c57600080fd5b6000611e8a84828501611cf6565b91505092915050565b6000611e9f83836124ce565b60208301905092915050565b6000611eb783836124ec565b60208301905092915050565b6000611ecf8383612519565b60208301905092915050565b611ee481612a1d565b82525050565b611ef3816129ae565b82525050565b611f02816129ae565b82525050565b611f11816129cc565b82525050565b611f28611f23826129cc565b612ad4565b82525050565b6000611f3982612955565b611f43818561296b565b9350611f53818560208601612a53565b80840191505092915050565b6000611f6a82612960565b611f748185612976565b9350611f84818560208601612a53565b611f8d81612af0565b840191505092915050565b6000611fa5601283612976565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000611fe5601883612976565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612025602c83612976565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b600061208b601283612976565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b60006120cb601883612976565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b600061210b600f83612976565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b600061214b601583612976565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061218b602b83612976565b91507f696e646578206f66206e657720677561726469616e20736574206d757374206260008301527f65203e2063757272656e740000000000000000000000000000000000000000006020830152604082019050919050565b60006121f1602983612976565b91507f696e76616c6964206b657920666f722066617374205363686e6f72722076657260008301527f696669636174696f6e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612257601483612976565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b6000612297601983612976565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006122d7601883612976565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612317601d83612976565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612357602a83612976565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b60006123bd602683612976565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000820160008201516124298482611e93565b935050602082015161243b8482611ec3565b935050604082015161244d8482611eab565b935050505050565b60008201600080830154905061246a81612a86565b6124748582611e93565b9450506001830154905061248781612aa0565b6124918582611ec3565b94505061249d81612aba565b6124a78582611eab565b94505050505050565b6124b9816129f6565b82525050565b6124c8816129f6565b82525050565b6124d7816129f6565b82525050565b6124e681612a00565b82525050565b6124f581612a00565b82525050565b61250481612a10565b82525050565b61251381612a10565b82525050565b61252281612a10565b82525050565b61253961253482612a10565b612ade565b82525050565b600061254b8284611f2e565b915081905092915050565b60006125628284612416565b60608201915081905092915050565b600061257d8284612455565b60608201915081905092915050565b60006125988285612528565b6001820191506125a88284611f17565b6020820191508190509392505050565b60006020820190506125cd6000830184611eea565b92915050565b60006020820190506125e86000830184611edb565b92915050565b60006040820190506126036000830185611edb565b61261060208301846124b0565b9392505050565b600060608201905061262c6000830186611eea565b6126396020830185611eea565b61264660408301846124b0565b949350505050565b60006040820190506126636000830185611eea565b61267060208301846124b0565b9392505050565b600060208201905081810360008301526126918184611f5f565b905092915050565b600060208201905081810360008301526126b281611f98565b9050919050565b600060208201905081810360008301526126d281611fd8565b9050919050565b600060208201905081810360008301526126f281612018565b9050919050565b600060208201905081810360008301526127128161207e565b9050919050565b60006020820190508181036000830152612732816120be565b9050919050565b60006020820190508181036000830152612752816120fe565b9050919050565b600060208201905081810360008301526127728161213e565b9050919050565b600060208201905081810360008301526127928161217e565b9050919050565b600060208201905081810360008301526127b2816121e4565b9050919050565b600060208201905081810360008301526127d28161224a565b9050919050565b600060208201905081810360008301526127f28161228a565b9050919050565b60006020820190508181036000830152612812816122ca565b9050919050565b600060208201905081810360008301526128328161230a565b9050919050565b600060208201905081810360008301526128528161234a565b9050919050565b60006020820190508181036000830152612872816123b0565b9050919050565b600060a08201905061288e60008301886124bf565b61289b602083018761250a565b6128a860408301866124bf565b6128b560608301856124bf565b6128c26080830184611ef9565b9695505050505050565b60006020820190506128e160008301846124dd565b92915050565b60006040820190506128fc60008301856124fb565b6129096020830184611f08565b9392505050565b600060808201905061292560008301876124fb565b61293260208301866124fb565b61293f6040830185611f08565b61294c60608301846124b0565b95945050505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006129b9826129d6565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612a2882612a2f565b9050919050565b6000612a3a82612a41565b9050919050565b6000612a4c826129d6565b9050919050565b60005b83811015612a71578082015181840152602081019050612a56565b83811115612a80576000848401525b50505050565b6000612a99612a9483612b0e565b612987565b9050919050565b6000612ab3612aae83612b0e565b6129a1565b9050919050565b6000612acd612ac883612b1b565b612991565b9050919050565b6000819050919050565b6000612ae982612b01565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160001c9050919050565b60008160081c9050919050565b612b31816129ae565b8114612b3c57600080fd5b50565b612b48816129c0565b8114612b5357600080fd5b50565b612b5f816129cc565b8114612b6a57600080fd5b50565b612b76816129f6565b8114612b8157600080fd5b50565b612b8d81612a10565b8114612b9857600080fd5b5056fea264697066735822122033713fbc06fc98ebfb1480eb1fb0380c4ff666a6ec58c529f5305334818eb30164736f6c634300060c0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"parity\",\"type\":\"uint8\"},{\"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\":\"_vaa_expiry\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"parity\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"indexed\":true,\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"oldGuardian\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"parity\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"indexed\":true,\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"newGuardian\",\"type\":\"tuple\"}],\"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\":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\"}],\"name\":\"LogTokensLocked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"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\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"parity\",\"type\":\"uint8\"},{\"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\"}],\"name\":\"lockAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"}],\"name\":\"lockETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"vaa\",\"type\":\"bytes\"}],\"name\":\"submitVAA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaa_expiry\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol\":\"Wormhole\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/BytesLib.sol\":{\"keccak256\":\"0x4a28e69afc4c1c1aee48c7b497f9b8452b295ddcf4bbf453d594a1467016d5f2\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://279e22c43f79567e9f7842cfca8ad2329bbbad2eac30413b620796d51f308719\",\"dweb:/ipfs/QmbdRLJYoKJxDbDLeverNMHsNFEcxnohAA713UFLjLm3Jy\"]},\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/SchnorrSECP256K1.sol\":{\"keccak256\":\"0x83c638d63ee08fd708c97d72ab10248031773f6172acabcc4e8ee96725679906\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82c05b3e8d17a95032d29053737cb982eecdc540f3f5a8f9ab6914a41bf8ac9f\",\"dweb:/ipfs/QmUccQmFUzrwAHvra98jZ7Fv5jAikQQrMCeno8g1Aqqz2Y\"]},\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol\":{\"keccak256\":\"0x8204e2255e1f3f3d1ef09b6b6a7209ae6affc05a98d666579c729ab726e5e8c6\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://0584f2cce158c84deb5eb9dee3eadb38b7fcbe6b014119b77d3ce8cd900527a1\",\"dweb:/ipfs/QmSvgDRUEVzZoNitpjdESKtWrPjCaHNWq3SPo9tJFwVWms\"]},\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/WrappedAsset.sol\":{\"keccak256\":\"0x029a9b6e1df05a76c4c09570bf403eb91a2df33acdb0b7414e950f35fa240b97\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://a1d5d79ed2fdbe41c9eb88971ab0c7677b66579d6ef322a5eb7b23bf8fc9f891\",\"dweb:/ipfs/QmPRZWXa3hx87fJ9u14rDxZ7mYXL2EjQHcDmC2jYZEDMNW\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf3b30f8a49631420635a8c35daacfcaa338012755f18a76fdd118730256f9a27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d7de652204c2ee291a61aa984103dfc7ae4392d651fbbc44a0079caee7c69a3\",\"dweb:/ipfs/Qmcw1cQnq9eWDnrCBwU3TNyqLfTMUFg5YKpYUkELoMPuUE\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]}},\"version\":1}", + "bytecode": "0x60806040526002600060146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b506040516200334a3803806200334a833981810160405281019062000053919062000213565b82600160008063ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff1602179055509050506000600260006101000a81548163ffffffff021916908363ffffffff16021790555080600260046101000a81548163ffffffff021916908363ffffffff160217905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200035a565b6000815190506200015f81620002f2565b92915050565b6000606082840312156200017857600080fd5b62000184606062000269565b905060006200019684828501620001ce565b6000830152506020620001ac84828501620001fc565b6020830152506040620001c284828501620001e5565b60408301525092915050565b600081519050620001df816200030c565b92915050565b600081519050620001f68162000326565b92915050565b6000815190506200020d8162000340565b92915050565b600080600060a084860312156200022957600080fd5b6000620002398682870162000165565b93505060606200024c868287016200014e565b92505060806200025f86828701620001e5565b9150509250925092565b6000604051905081810181811067ffffffffffffffff821117156200028d57600080fd5b8060405250919050565b6000620002a482620002ab565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b620002fd8162000297565b81146200030957600080fd5b50565b6200031781620002cb565b81146200032357600080fd5b50565b6200033181620002d5565b81146200033d57600080fd5b50565b6200034b81620002e5565b81146200035757600080fd5b50565b612fe0806200036a6000396000f3fe60806040526004361061008a5760003560e01c80637f04d9e6116100595780637f04d9e6146101c6578063822d82b3146101f157806399da1d3c1461021c578063b6694c2a14610247578063e66fd37314610284576100ca565b80631a2be4da146101055780633bc0aee61461014257806342b0aefa1461016b578063780e2183146101aa576100ca565b366100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c190612a5a565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100fc90612a5a565b60405180910390fd5b34801561011157600080fd5b5061012c60048036038101906101279190611f41565b6102ad565b60405161013991906129dd565b60405180910390f35b34801561014e57600080fd5b5061016960048036038101906101649190612084565b6102cd565b005b34801561017757600080fd5b50610192600480360381019061018d91906120f2565b6109e4565b6040516101a193929190612c8d565b60405180910390f35b6101c460048036038101906101bf9190612048565b610a2b565b005b3480156101d257600080fd5b506101db610b7c565b6040516101e89190612cc4565b60405180910390f35b3480156101fd57600080fd5b50610206610b92565b6040516102139190612cc4565b60405180910390f35b34801561022857600080fd5b50610231610ba8565b60405161023e919061291e565b60405180910390f35b34801561025357600080fd5b5061026e60048036038101906102699190611ff6565b610bcc565b60405161027b919061291e565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a69190611f6a565b610bff565b005b60056020528060005260406000206000915054906101000a900460ff1681565b6000610327600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b905060018160ff161461036f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036690612ada565b60405180910390fd5b60006103c9600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061105590919063ffffffff16565b90506000610425600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110b390919063ffffffff16565b90506000610481602587878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061111190919063ffffffff16565b905060006104dd603988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061105590919063ffffffff16565b905042600260049054906101000a900463ffffffff16820163ffffffff161161053b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053290612afa565b60405180910390fd5b600061059c6039808a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061117e9092919063ffffffff16565b8051906020012090506003600082815260200190815260200160002060009054906101000a900460ff1615610606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fd90612a3a565b60405180910390fd5b61060e611e10565b600160008763ffffffff1663ffffffff168152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816040015163ffffffff1614806106a9575042816040015163ffffffff16115b6106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90612bba565b60405180910390fd5b73__Schnorr_______________________________63ff51dff282600001518360200151888660001c896040518663ffffffff1660e01b8152600401610732959493929190612c3a565b60206040518083038186803b15801561074a57600080fd5b505af415801561075e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107829190611fcd565b6107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b890612b1a565b60405180910390fd5b600061081b603d8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b90506000610877603e8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b905060606108d8603f8360ff168e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061117e9092919063ffffffff16565b905060018360ff16141561095457600260009054906101000a900463ffffffff1663ffffffff168963ffffffff1614610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d90612a9a565b60405180910390fd5b61094f81611240565b6109aa565b60108360ff16141561096e5761096981611558565b6109a9565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090612a1a565b60405180910390fd5b5b60016003600087815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505050505050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900463ffffffff16905083565b6000341415610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6690612b7a565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b83600060149054906101000a900460ff168634604051610b709493929190612d08565b60405180910390a35050565b600260049054906101000a900463ffffffff1681565b600260009054906101000a900463ffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000831415610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a90612b7a565b60405180910390fd5b60008060149054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e1c578573ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401610ce5929190612954565b600060405180830381600087803b158015610cff57600080fd5b505af1158015610d13573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5d57600080fd5b505afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d95919061211b565b91508573ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ddd57600080fd5b505afa158015610df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e15919061201f565b9050610f97565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e579190612939565b60206040518083038186803b158015610e6f57600080fd5b505afa158015610e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea791906120c9565b9050610ed63330888a73ffffffffffffffffffffffffffffffffffffffff1661180e909392919063ffffffff16565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f119190612939565b60206040518083038186803b158015610f2957600080fd5b505afa158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6191906120c9565b9050610f76828261189790919063ffffffff16565b96508773ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b8585888a604051610fe79493929190612d08565b60405180910390a3505050505050565b60006001820183511015611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612aba565b60405180910390fd5b60008260018501015190508091505092915050565b6000600482018351101561109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109590612aba565b60405180910390fd5b60008260048501015190508091505092915050565b600060208201835110156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612aba565b60405180910390fd5b60008260208501015190508091505092915050565b6000601482018351101561115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612aba565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b6060818301845110156111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90612aba565b60405180910390fd5b60608215600081146111e357604051915060208201604052611234565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156112215780518352602083019250602081019050611204565b50868552601f19601f8301166040525050505b50809150509392505050565b60006112566000836110b390919063ffffffff16565b9050600061126e602084610ff790919063ffffffff16565b60ff169050600061128960218561105590919063ffffffff16565b9050600260009054906101000a900463ffffffff1663ffffffff168163ffffffff16116112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e290612b3a565b60405180910390fd5b6001807ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141901c018310611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134a90612b5a565b60405180910390fd5b6001821115611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90612a7a565b60405180910390fd5b6000600260009054906101000a900463ffffffff16905081600260006101000a81548163ffffffff021916908363ffffffff1602179055506113d7611e10565b60405180606001604052808681526020018560ff168152602001600063ffffffff1681525090508060016000600260009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff160217905550905050600260049054906101000a900463ffffffff164201600160008463ffffffff1663ffffffff16815260200190815260200160002060010160016101000a81548163ffffffff021916908363ffffffff160217905550806040516114e891906128bc565b6040518091039020600160008463ffffffff1663ffffffff16815260200190815260200160002060405161151c91906128d7565b60405180910390207f776a7721d091beb15fb219d7be3c92b83fa7c10428af15a7312461bc3bc52e0b60405160405180910390a3505050505050565b600061156e600483610ff790919063ffffffff16565b90506000611586600584610ff790919063ffffffff16565b9050600061159e60328561111190919063ffffffff16565b905060006115b6604686610ff790919063ffffffff16565b905060006115ce6067876110b390919063ffffffff16565b90508360ff168560ff161415611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090612c1a565b60405180910390fd5b600060149054906101000a900460ff1660ff168460ff1614611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612b9a565b60405180910390fd5b600060149054906101000a900460ff1660ff168260ff16146117c15760006116a26047886118e190919063ffffffff16565b9050600083826040516020016116b99291906128f2565b60405160208183030381529060405280519060200120905060006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561174c5761174982868561193f565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b81526004016117879291906129b4565b600060405180830381600087803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b50505050505050611806565b60006117d760538861111190919063ffffffff16565b905061180484838373ffffffffffffffffffffffffffffffffffffffff16611ae29092919063ffffffff16565b505b505050505050565b611891846323b872dd60e01b85858560405160240161182f9392919061297d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b68565b50505050565b60006118d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2f565b905092915050565b6000602082018351101561192a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192190612aba565b60405180910390fd5b60008260208501015190508091505092915050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b81526004016119fe929190612cdf565b600060405180830381600087803b158015611a1857600080fd5b505af1158015611a2c573d6000803e3d6000fd5b50505050816004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b611b638363a9059cbb60e01b8484604051602401611b019291906129b4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b68565b505050565b6060611bca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c8a9092919063ffffffff16565b9050600081511115611c2a5780806020019051810190611bea9190611fcd565b611c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2090612bfa565b60405180910390fd5b5b505050565b6000838311158290611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e91906129f8565b60405180910390fd5b5060008385039050809150509392505050565b6060611c998484600085611ca2565b90509392505050565b6060611cad85611dc5565b611cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce390612bda565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611d1691906128a5565b60006040518083038185875af1925050503d8060008114611d53576040519150601f19603f3d011682016040523d82523d6000602084013e611d58565b606091505b50915091508115611d6d578092505050611dbd565b600081511115611d805780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db491906129f8565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611e0757506000801b8214155b92505050919050565b604051806060016040528060008152602001600060ff168152602001600063ffffffff1681525090565b600081359050611e4981612f20565b92915050565b600081519050611e5e81612f37565b92915050565b600081359050611e7381612f4e565b92915050565b600081519050611e8881612f4e565b92915050565b60008083601f840112611ea057600080fd5b8235905067ffffffffffffffff811115611eb957600080fd5b602083019150836001820283011115611ed157600080fd5b9250929050565b600081359050611ee781612f65565b92915050565b600081519050611efc81612f65565b92915050565b600081359050611f1181612f7c565b92915050565b600081359050611f2681612f93565b92915050565b600081519050611f3b81612f93565b92915050565b600060208284031215611f5357600080fd5b6000611f6184828501611e3a565b91505092915050565b60008060008060808587031215611f8057600080fd5b6000611f8e87828801611e3a565b9450506020611f9f87828801611ed8565b9350506040611fb087828801611e64565b9250506060611fc187828801611f17565b91505092959194509250565b600060208284031215611fdf57600080fd5b6000611fed84828501611e4f565b91505092915050565b60006020828403121561200857600080fd5b600061201684828501611e64565b91505092915050565b60006020828403121561203157600080fd5b600061203f84828501611e79565b91505092915050565b6000806040838503121561205b57600080fd5b600061206985828601611e64565b925050602061207a85828601611f17565b9150509250929050565b6000806020838503121561209757600080fd5b600083013567ffffffffffffffff8111156120b157600080fd5b6120bd85828601611e8e565b92509250509250929050565b6000602082840312156120db57600080fd5b60006120e984828501611eed565b91505092915050565b60006020828403121561210457600080fd5b600061211284828501611f02565b91505092915050565b60006020828403121561212d57600080fd5b600061213b84828501611f2c565b91505092915050565b60006121508383612834565b60208301905092915050565b60006121688383612852565b60208301905092915050565b6000612180838361287f565b60208301905092915050565b61219581612e15565b82525050565b6121a481612da6565b82525050565b6121b381612da6565b82525050565b6121c281612db8565b82525050565b6121d181612dc4565b82525050565b6121e86121e382612dc4565b612ecc565b82525050565b60006121f982612d4d565b6122038185612d63565b9350612213818560208601612e4b565b80840191505092915050565b600061222a82612d58565b6122348185612d6e565b9350612244818560208601612e4b565b61224d81612ee8565b840191505092915050565b6000612265601283612d6e565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b60006122a5601883612d6e565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b60006122e5602c83612d6e565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b600061234b601083612d6e565b91507f696e76616c6964207920706172697479000000000000000000000000000000006000830152602082019050919050565b600061238b603983612d6e565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b60006123f1601283612d6e565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000612431601883612d6e565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000612471600f83612d6e565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b60006124b1601583612d6e565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b60006124f1602b83612d6e565b91507f696e646578206f66206e657720677561726469616e20736574206d757374206260008301527f65203e2063757272656e740000000000000000000000000000000000000000006020830152604082019050919050565b6000612557602983612d6e565b91507f696e76616c6964206b657920666f722066617374205363686e6f72722076657260008301527f696669636174696f6e00000000000000000000000000000000000000000000006020830152604082019050919050565b60006125bd601483612d6e565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b60006125fd601983612d6e565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b600061263d601883612d6e565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b600061267d601d83612d6e565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b60006126bd602a83612d6e565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612723602683612d6e565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60008201600082015161278f8482612144565b93505060208201516127a18482612174565b93505060408201516127b3848261215c565b935050505050565b6000820160008083015490506127d081612e7e565b6127da8582612144565b945050600183015490506127ed81612e98565b6127f78582612174565b94505061280381612eb2565b61280d858261215c565b94505050505050565b61281f81612dee565b82525050565b61282e81612dee565b82525050565b61283d81612dee565b82525050565b61284c81612df8565b82525050565b61285b81612df8565b82525050565b61286a81612e08565b82525050565b61287981612e08565b82525050565b61288881612e08565b82525050565b61289f61289a82612e08565b612ed6565b82525050565b60006128b182846121ee565b915081905092915050565b60006128c8828461277c565b60608201915081905092915050565b60006128e382846127bb565b60608201915081905092915050565b60006128fe828561288e565b60018201915061290e82846121d7565b6020820191508190509392505050565b6000602082019050612933600083018461219b565b92915050565b600060208201905061294e600083018461218c565b92915050565b6000604082019050612969600083018561218c565b6129766020830184612816565b9392505050565b6000606082019050612992600083018661219b565b61299f602083018561219b565b6129ac6040830184612816565b949350505050565b60006040820190506129c9600083018561219b565b6129d66020830184612816565b9392505050565b60006020820190506129f260008301846121b9565b92915050565b60006020820190508181036000830152612a12818461221f565b905092915050565b60006020820190508181036000830152612a3381612258565b9050919050565b60006020820190508181036000830152612a5381612298565b9050919050565b60006020820190508181036000830152612a73816122d8565b9050919050565b60006020820190508181036000830152612a938161233e565b9050919050565b60006020820190508181036000830152612ab38161237e565b9050919050565b60006020820190508181036000830152612ad3816123e4565b9050919050565b60006020820190508181036000830152612af381612424565b9050919050565b60006020820190508181036000830152612b1381612464565b9050919050565b60006020820190508181036000830152612b33816124a4565b9050919050565b60006020820190508181036000830152612b53816124e4565b9050919050565b60006020820190508181036000830152612b738161254a565b9050919050565b60006020820190508181036000830152612b93816125b0565b9050919050565b60006020820190508181036000830152612bb3816125f0565b9050919050565b60006020820190508181036000830152612bd381612630565b9050919050565b60006020820190508181036000830152612bf381612670565b9050919050565b60006020820190508181036000830152612c13816126b0565b9050919050565b60006020820190508181036000830152612c3381612716565b9050919050565b600060a082019050612c4f6000830188612825565b612c5c6020830187612870565b612c696040830186612825565b612c766060830185612825565b612c8360808301846121aa565b9695505050505050565b6000606082019050612ca26000830186612816565b612caf6020830185612861565b612cbc6040830184612843565b949350505050565b6000602082019050612cd96000830184612843565b92915050565b6000604082019050612cf46000830185612861565b612d0160208301846121c8565b9392505050565b6000608082019050612d1d6000830187612861565b612d2a6020830186612861565b612d3760408301856121c8565b612d446060830184612816565b95945050505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612db182612dce565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612e2082612e27565b9050919050565b6000612e3282612e39565b9050919050565b6000612e4482612dce565b9050919050565b60005b83811015612e69578082015181840152602081019050612e4e565b83811115612e78576000848401525b50505050565b6000612e91612e8c83612f06565b612d7f565b9050919050565b6000612eab612ea683612f06565b612d99565b9050919050565b6000612ec5612ec083612f13565b612d89565b9050919050565b6000819050919050565b6000612ee182612ef9565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160001c9050919050565b60008160081c9050919050565b612f2981612da6565b8114612f3457600080fd5b50565b612f4081612db8565b8114612f4b57600080fd5b50565b612f5781612dc4565b8114612f6257600080fd5b50565b612f6e81612dee565b8114612f7957600080fd5b50565b612f8581612df8565b8114612f9057600080fd5b50565b612f9c81612e08565b8114612fa757600080fd5b5056fea264697066735822122047d9c8466a232ae962552bd67dd62980ed6d384b15b4bbc45385e966dcc4ef8d64736f6c634300060c0033", + "deployedBytecode": "0x60806040526004361061008a5760003560e01c80637f04d9e6116100595780637f04d9e6146101c6578063822d82b3146101f157806399da1d3c1461021c578063b6694c2a14610247578063e66fd37314610284576100ca565b80631a2be4da146101055780633bc0aee61461014257806342b0aefa1461016b578063780e2183146101aa576100ca565b366100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c190612a5a565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100fc90612a5a565b60405180910390fd5b34801561011157600080fd5b5061012c60048036038101906101279190611f41565b6102ad565b60405161013991906129dd565b60405180910390f35b34801561014e57600080fd5b5061016960048036038101906101649190612084565b6102cd565b005b34801561017757600080fd5b50610192600480360381019061018d91906120f2565b6109e4565b6040516101a193929190612c8d565b60405180910390f35b6101c460048036038101906101bf9190612048565b610a2b565b005b3480156101d257600080fd5b506101db610b7c565b6040516101e89190612cc4565b60405180910390f35b3480156101fd57600080fd5b50610206610b92565b6040516102139190612cc4565b60405180910390f35b34801561022857600080fd5b50610231610ba8565b60405161023e919061291e565b60405180910390f35b34801561025357600080fd5b5061026e60048036038101906102699190611ff6565b610bcc565b60405161027b919061291e565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a69190611f6a565b610bff565b005b60056020528060005260406000206000915054906101000a900460ff1681565b6000610327600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b905060018160ff161461036f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036690612ada565b60405180910390fd5b60006103c9600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061105590919063ffffffff16565b90506000610425600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110b390919063ffffffff16565b90506000610481602587878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061111190919063ffffffff16565b905060006104dd603988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061105590919063ffffffff16565b905042600260049054906101000a900463ffffffff16820163ffffffff161161053b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053290612afa565b60405180910390fd5b600061059c6039808a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061117e9092919063ffffffff16565b8051906020012090506003600082815260200190815260200160002060009054906101000a900460ff1615610606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fd90612a3a565b60405180910390fd5b61060e611e10565b600160008763ffffffff1663ffffffff168152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816040015163ffffffff1614806106a9575042816040015163ffffffff16115b6106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90612bba565b60405180910390fd5b73__Schnorr_______________________________63ff51dff282600001518360200151888660001c896040518663ffffffff1660e01b8152600401610732959493929190612c3a565b60206040518083038186803b15801561074a57600080fd5b505af415801561075e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107829190611fcd565b6107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b890612b1a565b60405180910390fd5b600061081b603d8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b90506000610877603e8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b905060606108d8603f8360ff168e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061117e9092919063ffffffff16565b905060018360ff16141561095457600260009054906101000a900463ffffffff1663ffffffff168963ffffffff1614610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d90612a9a565b60405180910390fd5b61094f81611240565b6109aa565b60108360ff16141561096e5761096981611558565b6109a9565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090612a1a565b60405180910390fd5b5b60016003600087815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505050505050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900463ffffffff16905083565b6000341415610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6690612b7a565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b83600060149054906101000a900460ff168634604051610b709493929190612d08565b60405180910390a35050565b600260049054906101000a900463ffffffff1681565b600260009054906101000a900463ffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000831415610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a90612b7a565b60405180910390fd5b60008060149054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e1c578573ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401610ce5929190612954565b600060405180830381600087803b158015610cff57600080fd5b505af1158015610d13573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5d57600080fd5b505afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d95919061211b565b91508573ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ddd57600080fd5b505afa158015610df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e15919061201f565b9050610f97565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e579190612939565b60206040518083038186803b158015610e6f57600080fd5b505afa158015610e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea791906120c9565b9050610ed63330888a73ffffffffffffffffffffffffffffffffffffffff1661180e909392919063ffffffff16565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f119190612939565b60206040518083038186803b158015610f2957600080fd5b505afa158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6191906120c9565b9050610f76828261189790919063ffffffff16565b96508773ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b8585888a604051610fe79493929190612d08565b60405180910390a3505050505050565b60006001820183511015611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612aba565b60405180910390fd5b60008260018501015190508091505092915050565b6000600482018351101561109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109590612aba565b60405180910390fd5b60008260048501015190508091505092915050565b600060208201835110156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612aba565b60405180910390fd5b60008260208501015190508091505092915050565b6000601482018351101561115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612aba565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b6060818301845110156111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90612aba565b60405180910390fd5b60608215600081146111e357604051915060208201604052611234565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156112215780518352602083019250602081019050611204565b50868552601f19601f8301166040525050505b50809150509392505050565b60006112566000836110b390919063ffffffff16565b9050600061126e602084610ff790919063ffffffff16565b60ff169050600061128960218561105590919063ffffffff16565b9050600260009054906101000a900463ffffffff1663ffffffff168163ffffffff16116112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e290612b3a565b60405180910390fd5b6001807ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141901c018310611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134a90612b5a565b60405180910390fd5b6001821115611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90612a7a565b60405180910390fd5b6000600260009054906101000a900463ffffffff16905081600260006101000a81548163ffffffff021916908363ffffffff1602179055506113d7611e10565b60405180606001604052808681526020018560ff168152602001600063ffffffff1681525090508060016000600260009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff160217905550905050600260049054906101000a900463ffffffff164201600160008463ffffffff1663ffffffff16815260200190815260200160002060010160016101000a81548163ffffffff021916908363ffffffff160217905550806040516114e891906128bc565b6040518091039020600160008463ffffffff1663ffffffff16815260200190815260200160002060405161151c91906128d7565b60405180910390207f776a7721d091beb15fb219d7be3c92b83fa7c10428af15a7312461bc3bc52e0b60405160405180910390a3505050505050565b600061156e600483610ff790919063ffffffff16565b90506000611586600584610ff790919063ffffffff16565b9050600061159e60328561111190919063ffffffff16565b905060006115b6604686610ff790919063ffffffff16565b905060006115ce6067876110b390919063ffffffff16565b90508360ff168560ff161415611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090612c1a565b60405180910390fd5b600060149054906101000a900460ff1660ff168460ff1614611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612b9a565b60405180910390fd5b600060149054906101000a900460ff1660ff168260ff16146117c15760006116a26047886118e190919063ffffffff16565b9050600083826040516020016116b99291906128f2565b60405160208183030381529060405280519060200120905060006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561174c5761174982868561193f565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b81526004016117879291906129b4565b600060405180830381600087803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b50505050505050611806565b60006117d760538861111190919063ffffffff16565b905061180484838373ffffffffffffffffffffffffffffffffffffffff16611ae29092919063ffffffff16565b505b505050505050565b611891846323b872dd60e01b85858560405160240161182f9392919061297d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b68565b50505050565b60006118d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2f565b905092915050565b6000602082018351101561192a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192190612aba565b60405180910390fd5b60008260208501015190508091505092915050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b81526004016119fe929190612cdf565b600060405180830381600087803b158015611a1857600080fd5b505af1158015611a2c573d6000803e3d6000fd5b50505050816004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b611b638363a9059cbb60e01b8484604051602401611b019291906129b4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b68565b505050565b6060611bca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c8a9092919063ffffffff16565b9050600081511115611c2a5780806020019051810190611bea9190611fcd565b611c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2090612bfa565b60405180910390fd5b5b505050565b6000838311158290611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e91906129f8565b60405180910390fd5b5060008385039050809150509392505050565b6060611c998484600085611ca2565b90509392505050565b6060611cad85611dc5565b611cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce390612bda565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611d1691906128a5565b60006040518083038185875af1925050503d8060008114611d53576040519150601f19603f3d011682016040523d82523d6000602084013e611d58565b606091505b50915091508115611d6d578092505050611dbd565b600081511115611d805780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db491906129f8565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611e0757506000801b8214155b92505050919050565b604051806060016040528060008152602001600060ff168152602001600063ffffffff1681525090565b600081359050611e4981612f20565b92915050565b600081519050611e5e81612f37565b92915050565b600081359050611e7381612f4e565b92915050565b600081519050611e8881612f4e565b92915050565b60008083601f840112611ea057600080fd5b8235905067ffffffffffffffff811115611eb957600080fd5b602083019150836001820283011115611ed157600080fd5b9250929050565b600081359050611ee781612f65565b92915050565b600081519050611efc81612f65565b92915050565b600081359050611f1181612f7c565b92915050565b600081359050611f2681612f93565b92915050565b600081519050611f3b81612f93565b92915050565b600060208284031215611f5357600080fd5b6000611f6184828501611e3a565b91505092915050565b60008060008060808587031215611f8057600080fd5b6000611f8e87828801611e3a565b9450506020611f9f87828801611ed8565b9350506040611fb087828801611e64565b9250506060611fc187828801611f17565b91505092959194509250565b600060208284031215611fdf57600080fd5b6000611fed84828501611e4f565b91505092915050565b60006020828403121561200857600080fd5b600061201684828501611e64565b91505092915050565b60006020828403121561203157600080fd5b600061203f84828501611e79565b91505092915050565b6000806040838503121561205b57600080fd5b600061206985828601611e64565b925050602061207a85828601611f17565b9150509250929050565b6000806020838503121561209757600080fd5b600083013567ffffffffffffffff8111156120b157600080fd5b6120bd85828601611e8e565b92509250509250929050565b6000602082840312156120db57600080fd5b60006120e984828501611eed565b91505092915050565b60006020828403121561210457600080fd5b600061211284828501611f02565b91505092915050565b60006020828403121561212d57600080fd5b600061213b84828501611f2c565b91505092915050565b60006121508383612834565b60208301905092915050565b60006121688383612852565b60208301905092915050565b6000612180838361287f565b60208301905092915050565b61219581612e15565b82525050565b6121a481612da6565b82525050565b6121b381612da6565b82525050565b6121c281612db8565b82525050565b6121d181612dc4565b82525050565b6121e86121e382612dc4565b612ecc565b82525050565b60006121f982612d4d565b6122038185612d63565b9350612213818560208601612e4b565b80840191505092915050565b600061222a82612d58565b6122348185612d6e565b9350612244818560208601612e4b565b61224d81612ee8565b840191505092915050565b6000612265601283612d6e565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b60006122a5601883612d6e565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b60006122e5602c83612d6e565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b600061234b601083612d6e565b91507f696e76616c6964207920706172697479000000000000000000000000000000006000830152602082019050919050565b600061238b603983612d6e565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b60006123f1601283612d6e565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000612431601883612d6e565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000612471600f83612d6e565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b60006124b1601583612d6e565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b60006124f1602b83612d6e565b91507f696e646578206f66206e657720677561726469616e20736574206d757374206260008301527f65203e2063757272656e740000000000000000000000000000000000000000006020830152604082019050919050565b6000612557602983612d6e565b91507f696e76616c6964206b657920666f722066617374205363686e6f72722076657260008301527f696669636174696f6e00000000000000000000000000000000000000000000006020830152604082019050919050565b60006125bd601483612d6e565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b60006125fd601983612d6e565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b600061263d601883612d6e565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b600061267d601d83612d6e565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b60006126bd602a83612d6e565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612723602683612d6e565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60008201600082015161278f8482612144565b93505060208201516127a18482612174565b93505060408201516127b3848261215c565b935050505050565b6000820160008083015490506127d081612e7e565b6127da8582612144565b945050600183015490506127ed81612e98565b6127f78582612174565b94505061280381612eb2565b61280d858261215c565b94505050505050565b61281f81612dee565b82525050565b61282e81612dee565b82525050565b61283d81612dee565b82525050565b61284c81612df8565b82525050565b61285b81612df8565b82525050565b61286a81612e08565b82525050565b61287981612e08565b82525050565b61288881612e08565b82525050565b61289f61289a82612e08565b612ed6565b82525050565b60006128b182846121ee565b915081905092915050565b60006128c8828461277c565b60608201915081905092915050565b60006128e382846127bb565b60608201915081905092915050565b60006128fe828561288e565b60018201915061290e82846121d7565b6020820191508190509392505050565b6000602082019050612933600083018461219b565b92915050565b600060208201905061294e600083018461218c565b92915050565b6000604082019050612969600083018561218c565b6129766020830184612816565b9392505050565b6000606082019050612992600083018661219b565b61299f602083018561219b565b6129ac6040830184612816565b949350505050565b60006040820190506129c9600083018561219b565b6129d66020830184612816565b9392505050565b60006020820190506129f260008301846121b9565b92915050565b60006020820190508181036000830152612a12818461221f565b905092915050565b60006020820190508181036000830152612a3381612258565b9050919050565b60006020820190508181036000830152612a5381612298565b9050919050565b60006020820190508181036000830152612a73816122d8565b9050919050565b60006020820190508181036000830152612a938161233e565b9050919050565b60006020820190508181036000830152612ab38161237e565b9050919050565b60006020820190508181036000830152612ad3816123e4565b9050919050565b60006020820190508181036000830152612af381612424565b9050919050565b60006020820190508181036000830152612b1381612464565b9050919050565b60006020820190508181036000830152612b33816124a4565b9050919050565b60006020820190508181036000830152612b53816124e4565b9050919050565b60006020820190508181036000830152612b738161254a565b9050919050565b60006020820190508181036000830152612b93816125b0565b9050919050565b60006020820190508181036000830152612bb3816125f0565b9050919050565b60006020820190508181036000830152612bd381612630565b9050919050565b60006020820190508181036000830152612bf381612670565b9050919050565b60006020820190508181036000830152612c13816126b0565b9050919050565b60006020820190508181036000830152612c3381612716565b9050919050565b600060a082019050612c4f6000830188612825565b612c5c6020830187612870565b612c696040830186612825565b612c766060830185612825565b612c8360808301846121aa565b9695505050505050565b6000606082019050612ca26000830186612816565b612caf6020830185612861565b612cbc6040830184612843565b949350505050565b6000602082019050612cd96000830184612843565b92915050565b6000604082019050612cf46000830185612861565b612d0160208301846121c8565b9392505050565b6000608082019050612d1d6000830187612861565b612d2a6020830186612861565b612d3760408301856121c8565b612d446060830184612816565b95945050505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612db182612dce565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612e2082612e27565b9050919050565b6000612e3282612e39565b9050919050565b6000612e4482612dce565b9050919050565b60005b83811015612e69578082015181840152602081019050612e4e565b83811115612e78576000848401525b50505050565b6000612e91612e8c83612f06565b612d7f565b9050919050565b6000612eab612ea683612f06565b612d99565b9050919050565b6000612ec5612ec083612f13565b612d89565b9050919050565b6000819050919050565b6000612ee182612ef9565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160001c9050919050565b60008160081c9050919050565b612f2981612da6565b8114612f3457600080fd5b50565b612f4081612db8565b8114612f4b57600080fd5b50565b612f5781612dc4565b8114612f6257600080fd5b50565b612f6e81612dee565b8114612f7957600080fd5b50565b612f8581612df8565b8114612f9057600080fd5b50565b612f9c81612e08565b8114612fa757600080fd5b5056fea264697066735822122047d9c8466a232ae962552bd67dd62980ed6d384b15b4bbc45385e966dcc4ef8d64736f6c634300060c0033", "immutableReferences": {}, - "sourceMap": "380:8442:2:-:0;;;629:1;612:18;;;;;;;;;;;;;;;;;;;;1834:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1953:20;1934:13;:16;1948:1;1934:16;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2047:1;2026:18;;:22;;;;;;;;;;;;;;;;;;2080:20;2059:18;;:41;;;;;;;;;;;;;;;;;;1834:273;;380:8442;;5:134:-1;;89:6;83:13;74:22;;101:33;128:5;101:33;:::i;:::-;68:71;;;;:::o;180:665::-;;308:4;296:9;291:3;287:19;283:30;280:2;;;326:1;323;316:12;280:2;344:20;359:4;344:20;:::i;:::-;335:29;;411:1;443:60;499:3;490:6;479:9;475:22;443:60;:::i;:::-;436:4;429:5;425:16;418:86;374:141;567:2;600:58;654:3;645:6;634:9;630:22;600:58;:::i;:::-;593:4;586:5;582:16;575:84;525:145;731:2;764:59;819:3;810:6;799:9;795:22;764:59;:::i;:::-;757:4;750:5;746:16;739:85;680:155;274:571;;;;:::o;852:134::-;;936:6;930:13;921:22;;948:33;975:5;948:33;:::i;:::-;915:71;;;;:::o;993:132::-;;1076:6;1070:13;1061:22;;1088:32;1114:5;1088:32;:::i;:::-;1055:70;;;;:::o;1132:130::-;;1214:6;1208:13;1199:22;;1226:31;1251:5;1226:31;:::i;:::-;1193:69;;;;:::o;1269:456::-;;;1429:3;1417:9;1408:7;1404:23;1400:33;1397:2;;;1446:1;1443;1436:12;1397:2;1481:1;1498:92;1582:7;1573:6;1562:9;1558:22;1498:92;:::i;:::-;1488:102;;1460:136;1627:2;1645:64;1701:7;1692:6;1681:9;1677:22;1645:64;:::i;:::-;1635:74;;1606:109;1391:334;;;;;:::o;1732:256::-;;1794:2;1788:9;1778:19;;1832:4;1824:6;1820:17;1931:6;1919:10;1916:22;1895:18;1883:10;1880:34;1877:62;1874:2;;;1952:1;1949;1942:12;1874:2;1972:10;1968:2;1961:22;1772:216;;;;:::o;1995:91::-;;2057:24;2075:5;2057:24;:::i;:::-;2046:35;;2040:46;;;:::o;2093:121::-;;2166:42;2159:5;2155:54;2144:65;;2138:76;;;:::o;2221:72::-;;2283:5;2272:16;;2266:27;;;:::o;2300:88::-;;2372:10;2365:5;2361:22;2350:33;;2344:44;;;:::o;2395:81::-;;2466:4;2459:5;2455:16;2444:27;;2438:38;;;:::o;2483:117::-;2552:24;2570:5;2552:24;:::i;:::-;2545:5;2542:35;2532:2;;2591:1;2588;2581:12;2532:2;2526:74;:::o;2607:117::-;2676:24;2694:5;2676:24;:::i;:::-;2669:5;2666:35;2656:2;;2715:1;2712;2705:12;2656:2;2650:74;:::o;2731:115::-;2799:23;2816:5;2799:23;:::i;:::-;2792:5;2789:34;2779:2;;2837:1;2834;2827:12;2779:2;2773:73;:::o;2853:113::-;2920:22;2936:5;2920:22;:::i;:::-;2913:5;2910:33;2900:2;;2957:1;2954;2947:12;2900:2;2894:72;:::o;380:8442:2:-;;;;;;;", - "deployedSourceMap": "380:8442:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8764:54;;;;;;;;;;:::i;:::-;;;;;;;;380:8442;8679:54;;;;;;;;;;:::i;:::-;;;;;;;;2113:1723;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8231:416;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1579:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1489:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;544:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7063:1162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2113:1723;2183:13;2199:14;2211:1;2199:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2183:30;;2242:1;2231:7;:12;;;2223:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2329:29;2361:15;2374:1;2361:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;2329:47;;2387:17;2407:16;2421:1;2407:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;;:::i;:::-;2387:36;;2433:19;2455:17;2469:2;2455:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;;:::i;:::-;2433:39;;2530:16;2549;2562:2;2549:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;;:::i;:::-;2530:35;;2709:15;2696:10;;;;;;;;;;;2684:9;:22;:40;;;2676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2780:12;2805:30;2815:2;2832;2819:3;;:10;;:15;2805:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;;:::i;:::-;2795:41;;;;;;2780:56;;2855:12;:18;2868:4;2855:18;;;;;;;;;;;;;;;;;;;;;2854:19;2846:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2913:31;;:::i;:::-;2947:13;:37;2961:22;2947:37;;;;;;;;;;;;;;;2913:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3034:1;3002:12;:28;;;:33;;;:83;;;;3070:15;3039:12;:28;;;:46;;;3002:83;2994:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3145:7;:23;3186:12;:14;;;3218:12;:19;;;3255:9;3290:4;3282:13;;3313:11;3145:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3124:252;;;;;;;;;;;;:::i;:::-;;;;;;;;;3387:12;3402:15;3414:2;3402:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;3387:30;;3427:17;3447:15;3459:2;3447:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;3427:35;;3472:20;3495:26;3505:2;3509:11;3495:26;;:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;;:::i;:::-;3472:49;;3569:4;3559:6;:14;;;3555:204;;;3589:29;3610:7;3589:20;:29::i;:::-;3555:204;;;3649:4;3639:6;:14;;;3635:124;;;3669:20;3681:7;3669:11;:20::i;:::-;3635:124;;;3720:28;;;;;;;;;;:::i;:::-;;;;;;;;3635:124;3555:204;3825:4;3804:12;:18;3817:4;3804:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;2113:1723;;;;;;;;;;;;:::o;8231:416::-;8355:1;8342:9;:14;;8334:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;713:42;8425:25;;;8459:9;8425:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8589:9;713:42;8566:20;;8558:29;;8518:122;8534:12;8548:8;;;;;;;;;;;8616:10;8608:19;;8600:28;;8630:9;8518:122;;;;;;;;;:::i;:::-;;;;;;;;8231:416;;:::o;1579:24::-;;;;;;;;;;;;;:::o;1489:32::-;;;;;;;;;;;;;:::o;544:33::-;;;;;;;;;;;;:::o;7063:1162::-;7226:1;7216:6;:11;;7208:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7263:17;7283:8;;;;;;;;;;;7263:28;;7301:21;7336:14;:21;7351:5;7336:21;;;;;;;;;;;;;;;;;;;;;;;;;7332:765;;;7386:5;7373:24;;;7398:10;7410:6;7373:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7458:5;7445:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7431:46;;7520:5;7507:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7491:50;;7332:765;;;7572:21;7603:5;7596:23;;;7628:4;7596:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7572:62;;7648:65;7679:10;7699:4;7706:6;7655:5;7648:30;;;;:65;;;;;;:::i;:::-;7727:20;7757:5;7750:23;;;7782:4;7750:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7727:61;;8002:31;8019:13;8002:12;:16;;:31;;;;:::i;:::-;7993:40;;8079:5;8071:14;;8063:23;;8047:39;;7332:765;;;8170:9;8155:13;8112:106;8128:12;8142:11;8197:10;8189:19;;8181:28;;8211:6;8112:106;;;;;;;;;:::i;:::-;;;;;;;;7063:1162;;;;;;:::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;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;11351:353::-;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;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;3842:886:2:-;3909:17;3929;3944:1;3929:4;:14;;:17;;;;:::i;:::-;3909:37;;3956:17;3976:18;3991:2;3976:4;:14;;:18;;;;:::i;:::-;3956:38;;4004:29;4036:17;4050:2;4036:4;:13;;:17;;;;:::i;:::-;4004:49;;4097:18;;;;;;;;;;;4072:43;;:22;:43;;;4064:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;493:1:1;488;311:66;483:6;;482:12;4181:9:2;:26;4173:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;4264:29;4296:18;;;;;;;;;;;4264:50;;4345:22;4324:18;;:43;;;;;;;;;;;;;;;;;;4378:35;;:::i;:::-;4416:47;;;;;;;;4428:9;4416:47;;;;4457:1;4445:9;:13;;;;;;4416:47;;;;;;4461:1;4416:47;;;;;4378:85;;4509:16;4473:13;:33;4487:18;;;;;;;;;;;4473:33;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4617:10;;;;;;;;;;;4598:15;4591:36;4535:13;:37;4549:22;4535:37;;;;;;;;;;;;;;;:53;;;:92;;;;;;;;;;;;;;;;;;4704:16;4643:78;;;;;;:::i;:::-;;;;;;;;4665:13;:37;4679:22;4665:37;;;;;;;;;;;;;;;4643:78;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3842:886;;;;;;:::o;4734:1411::-;4835:18;4856:15;4869:1;4856:4;:12;;:15;;;;:::i;:::-;4835:36;;4882:18;4903:15;4916:1;4903:4;:12;;:15;;;;:::i;:::-;4882:36;;5037:22;5062:23;5077:7;5062:4;:14;;:23;;;;:::i;:::-;5037:48;;5096:17;5116:16;5129:2;5116:4;:12;;:16;;;;:::i;:::-;5096:36;;5196:14;5213:19;5228:3;5213:4;:14;;:19;;;;:::i;:::-;5196:36;;5267:12;5251:28;;:12;:28;;;;5243:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5356:8;;;;;;;;;;;5340:24;;:12;:24;;;5332:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5424:8;;;;;;;;;;;5409:23;;:11;:23;;;5405:696;;5448:21;5472:18;5487:2;5472:4;:14;;:18;;;;:::i;:::-;5448:42;;5504:16;5550:11;5563:13;5533:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5523:55;;;;;;5504:74;;5670:21;5694:13;:23;5708:8;5694:23;;;;;;;;;;;;;;;;;;;;;5670:47;;5760:1;5735:27;;:13;:27;;;5731:138;;;5798:56;5817:8;5827:11;5840:13;5798:18;:56::i;:::-;5782:72;;5731:138;5896:13;5883:32;;;5916:14;5932:6;5883:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:696;;;;;;5970:21;5994:23;6009:7;5994:4;:14;;:23;;;;:::i;:::-;5970:47;;6032:58;6067:14;6083:6;6039:13;6032:34;;;;:58;;;;;:::i;:::-;5405:696;;4734:1411;;;;;;:::o;877:203:7:-;977:96;997:5;1027:27;;;1056:4;1062:2;1066:5;1004:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:19;:96::i;:::-;877:203;;;;:::o;1321:134:5:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;;1321:134;;;;:::o;13895:319:0:-;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;6151:906:2:-;6252:13;6444:19;6474:18;;;;;;;;;;6466:27;;6444:49;;6545:4;6539:11;6577:66;6570:5;6563:81;6682:11;6675:4;6668:5;6664:16;6657:37;6732:66;6725:4;6718:5;6714:16;6707:92;6838:4;6831:5;6828:1;6821:22;6812:31;;6512:341;6904:5;6891:30;;;6922:11;6935:13;6891:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7007:5;6985:13;:19;6999:4;6985:19;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7046:4;7022:14;:21;7037:5;7022:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6151:906;;;;;;:::o;696:175:7:-;778:86;798:5;828:23;;;853:2;857:5;805:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;778:19;:86::i;:::-;696:175;;;:::o;2959:751::-;3378:23;3404:69;3432:4;3404:69;;;;;;;;;;;;;;;;;3412:5;3404:27;;;;:69;;;;;:::i;:::-;3378:95;;3507:1;3487:10;:17;:21;3483:221;;;3627:10;3616:30;;;;;;;;;;;;:::i;:::-;3608:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3483:221;2959:751;;;:::o;1746:187:5:-;1832:7;1864:1;1859;:6;;1867:12;1851:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1890:9;1906:1;1902;:5;1890:17;;1925:1;1918:8;;;1746:187;;;;;:::o;3770:194:8:-;3873:12;3904:53;3927:6;3935:4;3941:1;3944:12;3904:22;:53::i;:::-;3897:60;;3770:194;;;;;:::o;5117:958::-;5247:12;5279:18;5290:6;5279:10;:18::i;:::-;5271:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5402:12;5416:23;5443:6;:11;;5463:8;5474:4;5443:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5401:78;;;;5493:7;5489:580;;;5523:10;5516:17;;;;;;5489:580;5654:1;5634:10;:17;:21;5630:429;;;5892:10;5886:17;5952:15;5939:10;5935:2;5931:19;5924:44;5841:145;6031:12;6024:20;;;;;;;;;;;:::i;:::-;;;;;;;;5117:958;;;;;;;:::o;718:610::-;778:4;1036:16;1062:19;1084:66;1062:88;;;;1251:7;1239:20;1227:32;;1290:11;1278:8;:23;;:42;;;;;1317:3;1305:15;;:8;:15;;1278:42;1270:51;;;;718:610;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:128::-;;223:6;217:13;208:22;;235:30;259:5;235:30;:::i;:::-;202:68;;;;:::o;277:130::-;;357:6;344:20;335:29;;369:33;396:5;369:33;:::i;:::-;329:78;;;;:::o;414:134::-;;498:6;492:13;483:22;;510:33;537:5;510:33;:::i;:::-;477:71;;;;:::o;569:336::-;;;683:3;676:4;668:6;664:17;660:27;650:2;;701:1;698;691:12;650:2;734:6;721:20;711:30;;761:18;753:6;750:30;747:2;;;793:1;790;783:12;747:2;827:4;819:6;815:17;803:29;;878:3;870:4;862:6;858:17;848:8;844:32;841:41;838:2;;;895:1;892;885:12;838:2;643:262;;;;;:::o;913:130::-;;993:6;980:20;971:29;;1005:33;1032:5;1005:33;:::i;:::-;965:78;;;;:::o;1050:134::-;;1134:6;1128:13;1119:22;;1146:33;1173:5;1146:33;:::i;:::-;1113:71;;;;:::o;1191:126::-;;1269:6;1256:20;1247:29;;1281:31;1306:5;1281:31;:::i;:::-;1241:76;;;;:::o;1324:130::-;;1406:6;1400:13;1391:22;;1418:31;1443:5;1418:31;:::i;:::-;1385:69;;;;:::o;1461:613::-;;;;;1614:3;1602:9;1593:7;1589:23;1585:33;1582:2;;;1631:1;1628;1621:12;1582:2;1666:1;1683:53;1728:7;1719:6;1708:9;1704:22;1683:53;:::i;:::-;1673:63;;1645:97;1773:2;1791:53;1836:7;1827:6;1816:9;1812:22;1791:53;:::i;:::-;1781:63;;1752:98;1881:2;1899:53;1944:7;1935:6;1924:9;1920:22;1899:53;:::i;:::-;1889:63;;1860:98;1989:2;2007:51;2050:7;2041:6;2030:9;2026:22;2007:51;:::i;:::-;1997:61;;1968:96;1576:498;;;;;;;:::o;2081:257::-;;2193:2;2181:9;2172:7;2168:23;2164:32;2161:2;;;2209:1;2206;2199:12;2161:2;2244:1;2261:61;2314:7;2305:6;2294:9;2290:22;2261:61;:::i;:::-;2251:71;;2223:105;2155:183;;;;:::o;2345:263::-;;2460:2;2448:9;2439:7;2435:23;2431:32;2428:2;;;2476:1;2473;2466:12;2428:2;2511:1;2528:64;2584:7;2575:6;2564:9;2560:22;2528:64;:::i;:::-;2518:74;;2490:108;2422:186;;;;:::o;2615:362::-;;;2734:2;2722:9;2713:7;2709:23;2705:32;2702:2;;;2750:1;2747;2740:12;2702:2;2785:1;2802:53;2847:7;2838:6;2827:9;2823:22;2802:53;:::i;:::-;2792:63;;2764:97;2892:2;2910:51;2953:7;2944:6;2933:9;2929:22;2910:51;:::i;:::-;2900:61;;2871:96;2696:281;;;;;:::o;2984:365::-;;;3107:2;3095:9;3086:7;3082:23;3078:32;3075:2;;;3123:1;3120;3113:12;3075:2;3186:1;3175:9;3171:17;3158:31;3209:18;3201:6;3198:30;3195:2;;;3241:1;3238;3231:12;3195:2;3269:64;3325:7;3316:6;3305:9;3301:22;3269:64;:::i;:::-;3251:82;;;;3137:202;3069:280;;;;;:::o;3356:263::-;;3471:2;3459:9;3450:7;3446:23;3442:32;3439:2;;;3487:1;3484;3477:12;3439:2;3522:1;3539:64;3595:7;3586:6;3575:9;3571:22;3539:64;:::i;:::-;3529:74;;3501:108;3433:186;;;;:::o;3626:259::-;;3739:2;3727:9;3718:7;3714:23;3710:32;3707:2;;;3755:1;3752;3745:12;3707:2;3790:1;3807:62;3861:7;3852:6;3841:9;3837:22;3807:62;:::i;:::-;3797:72;;3769:106;3701:184;;;;:::o;3893:189::-;;3988:54;4038:3;4030:6;3988:54;:::i;:::-;4071:4;4066:3;4062:14;4048:28;;3981:101;;;;:::o;4091:185::-;;4184:52;4232:3;4224:6;4184:52;:::i;:::-;4265:4;4260:3;4256:14;4242:28;;4177:99;;;;:::o;4285:181::-;;4376:50;4422:3;4414:6;4376:50;:::i;:::-;4455:4;4450:3;4446:14;4432:28;;4369:97;;;;:::o;4474:142::-;4565:45;4604:5;4565:45;:::i;:::-;4560:3;4553:58;4547:69;;:::o;4623:113::-;4706:24;4724:5;4706:24;:::i;:::-;4701:3;4694:37;4688:48;;:::o;4743:121::-;4834:24;4852:5;4834:24;:::i;:::-;4829:3;4822:37;4816:48;;:::o;4871:113::-;4954:24;4972:5;4954:24;:::i;:::-;4949:3;4942:37;4936:48;;:::o;4991:152::-;5092:45;5112:24;5130:5;5112:24;:::i;:::-;5092:45;:::i;:::-;5087:3;5080:58;5074:69;;:::o;5150:356::-;;5278:38;5310:5;5278:38;:::i;:::-;5328:88;5409:6;5404:3;5328:88;:::i;:::-;5321:95;;5421:52;5466:6;5461:3;5454:4;5447:5;5443:16;5421:52;:::i;:::-;5494:6;5489:3;5485:16;5478:23;;5258:248;;;;;:::o;5513:347::-;;5625:39;5658:5;5625:39;:::i;:::-;5676:71;5740:6;5735:3;5676:71;:::i;:::-;5669:78;;5752:52;5797:6;5792:3;5785:4;5778:5;5774:16;5752:52;:::i;:::-;5825:29;5847:6;5825:29;:::i;:::-;5820:3;5816:39;5809:46;;5605:255;;;;;:::o;5868:318::-;;6028:67;6092:2;6087:3;6028:67;:::i;:::-;6021:74;;6128:20;6124:1;6119:3;6115:11;6108:41;6177:2;6172:3;6168:12;6161:19;;6014:172;;;:::o;6195:324::-;;6355:67;6419:2;6414:3;6355:67;:::i;:::-;6348:74;;6455:26;6451:1;6446:3;6442:11;6435:47;6510:2;6505:3;6501:12;6494:19;;6341:178;;;:::o;6528:381::-;;6688:67;6752:2;6747:3;6688:67;:::i;:::-;6681:74;;6788:34;6784:1;6779:3;6775:11;6768:55;6857:14;6852:2;6847:3;6843:12;6836:36;6900:2;6895:3;6891:12;6884:19;;6674:235;;;:::o;6918:318::-;;7078:67;7142:2;7137:3;7078:67;:::i;:::-;7071:74;;7178:20;7174:1;7169:3;7165:11;7158:41;7227:2;7222:3;7218:12;7211:19;;7064:172;;;:::o;7245:324::-;;7405:67;7469:2;7464:3;7405:67;:::i;:::-;7398:74;;7505:26;7501:1;7496:3;7492:11;7485:47;7560:2;7555:3;7551:12;7544:19;;7391:178;;;:::o;7578:315::-;;7738:67;7802:2;7797:3;7738:67;:::i;:::-;7731:74;;7838:17;7834:1;7829:3;7825:11;7818:38;7884:2;7879:3;7875:12;7868:19;;7724:169;;;:::o;7902:321::-;;8062:67;8126:2;8121:3;8062:67;:::i;:::-;8055:74;;8162:23;8158:1;8153:3;8149:11;8142:44;8214:2;8209:3;8205:12;8198:19;;8048:175;;;:::o;8232:380::-;;8392:67;8456:2;8451:3;8392:67;:::i;:::-;8385:74;;8492:34;8488:1;8483:3;8479:11;8472:55;8561:13;8556:2;8551:3;8547:12;8540:35;8603:2;8598:3;8594:12;8587:19;;8378:234;;;:::o;8621:378::-;;8781:67;8845:2;8840:3;8781:67;:::i;:::-;8774:74;;8881:34;8877:1;8872:3;8868:11;8861:55;8950:11;8945:2;8940:3;8936:12;8929:33;8990:2;8985:3;8981:12;8974:19;;8767:232;;;:::o;9008:320::-;;9168:67;9232:2;9227:3;9168:67;:::i;:::-;9161:74;;9268:22;9264:1;9259:3;9255:11;9248:43;9319:2;9314:3;9310:12;9303:19;;9154:174;;;:::o;9337:325::-;;9497:67;9561:2;9556:3;9497:67;:::i;:::-;9490:74;;9597:27;9593:1;9588:3;9584:11;9577:48;9653:2;9648:3;9644:12;9637:19;;9483:179;;;:::o;9671:324::-;;9831:67;9895:2;9890:3;9831:67;:::i;:::-;9824:74;;9931:26;9927:1;9922:3;9918:11;9911:47;9986:2;9981:3;9977:12;9970:19;;9817:178;;;:::o;10004:329::-;;10164:67;10228:2;10223:3;10164:67;:::i;:::-;10157:74;;10264:31;10260:1;10255:3;10251:11;10244:52;10324:2;10319:3;10315:12;10308:19;;10150:183;;;:::o;10342:379::-;;10502:67;10566:2;10561:3;10502:67;:::i;:::-;10495:74;;10602:34;10598:1;10593:3;10589:11;10582:55;10671:12;10666:2;10661:3;10657:12;10650:34;10712:2;10707:3;10703:12;10696:19;;10488:233;;;:::o;10730:375::-;;10890:67;10954:2;10949:3;10890:67;:::i;:::-;10883:74;;10990:34;10986:1;10981:3;10977:11;10970:55;11059:8;11054:2;11049:3;11045:12;11038:30;11096:2;11091:3;11087:12;11080:19;;10876:229;;;:::o;11178:700::-;11345:4;11340:3;11336:14;11425:4;11418:5;11414:16;11408:23;11444:70;11510:3;11496:12;11444:70;:::i;:::-;11437:77;;11365:155;11595:4;11588:5;11584:16;11578:23;11614:66;11676:3;11662:12;11614:66;:::i;:::-;11607:73;;11530:156;11770:4;11763:5;11759:16;11753:23;11789:68;11853:3;11839:12;11789:68;:::i;:::-;11782:75;;11696:167;11318:560;;;:::o;11950:880::-;12114:4;12109:3;12105:14;12141:1;12199:4;12192:5;12188:16;12182:23;12169:36;;12231:55;12276:9;12231:55;:::i;:::-;12299:70;12365:3;12351:12;12299:70;:::i;:::-;12292:77;;12152:223;12437:4;12430:5;12426:16;12420:23;12407:36;;12469:53;12512:9;12469:53;:::i;:::-;12535:66;12597:3;12583:12;12535:66;:::i;:::-;12528:73;;12385:222;12674:54;12718:9;12674:54;:::i;:::-;12741:68;12805:3;12791:12;12741:68;:::i;:::-;12734:75;;12617:198;12087:743;;;;:::o;12837:113::-;12920:24;12938:5;12920:24;:::i;:::-;12915:3;12908:37;12902:48;;:::o;12957:121::-;13048:24;13066:5;13048:24;:::i;:::-;13043:3;13036:37;13030:48;;:::o;13085:111::-;13166:24;13184:5;13166:24;:::i;:::-;13161:3;13154:37;13148:48;;:::o;13203:110::-;13284:23;13301:5;13284:23;:::i;:::-;13279:3;13272:36;13266:47;;:::o;13320:108::-;13399:23;13416:5;13399:23;:::i;:::-;13394:3;13387:36;13381:47;;:::o;13435:107::-;13514:22;13530:5;13514:22;:::i;:::-;13509:3;13502:35;13496:46;;:::o;13549:115::-;13636:22;13652:5;13636:22;:::i;:::-;13631:3;13624:35;13618:46;;:::o;13671:105::-;13748:22;13764:5;13748:22;:::i;:::-;13743:3;13736:35;13730:46;;:::o;13783:144::-;13880:41;13898:22;13914:5;13898:22;:::i;:::-;13880:41;:::i;:::-;13875:3;13868:54;13862:65;;:::o;13934:271::-;;14087:93;14176:3;14167:6;14087:93;:::i;:::-;14080:100;;14197:3;14190:10;;14068:137;;;;:::o;14212:365::-;;14396:131;14523:3;14514:6;14396:131;:::i;:::-;14549:2;14544:3;14540:12;14533:19;;14569:3;14562:10;;14384:193;;;;:::o;14584:359::-;;14765:128;14889:3;14880:6;14765:128;:::i;:::-;14915:2;14910:3;14906:12;14899:19;;14935:3;14928:10;;14753:190;;;;:::o;14950:383::-;;15102:71;15169:3;15160:6;15102:71;:::i;:::-;15195:1;15190:3;15186:11;15179:18;;15208:75;15279:3;15270:6;15208:75;:::i;:::-;15305:2;15300:3;15296:12;15289:19;;15325:3;15318:10;;15090:243;;;;;:::o;15340:222::-;;15467:2;15456:9;15452:18;15444:26;;15481:71;15549:1;15538:9;15534:17;15525:6;15481:71;:::i;:::-;15438:124;;;;:::o;15569:238::-;;15704:2;15693:9;15689:18;15681:26;;15718:79;15794:1;15783:9;15779:17;15770:6;15718:79;:::i;:::-;15675:132;;;;:::o;15814:349::-;;15977:2;15966:9;15962:18;15954:26;;15991:79;16067:1;16056:9;16052:17;16043:6;15991:79;:::i;:::-;16081:72;16149:2;16138:9;16134:18;16125:6;16081:72;:::i;:::-;15948:215;;;;;:::o;16170:444::-;;16353:2;16342:9;16338:18;16330:26;;16367:71;16435:1;16424:9;16420:17;16411:6;16367:71;:::i;:::-;16449:72;16517:2;16506:9;16502:18;16493:6;16449:72;:::i;:::-;16532;16600:2;16589:9;16585:18;16576:6;16532:72;:::i;:::-;16324:290;;;;;;:::o;16621:333::-;;16776:2;16765:9;16761:18;16753:26;;16790:71;16858:1;16847:9;16843:17;16834:6;16790:71;:::i;:::-;16872:72;16940:2;16929:9;16925:18;16916:6;16872:72;:::i;:::-;16747:207;;;;;:::o;16961:310::-;;17108:2;17097:9;17093:18;17085:26;;17158:9;17152:4;17148:20;17144:1;17133:9;17129:17;17122:47;17183:78;17256:4;17247:6;17183:78;:::i;:::-;17175:86;;17079:192;;;;:::o;17278:416::-;;17478:2;17467:9;17463:18;17455:26;;17528:9;17522:4;17518:20;17514:1;17503:9;17499:17;17492:47;17553:131;17679:4;17553:131;:::i;:::-;17545:139;;17449:245;;;:::o;17701:416::-;;17901:2;17890:9;17886:18;17878:26;;17951:9;17945:4;17941:20;17937:1;17926:9;17922:17;17915:47;17976:131;18102:4;17976:131;:::i;:::-;17968:139;;17872:245;;;:::o;18124:416::-;;18324:2;18313:9;18309:18;18301:26;;18374:9;18368:4;18364:20;18360:1;18349:9;18345:17;18338:47;18399:131;18525:4;18399:131;:::i;:::-;18391:139;;18295:245;;;:::o;18547:416::-;;18747:2;18736:9;18732:18;18724:26;;18797:9;18791:4;18787:20;18783:1;18772:9;18768:17;18761:47;18822:131;18948:4;18822:131;:::i;:::-;18814:139;;18718:245;;;:::o;18970:416::-;;19170:2;19159:9;19155:18;19147:26;;19220:9;19214:4;19210:20;19206:1;19195:9;19191:17;19184:47;19245:131;19371:4;19245:131;:::i;:::-;19237:139;;19141:245;;;:::o;19393:416::-;;19593:2;19582:9;19578:18;19570:26;;19643:9;19637:4;19633:20;19629:1;19618:9;19614:17;19607:47;19668:131;19794:4;19668:131;:::i;:::-;19660:139;;19564:245;;;:::o;19816:416::-;;20016:2;20005:9;20001:18;19993:26;;20066:9;20060:4;20056:20;20052:1;20041:9;20037:17;20030:47;20091:131;20217:4;20091:131;:::i;:::-;20083:139;;19987:245;;;:::o;20239:416::-;;20439:2;20428:9;20424:18;20416:26;;20489:9;20483:4;20479:20;20475:1;20464:9;20460:17;20453:47;20514:131;20640:4;20514:131;:::i;:::-;20506:139;;20410:245;;;:::o;20662:416::-;;20862:2;20851:9;20847:18;20839:26;;20912:9;20906:4;20902:20;20898:1;20887:9;20883:17;20876:47;20937:131;21063:4;20937:131;:::i;:::-;20929:139;;20833:245;;;:::o;21085:416::-;;21285:2;21274:9;21270:18;21262:26;;21335:9;21329:4;21325:20;21321:1;21310:9;21306:17;21299:47;21360:131;21486:4;21360:131;:::i;:::-;21352:139;;21256:245;;;:::o;21508:416::-;;21708:2;21697:9;21693:18;21685:26;;21758:9;21752:4;21748:20;21744:1;21733:9;21729:17;21722:47;21783:131;21909:4;21783:131;:::i;:::-;21775:139;;21679:245;;;:::o;21931:416::-;;22131:2;22120:9;22116:18;22108:26;;22181:9;22175:4;22171:20;22167:1;22156:9;22152:17;22145:47;22206:131;22332:4;22206:131;:::i;:::-;22198:139;;22102:245;;;:::o;22354:416::-;;22554:2;22543:9;22539:18;22531:26;;22604:9;22598:4;22594:20;22590:1;22579:9;22575:17;22568:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22525:245;;;:::o;22777:416::-;;22977:2;22966:9;22962:18;22954:26;;23027:9;23021:4;23017:20;23013:1;23002:9;22998:17;22991:47;23052:131;23178:4;23052:131;:::i;:::-;23044:139;;22948:245;;;:::o;23200:416::-;;23400:2;23389:9;23385:18;23377:26;;23450:9;23444:4;23440:20;23436:1;23425:9;23421:17;23414:47;23475:131;23601:4;23475:131;:::i;:::-;23467:139;;23371:245;;;:::o;23623:708::-;;23866:3;23855:9;23851:19;23843:27;;23881:79;23957:1;23946:9;23942:17;23933:6;23881:79;:::i;:::-;23971:76;24043:2;24032:9;24028:18;24019:6;23971:76;:::i;:::-;24058:80;24134:2;24123:9;24119:18;24110:6;24058:80;:::i;:::-;24149;24225:2;24214:9;24210:18;24201:6;24149:80;:::i;:::-;24240:81;24316:3;24305:9;24301:19;24292:6;24240:81;:::i;:::-;23837:494;;;;;;;;:::o;24338:218::-;;24463:2;24452:9;24448:18;24440:26;;24477:69;24543:1;24532:9;24528:17;24519:6;24477:69;:::i;:::-;24434:122;;;;:::o;24563:325::-;;24714:2;24703:9;24699:18;24691:26;;24728:67;24792:1;24781:9;24777:17;24768:6;24728:67;:::i;:::-;24806:72;24874:2;24863:9;24859:18;24850:6;24806:72;:::i;:::-;24685:203;;;;;:::o;24895:540::-;;25098:3;25087:9;25083:19;25075:27;;25113:67;25177:1;25166:9;25162:17;25153:6;25113:67;:::i;:::-;25191:68;25255:2;25244:9;25240:18;25231:6;25191:68;:::i;:::-;25270:72;25338:2;25327:9;25323:18;25314:6;25270:72;:::i;:::-;25353;25421:2;25410:9;25406:18;25397:6;25353:72;:::i;:::-;25069:366;;;;;;;:::o;25442:121::-;;25535:5;25529:12;25519:22;;25500:63;;;:::o;25570:122::-;;25664:5;25658:12;25648:22;;25629:63;;;:::o;25700:144::-;;25835:3;25820:18;;25813:31;;;;:::o;25853:163::-;;25968:6;25963:3;25956:19;26005:4;26000:3;25996:14;25981:29;;25949:67;;;;:::o;26024:85::-;;26099:5;26088:16;;26082:27;;;:::o;26116:101::-;;26201:10;26194:5;26190:22;26179:33;;26173:44;;;:::o;26224:94::-;;26308:4;26301:5;26297:16;26286:27;;26280:38;;;:::o;26325:91::-;;26387:24;26405:5;26387:24;:::i;:::-;26376:35;;26370:46;;;:::o;26423:85::-;;26496:5;26489:13;26482:21;26471:32;;26465:43;;;:::o;26515:72::-;;26577:5;26566:16;;26560:27;;;:::o;26594:121::-;;26667:42;26660:5;26656:54;26645:65;;26639:76;;;:::o;26722:72::-;;26784:5;26773:16;;26767:27;;;:::o;26801:88::-;;26873:10;26866:5;26862:22;26851:33;;26845:44;;;:::o;26896:81::-;;26967:4;26960:5;26956:16;26945:27;;26939:38;;;:::o;26984:129::-;;27071:37;27102:5;27071:37;:::i;:::-;27058:50;;27052:61;;;:::o;27120:121::-;;27199:37;27230:5;27199:37;:::i;:::-;27186:50;;27180:61;;;:::o;27248:108::-;;27327:24;27345:5;27327:24;:::i;:::-;27314:37;;27308:48;;;:::o;27364:268::-;27429:1;27436:101;27450:6;27447:1;27444:13;27436:101;;;27526:1;27521:3;27517:11;27511:18;27507:1;27502:3;27498:11;27491:39;27472:2;27469:1;27465:10;27460:15;;27436:101;;;27552:6;27549:1;27546:13;27543:2;;;27617:1;27608:6;27603:3;27599:16;27592:27;27543:2;27413:219;;;;:::o;27640:161::-;;27730:66;27761:34;27784:10;27761:34;:::i;:::-;27730:66;:::i;:::-;27721:75;;27715:86;;;:::o;27808:157::-;;27896:64;27925:34;27948:10;27925:34;:::i;:::-;27896:64;:::i;:::-;27887:73;;27881:84;;;:::o;27972:159::-;;28061:65;28091:34;28114:10;28091:34;:::i;:::-;28061:65;:::i;:::-;28052:74;;28046:85;;;:::o;28138:74::-;;28202:5;28191:16;;28185:27;;;:::o;28219:88::-;;28281:21;28296:5;28281:21;:::i;:::-;28270:32;;28264:43;;;:::o;28314:97::-;;28402:2;28398:7;28393:2;28386:5;28382:14;28378:28;28368:38;;28362:49;;;:::o;28419:96::-;;28499:5;28494:3;28490:15;28468:37;;28462:53;;;:::o;28523:102::-;;28609:5;28606:1;28602:13;28580:35;;28574:51;;;:::o;28633:102::-;;28719:5;28716:1;28712:13;28690:35;;28684:51;;;:::o;28743:117::-;28812:24;28830:5;28812:24;:::i;:::-;28805:5;28802:35;28792:2;;28851:1;28848;28841:12;28792:2;28786:74;:::o;28867:111::-;28933:21;28948:5;28933:21;:::i;:::-;28926:5;28923:32;28913:2;;28969:1;28966;28959:12;28913:2;28907:71;:::o;28985:117::-;29054:24;29072:5;29054:24;:::i;:::-;29047:5;29044:35;29034:2;;29093:1;29090;29083:12;29034:2;29028:74;:::o;29109:117::-;29178:24;29196:5;29178:24;:::i;:::-;29171:5;29168:35;29158:2;;29217:1;29214;29207:12;29158:2;29152:74;:::o;29233:113::-;29300:22;29316:5;29300:22;:::i;:::-;29293:5;29290:33;29280:2;;29337:1;29334;29327:12;29280:2;29274: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/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"./BytesLib.sol\";\nimport \"./SchnorrSECP256K1.sol\";\nimport \"./WrappedAsset.sol\";\n\ncontract Wormhole {\n using SafeERC20 for IERC20;\n using BytesLib for bytes;\n using SafeMath for uint256;\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 uint256 x;\n uint8 parity;\n uint32 expiration_time;\n }\n\n event LogGuardianSetChanged(\n GuardianSet indexed oldGuardian,\n GuardianSet indexed newGuardian\n );\n\n event LogTokensLocked(\n uint8 target_chain,\n uint8 token_chain,\n bytes32 indexed token,\n bytes32 indexed sender,\n bytes32 recipient,\n uint256 amount\n );\n\n event LogTokensUnlocked(\n address indexed token,\n bytes32 indexed sender,\n address recipient,\n uint256 amount\n );\n\n // Mapping of guardian_set_index => guardian set\n mapping(uint32 => GuardianSet) private guardian_sets;\n // Current active guardian set\n uint32 public guardian_set_index;\n\n // Period for which an vaa is valid in seconds\n uint32 public vaa_expiry;\n\n // Mapping of already consumedVAAs\n mapping(bytes32 => bool) consumedVAAs;\n\n // Mapping of wrapped asset ERC20 contracts\n mapping(bytes32 => address) wrappedAssets;\n mapping(address => bool) isWrappedAsset;\n\n constructor(GuardianSet memory initial_guardian_set, address wrapped_asset_master) public {\n guardian_sets[0] = initial_guardian_set;\n // Explicitly set for doc purposes\n guardian_set_index = 0;\n\n wrappedAssetMaster = wrapped_asset_master;\n }\n\n function submitVAA(\n bytes calldata vaa\n ) public {\n uint8 version = vaa.toUint8(0);\n require(version == 1, \"VAA version incompatible\");\n\n // Load 4 bytes starting from index 1\n uint32 vaa_guardian_set_index = vaa.toUint32(1);\n\n uint256 signature = vaa.toUint256(5);\n address sig_address = vaa.toAddress(37);\n\n // Load 4 bytes starting from index 77\n uint32 timestamp = vaa.toUint32(57);\n\n // Verify that the VAA is still valid\n // TODO: the clock on Solana can't be trusted\n require(timestamp + vaa_expiry < block.timestamp, \"VAA has expired\");\n\n // Hash the body\n bytes32 hash = keccak256(vaa.slice(57, vaa.length - 57));\n require(!consumedVAAs[hash], \"VAA was already executed\");\n\n GuardianSet memory guardian_set = guardian_sets[vaa_guardian_set_index];\n require(guardian_set.expiration_time == 0 || guardian_set.expiration_time > block.timestamp, \"guardian set has expired\");\n require(\n Schnorr.verifySignature(\n guardian_set.x,\n guardian_set.parity,\n signature,\n uint256(hash),\n sig_address\n ),\n \"VAA signature invalid\");\n\n uint8 action = vaa.toUint8(61);\n uint8 payload_len = vaa.toUint8(62);\n bytes memory payload = vaa.slice(63, payload_len);\n\n // Process VAA\n if (action == 0x01) {\n vaaUpdateGuardianSet(payload);\n } else if (action == 0x10) {\n vaaTransfer(payload);\n } else {\n revert(\"invalid VAA action\");\n }\n\n // Set the VAA as consumed\n consumedVAAs[hash] = true;\n }\n\n function vaaUpdateGuardianSet(bytes memory data) private {\n uint256 new_key_x = data.toUint256(0);\n uint256 new_key_y = data.toUint256(32);\n uint32 new_guardian_set_index = data.toUint32(64);\n\n require(new_guardian_set_index > guardian_set_index, \"index of new guardian set must be > current\");\n require(new_key_x < Schnorr.HALF_Q, \"invalid key for fast Schnorr verification\");\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_key_x, uint8(new_key_y % 2), 0);\n guardian_sets[guardian_set_index] = new_guardian_set;\n guardian_sets[old_guardian_set_index].expiration_time = uint32(block.timestamp) + vaa_expiry;\n\n emit LogGuardianSetChanged(guardian_sets[old_guardian_set_index], new_guardian_set);\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(103);\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 wrapped_asset = deployWrappedAsset(asset_id, token_chain, token_address);\n }\n\n WrappedAsset(wrapped_asset).mint(target_address, amount);\n } else {\n address token_address = data.toAddress(71 + 12);\n\n IERC20(token_address).safeTransfer(target_address, amount);\n }\n // Safely transfer tokens out\n }\n\n function deployWrappedAsset(bytes32 seed, uint8 token_chain, bytes32 token_address) 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 := create(0, clone, 0x37)\n }\n\n // Call initializer\n WrappedAsset(asset).initialize(token_chain, token_address);\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 ) public {\n require(amount != 0, \"amount must not be 0\");\n\n uint8 asset_chain = CHAIN_ID;\n bytes32 asset_address;\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 asset_address = bytes32(uint256(asset));\n }\n\n emit LogTokensLocked(target_chain, asset_chain, asset_address, recipient, bytes32(uint256(msg.sender)), amount);\n }\n\n function lockETH(\n bytes32 recipient,\n uint8 target_chain\n ) public payable {\n require(msg.value != 0, \"amount must not be 0\");\n\n // Wrap tx value in WETH\n WETH(WETHAddress).deposit{value : msg.value}();\n\n // Log deposit of WETH\n emit LogTokensLocked(target_chain, CHAIN_ID, bytes32(uint256(WETHAddress)), recipient, bytes32(uint256(msg.sender)), msg.value);\n }\n\n\nfallback() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\nreceive() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\n}\n\n\ninterface WETH is IERC20 {\nfunction deposit() external payable;\n\nfunction withdraw(uint256 amount) external;\n}\n", + "sourceMap": "380:8438:2:-:0;;;629:1;612:18;;;;;;;;;;;;;;;;;;;;1696:327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1835:20;1816:13;:16;1830:1;1816:16;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1929:1;1908:18;;:22;;;;;;;;;;;;;;;;;;1953:11;1940:10;;:24;;;;;;;;;;;;;;;;;;1996:20;1975:18;;:41;;;;;;;;;;;;;;;;;;1696:327;;;380:8438;;5:134:-1;;89:6;83:13;74:22;;101:33;128:5;101:33;:::i;:::-;68:71;;;;:::o;180:665::-;;308:4;296:9;291:3;287:19;283:30;280:2;;;326:1;323;316:12;280:2;344:20;359:4;344:20;:::i;:::-;335:29;;411:1;443:60;499:3;490:6;479:9;475:22;443:60;:::i;:::-;436:4;429:5;425:16;418:86;374:141;567:2;600:58;654:3;645:6;634:9;630:22;600:58;:::i;:::-;593:4;586:5;582:16;575:84;525:145;731:2;764:59;819:3;810:6;799:9;795:22;764:59;:::i;:::-;757:4;750:5;746:16;739:85;680:155;274:571;;;;:::o;852:134::-;;936:6;930:13;921:22;;948:33;975:5;948:33;:::i;:::-;915:71;;;;:::o;993:132::-;;1076:6;1070:13;1061:22;;1088:32;1114:5;1088:32;:::i;:::-;1055:70;;;;:::o;1132:130::-;;1214:6;1208:13;1199:22;;1226:31;1251:5;1226:31;:::i;:::-;1193:69;;;;:::o;1269:591::-;;;;1445:3;1433:9;1424:7;1420:23;1416:33;1413:2;;;1462:1;1459;1452:12;1413:2;1497:1;1514:92;1598:7;1589:6;1578:9;1574:22;1514:92;:::i;:::-;1504:102;;1476:136;1643:2;1661:64;1717:7;1708:6;1697:9;1693:22;1661:64;:::i;:::-;1651:74;;1622:109;1762:3;1781:63;1836:7;1827:6;1816:9;1812:22;1781:63;:::i;:::-;1771:73;;1741:109;1407:453;;;;;:::o;1867:256::-;;1929:2;1923:9;1913:19;;1967:4;1959:6;1955:17;2066:6;2054:10;2051:22;2030:18;2018:10;2015:34;2012:62;2009:2;;;2087:1;2084;2077:12;2009:2;2107:10;2103:2;2096:22;1907:216;;;;:::o;2130:91::-;;2192:24;2210:5;2192:24;:::i;:::-;2181:35;;2175:46;;;:::o;2228:121::-;;2301:42;2294:5;2290:54;2279:65;;2273:76;;;:::o;2356:72::-;;2418:5;2407:16;;2401:27;;;:::o;2435:88::-;;2507:10;2500:5;2496:22;2485:33;;2479:44;;;:::o;2530:81::-;;2601:4;2594:5;2590:16;2579:27;;2573:38;;;:::o;2618:117::-;2687:24;2705:5;2687:24;:::i;:::-;2680:5;2677:35;2667:2;;2726:1;2723;2716:12;2667:2;2661:74;:::o;2742:117::-;2811:24;2829:5;2811:24;:::i;:::-;2804:5;2801:35;2791:2;;2850:1;2847;2840:12;2791:2;2785:74;:::o;2866:115::-;2934:23;2951:5;2934:23;:::i;:::-;2927:5;2924:34;2914:2;;2972:1;2969;2962:12;2914:2;2908:73;:::o;2988:113::-;3055:22;3071:5;3055:22;:::i;:::-;3048:5;3045:33;3035:2;;3092:1;3089;3082:12;3035:2;3029:72;:::o;380:8438:2:-;;;;;;;", + "deployedSourceMap": "380:8438:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8760:54;;;;;;;;;;:::i;:::-;;;;;;;;380:8438;8675:54;;;;;;;;;;:::i;:::-;;;;;;;;1643:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2029:1797;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1245:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;8227:416;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1427:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1337:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;544:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1589:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7059:1162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1643:46;;;;;;;;;;;;;;;;;;;;;;:::o;2029:1797::-;2099:13;2115:14;2127:1;2115:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2099:30;;2158:1;2147:7;:12;;;2139:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2245:29;2277:15;2290:1;2277:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;2245:47;;2303:17;2323:16;2337:1;2323:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;;:::i;:::-;2303:36;;2349:19;2371:17;2385:2;2371:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;;:::i;:::-;2349:39;;2446:16;2465;2478:2;2465:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;;:::i;:::-;2446:35;;2571:15;2558:10;;;;;;;;;;;2546:9;:22;:40;;;2538:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2642:12;2667:30;2677:2;2694;2681:3;;:10;;:15;2667:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;;:::i;:::-;2657:41;;;;;;2642:56;;2717:12;:18;2730:4;2717:18;;;;;;;;;;;;;;;;;;;;;2716:19;2708:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2775:31;;:::i;:::-;2809:13;:37;2823:22;2809:37;;;;;;;;;;;;;;;2775:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2896:1;2864:12;:28;;;:33;;;:83;;;;2932:15;2901:12;:28;;;:46;;;2864:83;2856:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3007:7;:23;3048:12;:14;;;3080:12;:19;;;3117:9;3152:4;3144:13;;3175:11;3007:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2986:252;;;;;;;;;;;;:::i;:::-;;;;;;;;;3249:12;3264:15;3276:2;3264:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;3249:30;;3289:17;3309:15;3321:2;3309:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;3289:35;;3334:20;3357:26;3367:2;3371:11;3357:26;;:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;;:::i;:::-;3334:49;;3431:4;3421:6;:14;;;3417:332;;;3485:18;;;;;;;;;;;3459:44;;:22;:44;;;3451:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;3579:29;3600:7;3579:20;:29::i;:::-;3417:332;;;3639:4;3629:6;:14;;;3625:124;;;3659:20;3671:7;3659:11;:20::i;:::-;3625:124;;;3710:28;;;;;;;;;;:::i;:::-;;;;;;;;3625:124;3417:332;3815:4;3794:12;:18;3807:4;3794:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;2029:1797;;;;;;;;;;;;:::o;1245:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8227:416::-;8351:1;8338:9;:14;;8330:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;713:42;8421:25;;;8455:9;8421:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8601:10;8593:19;;8585:28;;713:42;8562:20;;8554:29;;8514:122;8530:12;8544:8;;;;;;;;;;;8615:9;8626;8514:122;;;;;;;;;:::i;:::-;;;;;;;;8227:416;;:::o;1427:24::-;;;;;;;;;;;;;:::o;1337:32::-;;;;;;;;;;;;;:::o;544:33::-;;;;;;;;;;;;:::o;1589:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;7059:1162::-;7222:1;7212:6;:11;;7204:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7259:17;7279:8;;;;;;;;;;;7259:28;;7297:21;7332:14;:21;7347:5;7332:21;;;;;;;;;;;;;;;;;;;;;;;;;7328:765;;;7382:5;7369:24;;;7394:10;7406:6;7369:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7454:5;7441:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7427:46;;7516:5;7503:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7487:50;;7328:765;;;7568:21;7599:5;7592:23;;;7624:4;7592:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7568:62;;7644:65;7675:10;7695:4;7702:6;7651:5;7644:30;;;;:65;;;;;;:::i;:::-;7723:20;7753:5;7746:23;;;7778:4;7746:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7723:61;;7998:31;8015:13;7998:12;:16;;:31;;;;:::i;:::-;7989:40;;8075:5;8067:14;;8059:23;;8043:39;;7328:765;;;8182:10;8174:19;;8166:28;;8151:13;8108:106;8124:12;8138:11;8196:9;8207:6;8108:106;;;;;;;;;:::i;:::-;;;;;;;;7059:1162;;;;;;:::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;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;11351:353::-;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;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;3832:930:2:-;3899:17;3919;3934:1;3919:4;:14;;:17;;;;:::i;:::-;3899:37;;3946:16;3965;3978:2;3965:4;:12;;:16;;;;:::i;:::-;3946:35;;;;3991:29;4023:17;4037:2;4023:4;:13;;:17;;;;:::i;:::-;3991:49;;4084:18;;;;;;;;;;;4059:43;;:22;:43;;;4051:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;493:1:1;488;311:66;483:6;;482:12;4168:9:2;:26;4160:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;4270:1;4258:8;:13;;4250:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;4303:29;4335:18;;;;;;;;;;;4303:50;;4384:22;4363:18;;:43;;;;;;;;;;;;;;;;;;4417:35;;:::i;:::-;4455:42;;;;;;;;4467:9;4455:42;;;;4484:8;4455:42;;;;;;4495:1;4455:42;;;;;4417:80;;4543:16;4507:13;:33;4521:18;;;;;;;;;;;4507:33;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4651:10;;;;;;;;;;;4632:15;4625:36;4569:13;:37;4583:22;4569:37;;;;;;;;;;;;;;;:53;;;:92;;;;;;;;;;;;;;;;;;4738:16;4677:78;;;;;;:::i;:::-;;;;;;;;4699:13;:37;4713:22;4699:37;;;;;;;;;;;;;;;4677:78;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3832:930;;;;;;:::o;4768:1373::-;4869:18;4890:15;4903:1;4890:4;:12;;:15;;;;:::i;:::-;4869:36;;4916:18;4937:15;4950:1;4937:4;:12;;:15;;;;:::i;:::-;4916:36;;5071:22;5096:23;5111:7;5096:4;:14;;:23;;;;:::i;:::-;5071:48;;5130:17;5150:16;5163:2;5150:4;:12;;:16;;;;:::i;:::-;5130:36;;5230:14;5247:19;5262:3;5247:4;:14;;:19;;;;:::i;:::-;5230:36;;5301:12;5285:28;;:12;:28;;;;5277:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5390:8;;;;;;;;;;;5374:24;;:12;:24;;;5366:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5458:8;;;;;;;;;;;5443:23;;:11;:23;;;5439:696;;5482:21;5506:18;5521:2;5506:4;:14;;:18;;;;:::i;:::-;5482:42;;5538:16;5584:11;5597:13;5567:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5557:55;;;;;;5538:74;;5704:21;5728:13;:23;5742:8;5728:23;;;;;;;;;;;;;;;;;;;;;5704:47;;5794:1;5769:27;;:13;:27;;;5765:138;;;5832:56;5851:8;5861:11;5874:13;5832:18;:56::i;:::-;5816:72;;5765:138;5930:13;5917:32;;;5950:14;5966:6;5917:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5439:696;;;;;;6004:21;6028:23;6043:7;6028:4;:14;;:23;;;;:::i;:::-;6004:47;;6066:58;6101:14;6117:6;6073:13;6066:34;;;;:58;;;;;:::i;:::-;5439:696;;4768:1373;;;;;;:::o;877:203:7:-;977:96;997:5;1027:27;;;1056:4;1062:2;1066:5;1004:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:19;:96::i;:::-;877:203;;;;:::o;1321:134:5:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;;1321:134;;;;:::o;13895:319:0:-;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;6147:906:2:-;6248:13;6440:19;6470:18;;;;;;;;;;6462:27;;6440:49;;6541:4;6535:11;6573:66;6566:5;6559:81;6678:11;6671:4;6664:5;6660:16;6653:37;6728:66;6721:4;6714:5;6710:16;6703:92;6834:4;6827:5;6824:1;6817:22;6808:31;;6508:341;6900:5;6887:30;;;6918:11;6931:13;6887:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7003:5;6981:13;:19;6995:4;6981:19;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7042:4;7018:14;:21;7033:5;7018:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6147:906;;;;;;:::o;696:175:7:-;778:86;798:5;828:23;;;853:2;857:5;805:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;778:19;:86::i;:::-;696:175;;;:::o;2959:751::-;3378:23;3404:69;3432:4;3404:69;;;;;;;;;;;;;;;;;3412:5;3404:27;;;;:69;;;;;:::i;:::-;3378:95;;3507:1;3487:10;:17;:21;3483:221;;;3627:10;3616:30;;;;;;;;;;;;:::i;:::-;3608:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3483:221;2959:751;;;:::o;1746:187:5:-;1832:7;1864:1;1859;:6;;1867:12;1851:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1890:9;1906:1;1902;:5;1890:17;;1925:1;1918:8;;;1746:187;;;;;:::o;3770:194:8:-;3873:12;3904:53;3927:6;3935:4;3941:1;3944:12;3904:22;:53::i;:::-;3897:60;;3770:194;;;;;:::o;5117:958::-;5247:12;5279:18;5290:6;5279:10;:18::i;:::-;5271:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5402:12;5416:23;5443:6;:11;;5463:8;5474:4;5443:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5401:78;;;;5493:7;5489:580;;;5523:10;5516:17;;;;;;5489:580;5654:1;5634:10;:17;:21;5630:429;;;5892:10;5886:17;5952:15;5939:10;5935:2;5931:19;5924:44;5841:145;6031:12;6024:20;;;;;;;;;;;:::i;:::-;;;;;;;;5117:958;;;;;;;:::o;718:610::-;778:4;1036:16;1062:19;1084:66;1062:88;;;;1251:7;1239:20;1227:32;;1290:11;1278:8;:23;;:42;;;;;1317:3;1305:15;;:8;:15;;1278:42;1270:51;;;;718:610;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:128::-;;223:6;217:13;208:22;;235:30;259:5;235:30;:::i;:::-;202:68;;;;:::o;277:130::-;;357:6;344:20;335:29;;369:33;396:5;369:33;:::i;:::-;329:78;;;;:::o;414:134::-;;498:6;492:13;483:22;;510:33;537:5;510:33;:::i;:::-;477:71;;;;:::o;569:336::-;;;683:3;676:4;668:6;664:17;660:27;650:2;;701:1;698;691:12;650:2;734:6;721:20;711:30;;761:18;753:6;750:30;747:2;;;793:1;790;783:12;747:2;827:4;819:6;815:17;803:29;;878:3;870:4;862:6;858:17;848:8;844:32;841:41;838:2;;;895:1;892;885:12;838:2;643:262;;;;;:::o;913:130::-;;993:6;980:20;971:29;;1005:33;1032:5;1005:33;:::i;:::-;965:78;;;;:::o;1050:134::-;;1134:6;1128:13;1119:22;;1146:33;1173:5;1146:33;:::i;:::-;1113:71;;;;:::o;1191:128::-;;1270:6;1257:20;1248:29;;1282:32;1308:5;1282:32;:::i;:::-;1242:77;;;;:::o;1326:126::-;;1404:6;1391:20;1382:29;;1416:31;1441:5;1416:31;:::i;:::-;1376:76;;;;:::o;1459:130::-;;1541:6;1535:13;1526:22;;1553:31;1578:5;1553:31;:::i;:::-;1520:69;;;;:::o;1596:241::-;;1700:2;1688:9;1679:7;1675:23;1671:32;1668:2;;;1716:1;1713;1706:12;1668:2;1751:1;1768:53;1813:7;1804:6;1793:9;1789:22;1768:53;:::i;:::-;1758:63;;1730:97;1662:175;;;;:::o;1844:613::-;;;;;1997:3;1985:9;1976:7;1972:23;1968:33;1965:2;;;2014:1;2011;2004:12;1965:2;2049:1;2066:53;2111:7;2102:6;2091:9;2087:22;2066:53;:::i;:::-;2056:63;;2028:97;2156:2;2174:53;2219:7;2210:6;2199:9;2195:22;2174:53;:::i;:::-;2164:63;;2135:98;2264:2;2282:53;2327:7;2318:6;2307:9;2303:22;2282:53;:::i;:::-;2272:63;;2243:98;2372:2;2390:51;2433:7;2424:6;2413:9;2409:22;2390:51;:::i;:::-;2380:61;;2351:96;1959:498;;;;;;;:::o;2464:257::-;;2576:2;2564:9;2555:7;2551:23;2547:32;2544:2;;;2592:1;2589;2582:12;2544:2;2627:1;2644:61;2697:7;2688:6;2677:9;2673:22;2644:61;:::i;:::-;2634:71;;2606:105;2538:183;;;;:::o;2728:241::-;;2832:2;2820:9;2811:7;2807:23;2803:32;2800:2;;;2848:1;2845;2838:12;2800:2;2883:1;2900:53;2945:7;2936:6;2925:9;2921:22;2900:53;:::i;:::-;2890:63;;2862:97;2794:175;;;;:::o;2976:263::-;;3091:2;3079:9;3070:7;3066:23;3062:32;3059:2;;;3107:1;3104;3097:12;3059:2;3142:1;3159:64;3215:7;3206:6;3195:9;3191:22;3159:64;:::i;:::-;3149:74;;3121:108;3053:186;;;;:::o;3246:362::-;;;3365:2;3353:9;3344:7;3340:23;3336:32;3333:2;;;3381:1;3378;3371:12;3333:2;3416:1;3433:53;3478:7;3469:6;3458:9;3454:22;3433:53;:::i;:::-;3423:63;;3395:97;3523:2;3541:51;3584:7;3575:6;3564:9;3560:22;3541:51;:::i;:::-;3531:61;;3502:96;3327:281;;;;;:::o;3615:365::-;;;3738:2;3726:9;3717:7;3713:23;3709:32;3706:2;;;3754:1;3751;3744:12;3706:2;3817:1;3806:9;3802:17;3789:31;3840:18;3832:6;3829:30;3826:2;;;3872:1;3869;3862:12;3826:2;3900:64;3956:7;3947:6;3936:9;3932:22;3900:64;:::i;:::-;3882:82;;;;3768:202;3700:280;;;;;:::o;3987:263::-;;4102:2;4090:9;4081:7;4077:23;4073:32;4070:2;;;4118:1;4115;4108:12;4070:2;4153:1;4170:64;4226:7;4217:6;4206:9;4202:22;4170:64;:::i;:::-;4160:74;;4132:108;4064:186;;;;:::o;4257:239::-;;4360:2;4348:9;4339:7;4335:23;4331:32;4328:2;;;4376:1;4373;4366:12;4328:2;4411:1;4428:52;4472:7;4463:6;4452:9;4448:22;4428:52;:::i;:::-;4418:62;;4390:96;4322:174;;;;:::o;4503:259::-;;4616:2;4604:9;4595:7;4591:23;4587:32;4584:2;;;4632:1;4629;4622:12;4584:2;4667:1;4684:62;4738:7;4729:6;4718:9;4714:22;4684:62;:::i;:::-;4674:72;;4646:106;4578:184;;;;:::o;4770:189::-;;4865:54;4915:3;4907:6;4865:54;:::i;:::-;4948:4;4943:3;4939:14;4925:28;;4858:101;;;;:::o;4968:185::-;;5061:52;5109:3;5101:6;5061:52;:::i;:::-;5142:4;5137:3;5133:14;5119:28;;5054:99;;;;:::o;5162:181::-;;5253:50;5299:3;5291:6;5253:50;:::i;:::-;5332:4;5327:3;5323:14;5309:28;;5246:97;;;;:::o;5351:142::-;5442:45;5481:5;5442:45;:::i;:::-;5437:3;5430:58;5424:69;;:::o;5500:113::-;5583:24;5601:5;5583:24;:::i;:::-;5578:3;5571:37;5565:48;;:::o;5620:121::-;5711:24;5729:5;5711:24;:::i;:::-;5706:3;5699:37;5693:48;;:::o;5748:104::-;5825:21;5840:5;5825:21;:::i;:::-;5820:3;5813:34;5807:45;;:::o;5859:113::-;5942:24;5960:5;5942:24;:::i;:::-;5937:3;5930:37;5924:48;;:::o;5979:152::-;6080:45;6100:24;6118:5;6100:24;:::i;:::-;6080:45;:::i;:::-;6075:3;6068:58;6062:69;;:::o;6138:356::-;;6266:38;6298:5;6266:38;:::i;:::-;6316:88;6397:6;6392:3;6316:88;:::i;:::-;6309:95;;6409:52;6454:6;6449:3;6442:4;6435:5;6431:16;6409:52;:::i;:::-;6482:6;6477:3;6473:16;6466:23;;6246:248;;;;;:::o;6501:347::-;;6613:39;6646:5;6613:39;:::i;:::-;6664:71;6728:6;6723:3;6664:71;:::i;:::-;6657:78;;6740:52;6785:6;6780:3;6773:4;6766:5;6762:16;6740:52;:::i;:::-;6813:29;6835:6;6813:29;:::i;:::-;6808:3;6804:39;6797:46;;6593:255;;;;;:::o;6856:318::-;;7016:67;7080:2;7075:3;7016:67;:::i;:::-;7009:74;;7116:20;7112:1;7107:3;7103:11;7096:41;7165:2;7160:3;7156:12;7149:19;;7002:172;;;:::o;7183:324::-;;7343:67;7407:2;7402:3;7343:67;:::i;:::-;7336:74;;7443:26;7439:1;7434:3;7430:11;7423:47;7498:2;7493:3;7489:12;7482:19;;7329:178;;;:::o;7516:381::-;;7676:67;7740:2;7735:3;7676:67;:::i;:::-;7669:74;;7776:34;7772:1;7767:3;7763:11;7756:55;7845:14;7840:2;7835:3;7831:12;7824:36;7888:2;7883:3;7879:12;7872:19;;7662:235;;;:::o;7906:316::-;;8066:67;8130:2;8125:3;8066:67;:::i;:::-;8059:74;;8166:18;8162:1;8157:3;8153:11;8146:39;8213:2;8208:3;8204:12;8197:19;;8052:170;;;:::o;8231:394::-;;8391:67;8455:2;8450:3;8391:67;:::i;:::-;8384:74;;8491:34;8487:1;8482:3;8478:11;8471:55;8560:27;8555:2;8550:3;8546:12;8539:49;8616:2;8611:3;8607:12;8600:19;;8377:248;;;:::o;8634:318::-;;8794:67;8858:2;8853:3;8794:67;:::i;:::-;8787:74;;8894:20;8890:1;8885:3;8881:11;8874:41;8943:2;8938:3;8934:12;8927:19;;8780:172;;;:::o;8961:324::-;;9121:67;9185:2;9180:3;9121:67;:::i;:::-;9114:74;;9221:26;9217:1;9212:3;9208:11;9201:47;9276:2;9271:3;9267:12;9260:19;;9107:178;;;:::o;9294:315::-;;9454:67;9518:2;9513:3;9454:67;:::i;:::-;9447:74;;9554:17;9550:1;9545:3;9541:11;9534:38;9600:2;9595:3;9591:12;9584:19;;9440:169;;;:::o;9618:321::-;;9778:67;9842:2;9837:3;9778:67;:::i;:::-;9771:74;;9878:23;9874:1;9869:3;9865:11;9858:44;9930:2;9925:3;9921:12;9914:19;;9764:175;;;:::o;9948:380::-;;10108:67;10172:2;10167:3;10108:67;:::i;:::-;10101:74;;10208:34;10204:1;10199:3;10195:11;10188:55;10277:13;10272:2;10267:3;10263:12;10256:35;10319:2;10314:3;10310:12;10303:19;;10094:234;;;:::o;10337:378::-;;10497:67;10561:2;10556:3;10497:67;:::i;:::-;10490:74;;10597:34;10593:1;10588:3;10584:11;10577:55;10666:11;10661:2;10656:3;10652:12;10645:33;10706:2;10701:3;10697:12;10690:19;;10483:232;;;:::o;10724:320::-;;10884:67;10948:2;10943:3;10884:67;:::i;:::-;10877:74;;10984:22;10980:1;10975:3;10971:11;10964:43;11035:2;11030:3;11026:12;11019:19;;10870:174;;;:::o;11053:325::-;;11213:67;11277:2;11272:3;11213:67;:::i;:::-;11206:74;;11313:27;11309:1;11304:3;11300:11;11293:48;11369:2;11364:3;11360:12;11353:19;;11199:179;;;:::o;11387:324::-;;11547:67;11611:2;11606:3;11547:67;:::i;:::-;11540:74;;11647:26;11643:1;11638:3;11634:11;11627:47;11702:2;11697:3;11693:12;11686:19;;11533:178;;;:::o;11720:329::-;;11880:67;11944:2;11939:3;11880:67;:::i;:::-;11873:74;;11980:31;11976:1;11971:3;11967:11;11960:52;12040:2;12035:3;12031:12;12024:19;;11866:183;;;:::o;12058:379::-;;12218:67;12282:2;12277:3;12218:67;:::i;:::-;12211:74;;12318:34;12314:1;12309:3;12305:11;12298:55;12387:12;12382:2;12377:3;12373:12;12366:34;12428:2;12423:3;12419:12;12412:19;;12204:233;;;:::o;12446:375::-;;12606:67;12670:2;12665:3;12606:67;:::i;:::-;12599:74;;12706:34;12702:1;12697:3;12693:11;12686:55;12775:8;12770:2;12765:3;12761:12;12754:30;12812:2;12807:3;12803:12;12796:19;;12592:229;;;:::o;12894:700::-;13061:4;13056:3;13052:14;13141:4;13134:5;13130:16;13124:23;13160:70;13226:3;13212:12;13160:70;:::i;:::-;13153:77;;13081:155;13311:4;13304:5;13300:16;13294:23;13330:66;13392:3;13378:12;13330:66;:::i;:::-;13323:73;;13246:156;13486:4;13479:5;13475:16;13469:23;13505:68;13569:3;13555:12;13505:68;:::i;:::-;13498:75;;13412:167;13034:560;;;:::o;13666:880::-;13830:4;13825:3;13821:14;13857:1;13915:4;13908:5;13904:16;13898:23;13885:36;;13947:55;13992:9;13947:55;:::i;:::-;14015:70;14081:3;14067:12;14015:70;:::i;:::-;14008:77;;13868:223;14153:4;14146:5;14142:16;14136:23;14123:36;;14185:53;14228:9;14185:53;:::i;:::-;14251:66;14313:3;14299:12;14251:66;:::i;:::-;14244:73;;14101:222;14390:54;14434:9;14390:54;:::i;:::-;14457:68;14521:3;14507:12;14457:68;:::i;:::-;14450:75;;14333:198;13803:743;;;;:::o;14553:113::-;14636:24;14654:5;14636:24;:::i;:::-;14631:3;14624:37;14618:48;;:::o;14673:121::-;14764:24;14782:5;14764:24;:::i;:::-;14759:3;14752:37;14746:48;;:::o;14801:111::-;14882:24;14900:5;14882:24;:::i;:::-;14877:3;14870:37;14864:48;;:::o;14919:110::-;15000:23;15017:5;15000:23;:::i;:::-;14995:3;14988:36;14982:47;;:::o;15036:108::-;15115:23;15132:5;15115:23;:::i;:::-;15110:3;15103:36;15097:47;;:::o;15151:107::-;15230:22;15246:5;15230:22;:::i;:::-;15225:3;15218:35;15212:46;;:::o;15265:115::-;15352:22;15368:5;15352:22;:::i;:::-;15347:3;15340:35;15334:46;;:::o;15387:105::-;15464:22;15480:5;15464:22;:::i;:::-;15459:3;15452:35;15446:46;;:::o;15499:144::-;15596:41;15614:22;15630:5;15614:22;:::i;:::-;15596:41;:::i;:::-;15591:3;15584:54;15578:65;;:::o;15650:271::-;;15803:93;15892:3;15883:6;15803:93;:::i;:::-;15796:100;;15913:3;15906:10;;15784:137;;;;:::o;15928:365::-;;16112:131;16239:3;16230:6;16112:131;:::i;:::-;16265:2;16260:3;16256:12;16249:19;;16285:3;16278:10;;16100:193;;;;:::o;16300:359::-;;16481:128;16605:3;16596:6;16481:128;:::i;:::-;16631:2;16626:3;16622:12;16615:19;;16651:3;16644:10;;16469:190;;;;:::o;16666:383::-;;16818:71;16885:3;16876:6;16818:71;:::i;:::-;16911:1;16906:3;16902:11;16895:18;;16924:75;16995:3;16986:6;16924:75;:::i;:::-;17021:2;17016:3;17012:12;17005:19;;17041:3;17034:10;;16806:243;;;;;:::o;17056:222::-;;17183:2;17172:9;17168:18;17160:26;;17197:71;17265:1;17254:9;17250:17;17241:6;17197:71;:::i;:::-;17154:124;;;;:::o;17285:238::-;;17420:2;17409:9;17405:18;17397:26;;17434:79;17510:1;17499:9;17495:17;17486:6;17434:79;:::i;:::-;17391:132;;;;:::o;17530:349::-;;17693:2;17682:9;17678:18;17670:26;;17707:79;17783:1;17772:9;17768:17;17759:6;17707:79;:::i;:::-;17797:72;17865:2;17854:9;17850:18;17841:6;17797:72;:::i;:::-;17664:215;;;;;:::o;17886:444::-;;18069:2;18058:9;18054:18;18046:26;;18083:71;18151:1;18140:9;18136:17;18127:6;18083:71;:::i;:::-;18165:72;18233:2;18222:9;18218:18;18209:6;18165:72;:::i;:::-;18248;18316:2;18305:9;18301:18;18292:6;18248:72;:::i;:::-;18040:290;;;;;;:::o;18337:333::-;;18492:2;18481:9;18477:18;18469:26;;18506:71;18574:1;18563:9;18559:17;18550:6;18506:71;:::i;:::-;18588:72;18656:2;18645:9;18641:18;18632:6;18588:72;:::i;:::-;18463:207;;;;;:::o;18677:210::-;;18798:2;18787:9;18783:18;18775:26;;18812:65;18874:1;18863:9;18859:17;18850:6;18812:65;:::i;:::-;18769:118;;;;:::o;18894:310::-;;19041:2;19030:9;19026:18;19018:26;;19091:9;19085:4;19081:20;19077:1;19066:9;19062:17;19055:47;19116:78;19189:4;19180:6;19116:78;:::i;:::-;19108:86;;19012:192;;;;:::o;19211:416::-;;19411:2;19400:9;19396:18;19388:26;;19461:9;19455:4;19451:20;19447:1;19436:9;19432:17;19425:47;19486:131;19612:4;19486:131;:::i;:::-;19478:139;;19382:245;;;:::o;19634:416::-;;19834:2;19823:9;19819:18;19811:26;;19884:9;19878:4;19874:20;19870:1;19859:9;19855:17;19848:47;19909:131;20035:4;19909:131;:::i;:::-;19901:139;;19805:245;;;:::o;20057:416::-;;20257:2;20246:9;20242:18;20234:26;;20307:9;20301:4;20297:20;20293:1;20282:9;20278:17;20271:47;20332:131;20458:4;20332:131;:::i;:::-;20324:139;;20228:245;;;:::o;20480:416::-;;20680:2;20669:9;20665:18;20657:26;;20730:9;20724:4;20720:20;20716:1;20705:9;20701:17;20694:47;20755:131;20881:4;20755:131;:::i;:::-;20747:139;;20651:245;;;:::o;20903:416::-;;21103:2;21092:9;21088:18;21080:26;;21153:9;21147:4;21143:20;21139:1;21128:9;21124:17;21117:47;21178:131;21304:4;21178:131;:::i;:::-;21170:139;;21074:245;;;:::o;21326:416::-;;21526:2;21515:9;21511:18;21503:26;;21576:9;21570:4;21566:20;21562:1;21551:9;21547:17;21540:47;21601:131;21727:4;21601:131;:::i;:::-;21593:139;;21497:245;;;:::o;21749:416::-;;21949:2;21938:9;21934:18;21926:26;;21999:9;21993:4;21989:20;21985:1;21974:9;21970:17;21963:47;22024:131;22150:4;22024:131;:::i;:::-;22016:139;;21920:245;;;:::o;22172:416::-;;22372:2;22361:9;22357:18;22349:26;;22422:9;22416:4;22412:20;22408:1;22397:9;22393:17;22386:47;22447:131;22573:4;22447:131;:::i;:::-;22439:139;;22343:245;;;:::o;22595:416::-;;22795:2;22784:9;22780:18;22772:26;;22845:9;22839:4;22835:20;22831:1;22820:9;22816:17;22809:47;22870:131;22996:4;22870:131;:::i;:::-;22862:139;;22766:245;;;:::o;23018:416::-;;23218:2;23207:9;23203:18;23195:26;;23268:9;23262:4;23258:20;23254:1;23243:9;23239:17;23232:47;23293:131;23419:4;23293:131;:::i;:::-;23285:139;;23189:245;;;:::o;23441:416::-;;23641:2;23630:9;23626:18;23618:26;;23691:9;23685:4;23681:20;23677:1;23666:9;23662:17;23655:47;23716:131;23842:4;23716:131;:::i;:::-;23708:139;;23612:245;;;:::o;23864:416::-;;24064:2;24053:9;24049:18;24041:26;;24114:9;24108:4;24104:20;24100:1;24089:9;24085:17;24078:47;24139:131;24265:4;24139:131;:::i;:::-;24131:139;;24035:245;;;:::o;24287:416::-;;24487:2;24476:9;24472:18;24464:26;;24537:9;24531:4;24527:20;24523:1;24512:9;24508:17;24501:47;24562:131;24688:4;24562:131;:::i;:::-;24554:139;;24458:245;;;:::o;24710:416::-;;24910:2;24899:9;24895:18;24887:26;;24960:9;24954:4;24950:20;24946:1;24935:9;24931:17;24924:47;24985:131;25111:4;24985:131;:::i;:::-;24977:139;;24881:245;;;:::o;25133:416::-;;25333:2;25322:9;25318:18;25310:26;;25383:9;25377:4;25373:20;25369:1;25358:9;25354:17;25347:47;25408:131;25534:4;25408:131;:::i;:::-;25400:139;;25304:245;;;:::o;25556:416::-;;25756:2;25745:9;25741:18;25733:26;;25806:9;25800:4;25796:20;25792:1;25781:9;25777:17;25770:47;25831:131;25957:4;25831:131;:::i;:::-;25823:139;;25727:245;;;:::o;25979:416::-;;26179:2;26168:9;26164:18;26156:26;;26229:9;26223:4;26219:20;26215:1;26204:9;26200:17;26193:47;26254:131;26380:4;26254:131;:::i;:::-;26246:139;;26150:245;;;:::o;26402:708::-;;26645:3;26634:9;26630:19;26622:27;;26660:79;26736:1;26725:9;26721:17;26712:6;26660:79;:::i;:::-;26750:76;26822:2;26811:9;26807:18;26798:6;26750:76;:::i;:::-;26837:80;26913:2;26902:9;26898:18;26889:6;26837:80;:::i;:::-;26928;27004:2;26993:9;26989:18;26980:6;26928:80;:::i;:::-;27019:81;27095:3;27084:9;27080:19;27071:6;27019:81;:::i;:::-;26616:494;;;;;;;;:::o;27117:432::-;;27294:2;27283:9;27279:18;27271:26;;27308:71;27376:1;27365:9;27361:17;27352:6;27308:71;:::i;:::-;27390:68;27454:2;27443:9;27439:18;27430:6;27390:68;:::i;:::-;27469:70;27535:2;27524:9;27520:18;27511:6;27469:70;:::i;:::-;27265:284;;;;;;:::o;27556:218::-;;27681:2;27670:9;27666:18;27658:26;;27695:69;27761:1;27750:9;27746:17;27737:6;27695:69;:::i;:::-;27652:122;;;;:::o;27781:325::-;;27932:2;27921:9;27917:18;27909:26;;27946:67;28010:1;27999:9;27995:17;27986:6;27946:67;:::i;:::-;28024:72;28092:2;28081:9;28077:18;28068:6;28024:72;:::i;:::-;27903:203;;;;;:::o;28113:540::-;;28316:3;28305:9;28301:19;28293:27;;28331:67;28395:1;28384:9;28380:17;28371:6;28331:67;:::i;:::-;28409:68;28473:2;28462:9;28458:18;28449:6;28409:68;:::i;:::-;28488:72;28556:2;28545:9;28541:18;28532:6;28488:72;:::i;:::-;28571;28639:2;28628:9;28624:18;28615:6;28571:72;:::i;:::-;28287:366;;;;;;;:::o;28660:121::-;;28753:5;28747:12;28737:22;;28718:63;;;:::o;28788:122::-;;28882:5;28876:12;28866:22;;28847:63;;;:::o;28918:144::-;;29053:3;29038:18;;29031:31;;;;:::o;29071:163::-;;29186:6;29181:3;29174:19;29223:4;29218:3;29214:14;29199:29;;29167:67;;;;:::o;29242:85::-;;29317:5;29306:16;;29300:27;;;:::o;29334:101::-;;29419:10;29412:5;29408:22;29397:33;;29391:44;;;:::o;29442:94::-;;29526:4;29519:5;29515:16;29504:27;;29498:38;;;:::o;29543:91::-;;29605:24;29623:5;29605:24;:::i;:::-;29594:35;;29588:46;;;:::o;29641:85::-;;29714:5;29707:13;29700:21;29689:32;;29683:43;;;:::o;29733:72::-;;29795:5;29784:16;;29778:27;;;:::o;29812:121::-;;29885:42;29878:5;29874:54;29863:65;;29857:76;;;:::o;29940:72::-;;30002:5;29991:16;;29985:27;;;:::o;30019:88::-;;30091:10;30084:5;30080:22;30069:33;;30063:44;;;:::o;30114:81::-;;30185:4;30178:5;30174:16;30163:27;;30157:38;;;:::o;30202:129::-;;30289:37;30320:5;30289:37;:::i;:::-;30276:50;;30270:61;;;:::o;30338:121::-;;30417:37;30448:5;30417:37;:::i;:::-;30404:50;;30398:61;;;:::o;30466:108::-;;30545:24;30563:5;30545:24;:::i;:::-;30532:37;;30526:48;;;:::o;30582:268::-;30647:1;30654:101;30668:6;30665:1;30662:13;30654:101;;;30744:1;30739:3;30735:11;30729:18;30725:1;30720:3;30716:11;30709:39;30690:2;30687:1;30683:10;30678:15;;30654:101;;;30770:6;30767:1;30764:13;30761:2;;;30835:1;30826:6;30821:3;30817:16;30810:27;30761:2;30631:219;;;;:::o;30858:161::-;;30948:66;30979:34;31002:10;30979:34;:::i;:::-;30948:66;:::i;:::-;30939:75;;30933:86;;;:::o;31026:157::-;;31114:64;31143:34;31166:10;31143:34;:::i;:::-;31114:64;:::i;:::-;31105:73;;31099:84;;;:::o;31190:159::-;;31279:65;31309:34;31332:10;31309:34;:::i;:::-;31279:65;:::i;:::-;31270:74;;31264:85;;;:::o;31356:74::-;;31420:5;31409:16;;31403:27;;;:::o;31437:88::-;;31499:21;31514:5;31499:21;:::i;:::-;31488:32;;31482:43;;;:::o;31532:97::-;;31620:2;31616:7;31611:2;31604:5;31600:14;31596:28;31586:38;;31580:49;;;:::o;31637:96::-;;31717:5;31712:3;31708:15;31686:37;;31680:53;;;:::o;31741:102::-;;31827:5;31824:1;31820:13;31798:35;;31792:51;;;:::o;31851:102::-;;31937:5;31934:1;31930:13;31908:35;;31902:51;;;:::o;31961:117::-;32030:24;32048:5;32030:24;:::i;:::-;32023:5;32020:35;32010:2;;32069:1;32066;32059:12;32010:2;32004:74;:::o;32085:111::-;32151:21;32166:5;32151:21;:::i;:::-;32144:5;32141:32;32131:2;;32187:1;32184;32177:12;32131:2;32125:71;:::o;32203:117::-;32272:24;32290:5;32272:24;:::i;:::-;32265:5;32262:35;32252:2;;32311:1;32308;32301:12;32252:2;32246:74;:::o;32327:117::-;32396:24;32414:5;32396:24;:::i;:::-;32389:5;32386:35;32376:2;;32435:1;32432;32425:12;32376:2;32370:74;:::o;32451:115::-;32519:23;32536:5;32519:23;:::i;:::-;32512:5;32509:34;32499:2;;32557:1;32554;32547:12;32499:2;32493:73;:::o;32573:113::-;32640:22;32656:5;32640:22;:::i;:::-;32633:5;32630:33;32620:2;;32677:1;32674;32667:12;32620:2;32614: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/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"./BytesLib.sol\";\nimport \"./SchnorrSECP256K1.sol\";\nimport \"./WrappedAsset.sol\";\n\ncontract Wormhole {\n using SafeERC20 for IERC20;\n using BytesLib for bytes;\n using SafeMath for uint256;\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 uint256 x;\n uint8 parity;\n uint32 expiration_time;\n }\n\n event LogGuardianSetChanged(\n GuardianSet indexed oldGuardian,\n GuardianSet indexed newGuardian\n );\n\n event LogTokensLocked(\n uint8 target_chain,\n uint8 token_chain,\n bytes32 indexed token,\n bytes32 indexed sender,\n bytes32 recipient,\n uint256 amount\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 an vaa is valid in seconds\n uint32 public vaa_expiry;\n\n // Mapping of already consumedVAAs\n mapping(bytes32 => bool) 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 _vaa_expiry) public {\n guardian_sets[0] = initial_guardian_set;\n // Explicitly set for doc purposes\n guardian_set_index = 0;\n vaa_expiry = _vaa_expiry;\n\n wrappedAssetMaster = wrapped_asset_master;\n }\n\n function submitVAA(\n bytes calldata vaa\n ) public {\n uint8 version = vaa.toUint8(0);\n require(version == 1, \"VAA version incompatible\");\n\n // Load 4 bytes starting from index 1\n uint32 vaa_guardian_set_index = vaa.toUint32(1);\n\n uint256 signature = vaa.toUint256(5);\n address sig_address = vaa.toAddress(37);\n\n // Load 4 bytes starting from index 77\n uint32 timestamp = vaa.toUint32(57);\n\n // Verify that the VAA is still valid\n require(timestamp + vaa_expiry > block.timestamp, \"VAA has expired\");\n\n // Hash the body\n bytes32 hash = keccak256(vaa.slice(57, vaa.length - 57));\n require(!consumedVAAs[hash], \"VAA was already executed\");\n\n GuardianSet memory guardian_set = guardian_sets[vaa_guardian_set_index];\n require(guardian_set.expiration_time == 0 || guardian_set.expiration_time > block.timestamp, \"guardian set has expired\");\n require(\n Schnorr.verifySignature(\n guardian_set.x,\n guardian_set.parity,\n signature,\n uint256(hash),\n sig_address\n ),\n \"VAA signature invalid\");\n\n uint8 action = vaa.toUint8(61);\n uint8 payload_len = vaa.toUint8(62);\n bytes memory payload = vaa.slice(63, payload_len);\n\n // Process VAA\n if (action == 0x01) {\n require(vaa_guardian_set_index == guardian_set_index, \"only the current guardian set can change the guardian set\");\n vaaUpdateGuardianSet(payload);\n } else if (action == 0x10) {\n vaaTransfer(payload);\n } else {\n revert(\"invalid VAA action\");\n }\n\n // Set the VAA as consumed\n consumedVAAs[hash] = true;\n }\n\n function vaaUpdateGuardianSet(bytes memory data) private {\n uint256 new_key_x = data.toUint256(0);\n uint256 y_parity = data.toUint8(32);\n uint32 new_guardian_set_index = data.toUint32(33);\n\n require(new_guardian_set_index > guardian_set_index, \"index of new guardian set must be > current\");\n require(new_key_x < Schnorr.HALF_Q, \"invalid key for fast Schnorr verification\");\n require(y_parity <= 1, \"invalid y parity\");\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_key_x, uint8(y_parity), 0);\n guardian_sets[guardian_set_index] = new_guardian_set;\n guardian_sets[old_guardian_set_index].expiration_time = uint32(block.timestamp) + vaa_expiry;\n\n emit LogGuardianSetChanged(guardian_sets[old_guardian_set_index], new_guardian_set);\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(103);\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 wrapped_asset = deployWrappedAsset(asset_id, token_chain, token_address);\n }\n\n WrappedAsset(wrapped_asset).mint(target_address, amount);\n } else {\n address token_address = data.toAddress(71 + 12);\n\n IERC20(token_address).safeTransfer(target_address, amount);\n }\n }\n\n function deployWrappedAsset(bytes32 seed, uint8 token_chain, bytes32 token_address) 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 := create(0, clone, 0x37)\n }\n\n // Call initializer\n WrappedAsset(asset).initialize(token_chain, token_address);\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 ) public {\n require(amount != 0, \"amount must not be 0\");\n\n uint8 asset_chain = CHAIN_ID;\n bytes32 asset_address;\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 asset_address = bytes32(uint256(asset));\n }\n\n emit LogTokensLocked(target_chain, asset_chain, asset_address, bytes32(uint256(msg.sender)), recipient, amount);\n }\n\n function lockETH(\n bytes32 recipient,\n uint8 target_chain\n ) public payable {\n require(msg.value != 0, \"amount must not be 0\");\n\n // Wrap tx value in WETH\n WETH(WETHAddress).deposit{value : msg.value}();\n\n // Log deposit of WETH\n emit LogTokensLocked(target_chain, CHAIN_ID, bytes32(uint256(WETHAddress)), bytes32(uint256(msg.sender)), recipient, msg.value);\n }\n\n\nfallback() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\nreceive() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\n}\n\n\ninterface WETH is IERC20 {\nfunction deposit() external payable;\n\nfunction withdraw(uint256 amount) external;\n}\n", "sourcePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol", "ast": { "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol", "exportedSymbols": { "WETH": [ - 1184 + 1192 ], "Wormhole": [ - 1173 + 1181 ] }, - "id": 1185, + "id": 1193, "license": "Apache 2", "nodeType": "SourceUnit", "nodes": [ @@ -315,8 +356,8 @@ "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "id": 457, "nodeType": "ImportDirective", - "scope": 1185, - "sourceUnit": 2026, + "scope": 1193, + "sourceUnit": 2034, "src": "123:56:2", "symbolAliases": [], "unitAlias": "" @@ -326,8 +367,8 @@ "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol", "id": 458, "nodeType": "ImportDirective", - "scope": 1185, - "sourceUnit": 2239, + "scope": 1193, + "sourceUnit": 2247, "src": "180:59:2", "symbolAliases": [], "unitAlias": "" @@ -337,8 +378,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 459, "nodeType": "ImportDirective", - "scope": 1185, - "sourceUnit": 1948, + "scope": 1193, + "sourceUnit": 1956, "src": "240:51:2", "symbolAliases": [], "unitAlias": "" @@ -348,7 +389,7 @@ "file": "./BytesLib.sol", "id": 460, "nodeType": "ImportDirective", - "scope": 1185, + "scope": 1193, "sourceUnit": 334, "src": "292:24:2", "symbolAliases": [], @@ -359,7 +400,7 @@ "file": "./SchnorrSECP256K1.sol", "id": 461, "nodeType": "ImportDirective", - "scope": 1185, + "scope": 1193, "sourceUnit": 454, "src": "317:32:2", "symbolAliases": [], @@ -370,8 +411,8 @@ "file": "./WrappedAsset.sol", "id": 462, "nodeType": "ImportDirective", - "scope": 1185, - "sourceUnit": 1729, + "scope": 1193, + "sourceUnit": 1737, "src": "350:28:2", "symbolAliases": [], "unitAlias": "" @@ -383,9 +424,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1173, + "id": 1181, "linearizedBaseContracts": [ - 1173 + 1181 ], "name": "Wormhole", "nodeType": "ContractDefinition", @@ -397,10 +438,10 @@ "id": 463, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2238, + "referencedDeclaration": 2246, "src": "410:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$2238", + "typeIdentifier": "t_contract$_SafeERC20_$2246", "typeString": "library SafeERC20" } }, @@ -411,10 +452,10 @@ "id": 464, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2025, + "referencedDeclaration": 2033, "src": "424:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } } @@ -453,10 +494,10 @@ "id": 469, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1947, + "referencedDeclaration": 1955, "src": "472:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1947", + "typeIdentifier": "t_contract$_SafeMath_$1955", "typeString": "library SafeMath" } }, @@ -481,7 +522,7 @@ "name": "wrappedAssetMaster", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, + "scope": 1181, "src": "544:33:2", "stateVariable": true, "storageLocation": "default", @@ -510,7 +551,7 @@ "name": "CHAIN_ID", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, + "scope": 1181, "src": "612:18:2", "stateVariable": true, "storageLocation": "default", @@ -555,7 +596,7 @@ "name": "WETHAddress", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, + "scope": 1181, "src": "682:73:2", "stateVariable": true, "storageLocation": "default", @@ -685,7 +726,7 @@ ], "name": "GuardianSet", "nodeType": "StructDefinition", - "scope": 1173, + "scope": 1181, "src": "762:99:2", "visibility": "public" }, @@ -955,148 +996,16 @@ }, "src": "989:197:2" }, - { - "anonymous": false, - "documentation": null, - "id": 516, - "name": "LogTokensUnlocked", - "nodeType": "EventDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 508, - "indexed": true, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 516, - "src": "1225:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1225:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 510, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 516, - "src": "1256:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 509, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1256:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 512, - "indexed": false, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 516, - "src": "1288:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 511, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1288:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 514, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 516, - "src": "1315:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 513, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1315:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1215:120:2" - }, - "src": "1192:144:2" - }, { "constant": false, - "id": 520, + "functionSelector": "42b0aefa", + "id": 510, "mutability": "mutable", "name": "guardian_sets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1395:53:2", + "scope": 1181, + "src": "1245:51:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1104,30 +1013,30 @@ "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "typeName": { - "id": 519, + "id": 509, "keyType": { - "id": 517, + "id": 507, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1403:6:2", + "src": "1253:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Mapping", - "src": "1395:30:2", + "src": "1245:30:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "valueType": { "contractScope": null, - "id": 518, + "id": 508, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 486, - "src": "1413:11:2", + "src": "1263:11:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", "typeString": "struct Wormhole.GuardianSet" @@ -1135,18 +1044,18 @@ } }, "value": null, - "visibility": "private" + "visibility": "public" }, { "constant": false, "functionSelector": "822d82b3", - "id": 522, + "id": 512, "mutability": "mutable", "name": "guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1489:32:2", + "scope": 1181, + "src": "1337:32:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1154,10 +1063,10 @@ "typeString": "uint32" }, "typeName": { - "id": 521, + "id": 511, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1489:6:2", + "src": "1337:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1169,13 +1078,13 @@ { "constant": false, "functionSelector": "7f04d9e6", - "id": 524, + "id": 514, "mutability": "mutable", "name": "vaa_expiry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1579:24:2", + "scope": 1181, + "src": "1427:24:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1183,10 +1092,10 @@ "typeString": "uint32" }, "typeName": { - "id": 523, + "id": 513, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1579:6:2", + "src": "1427:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1197,13 +1106,13 @@ }, { "constant": false, - "id": 528, + "id": 518, "mutability": "mutable", "name": "consumedVAAs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1649:37:2", + "scope": 1181, + "src": "1497:37:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1211,28 +1120,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 527, + "id": 517, "keyType": { - "id": 525, + "id": 515, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1657:7:2", + "src": "1505:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1649:24:2", + "src": "1497:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 526, + "id": 516, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1668:4:2", + "src": "1516:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1244,13 +1153,14 @@ }, { "constant": false, - "id": 532, + "functionSelector": "b6694c2a", + "id": 522, "mutability": "mutable", "name": "wrappedAssets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1741:41:2", + "scope": 1181, + "src": "1589:48:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1258,28 +1168,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 531, + "id": 521, "keyType": { - "id": 529, + "id": 519, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1749:7:2", + "src": "1597:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1741:27:2", + "src": "1589:27:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 530, + "id": 520, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1760:7:2", + "src": "1608:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1288,17 +1198,18 @@ } }, "value": null, - "visibility": "internal" + "visibility": "public" }, { "constant": false, - "id": 536, + "functionSelector": "1a2be4da", + "id": 526, "mutability": "mutable", "name": "isWrappedAsset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1788:39:2", + "scope": 1181, + "src": "1643:46:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1306,28 +1217,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 535, + "id": 525, "keyType": { - "id": 533, + "id": 523, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1796:7:2", + "src": "1651:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1788:24:2", + "src": "1643:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 534, + "id": 524, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1807:4:2", + "src": "1662:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1335,18 +1246,18 @@ } }, "value": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 557, + "id": 553, "nodeType": "Block", - "src": "1924:183:2", + "src": "1806:217:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 547, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -1355,29 +1266,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 543, + "id": 535, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "1934:13:2", + "referencedDeclaration": 510, + "src": "1816:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 545, + "id": 537, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 544, + "id": 536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1948:1:2", + "src": "1830:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1390,7 +1301,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1934:16:2", + "src": "1816:16:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" @@ -1400,26 +1311,123 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 546, + "id": 538, "name": "initial_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 538, - "src": "1953:20:2", + "referencedDeclaration": 528, + "src": "1835:20:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "1934:39:2", + "src": "1816:39:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, + "id": 540, + "nodeType": "ExpressionStatement", + "src": "1816:39:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 541, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "1908:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1929:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1908:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 544, + "nodeType": "ExpressionStatement", + "src": "1908:22:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 545, + "name": "vaa_expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "1940:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 546, + "name": "_vaa_expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "1953:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1940:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, "id": 548, "nodeType": "ExpressionStatement", - "src": "1934:39:2" + "src": "1940:24:2" }, { "expression": { @@ -1432,62 +1440,11 @@ "leftHandSide": { "argumentTypes": null, "id": 549, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "2026:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2047:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2026:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 552, - "nodeType": "ExpressionStatement", - "src": "2026:22:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 553, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, - "src": "2059:18:2", + "src": "1975:18:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1497,31 +1454,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 554, + "id": 550, "name": "wrapped_asset_master", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 540, - "src": "2080:20:2", + "referencedDeclaration": 530, + "src": "1996:20:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2059:41:2", + "src": "1975:41:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 556, + "id": 552, "nodeType": "ExpressionStatement", - "src": "2059:41:2" + "src": "1975:41:2" } ] }, "documentation": null, - "id": 558, + "id": 554, "implemented": true, "kind": "constructor", "modifiers": [], @@ -1529,18 +1486,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 541, + "id": 533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 538, + "id": 528, "mutability": "mutable", "name": "initial_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 558, - "src": "1846:39:2", + "scope": 554, + "src": "1708:39:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1549,11 +1506,11 @@ }, "typeName": { "contractScope": null, - "id": 537, + "id": 527, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 486, - "src": "1846:11:2", + "src": "1708:11:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", "typeString": "struct Wormhole.GuardianSet" @@ -1564,13 +1521,13 @@ }, { "constant": false, - "id": 540, + "id": 530, "mutability": "mutable", "name": "wrapped_asset_master", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 558, - "src": "1887:28:2", + "scope": 554, + "src": "1749:28:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1578,10 +1535,10 @@ "typeString": "address" }, "typeName": { - "id": 539, + "id": 529, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1887:7:2", + "src": "1749:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1590,42 +1547,70 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 532, + "mutability": "mutable", + "name": "_vaa_expiry", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 554, + "src": "1779:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 531, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1779:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1845:71:2" + "src": "1707:91:2" }, "returnParameters": { - "id": 542, + "id": 534, "nodeType": "ParameterList", "parameters": [], - "src": "1924:0:2" + "src": "1806:0:2" }, - "scope": 1173, - "src": "1834:273:2", + "scope": 1181, + "src": "1696:327:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 724, + "id": 727, "nodeType": "Block", - "src": "2173:1663:2", + "src": "2089:1737:2", "statements": [ { "assignments": [ - 564 + 560 ], "declarations": [ { "constant": false, - "id": 564, + "id": 560, "mutability": "mutable", "name": "version", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2183:13:2", + "scope": 727, + "src": "2099:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1633,10 +1618,10 @@ "typeString": "uint8" }, "typeName": { - "id": 563, + "id": 559, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2183:5:2", + "src": "2099:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1646,21 +1631,21 @@ "visibility": "internal" } ], - "id": 569, + "id": 565, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 567, + "id": 563, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2211:1:2", + "src": "2127:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1678,18 +1663,18 @@ ], "expression": { "argumentTypes": null, - "id": 565, + "id": 561, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2199:3:2", + "referencedDeclaration": 556, + "src": "2115:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 566, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, @@ -1697,13 +1682,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "2199:11:2", + "src": "2115:11:2", "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": 568, + "id": 564, "isConstant": false, "isLValue": false, "isPure": false, @@ -1711,7 +1696,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2199:14:2", + "src": "2115:14:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1719,7 +1704,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2183:30:2" + "src": "2099:30:2" }, { "expression": { @@ -1731,19 +1716,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 573, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 571, + "id": 567, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 564, - "src": "2231:7:2", + "referencedDeclaration": 560, + "src": "2147:7:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1754,14 +1739,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 572, + "id": 568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2242:1:2", + "src": "2158:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1769,7 +1754,7 @@ }, "value": "1" }, - "src": "2231:12:2", + "src": "2147:12:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1778,14 +1763,14 @@ { "argumentTypes": null, "hexValue": "5641412076657273696f6e20696e636f6d70617469626c65", - "id": 574, + "id": 570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2245:26:2", + "src": "2161:26:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a", @@ -1805,7 +1790,7 @@ "typeString": "literal_string \"VAA version incompatible\"" } ], - "id": 570, + "id": 566, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1813,13 +1798,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2223:7:2", + "src": "2139:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 575, + "id": 571, "isConstant": false, "isLValue": false, "isPure": false, @@ -1827,31 +1812,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2223:49:2", + "src": "2139:49:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 576, + "id": 572, "nodeType": "ExpressionStatement", - "src": "2223:49:2" + "src": "2139:49:2" }, { "assignments": [ - 578 + 574 ], "declarations": [ { "constant": false, - "id": 578, + "id": 574, "mutability": "mutable", "name": "vaa_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2329:29:2", + "scope": 727, + "src": "2245:29:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1859,10 +1844,10 @@ "typeString": "uint32" }, "typeName": { - "id": 577, + "id": 573, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2329:6:2", + "src": "2245:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1872,21 +1857,21 @@ "visibility": "internal" } ], - "id": 583, + "id": 579, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "31", - "id": 581, + "id": 577, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2374:1:2", + "src": "2290:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1904,18 +1889,18 @@ ], "expression": { "argumentTypes": null, - "id": 579, + "id": 575, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2361:3:2", + "referencedDeclaration": 556, + "src": "2277:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 580, + "id": 576, "isConstant": false, "isLValue": false, "isPure": false, @@ -1923,13 +1908,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2361:12:2", + "src": "2277:12:2", "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": 582, + "id": 578, "isConstant": false, "isLValue": false, "isPure": false, @@ -1937,7 +1922,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2361:15:2", + "src": "2277:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -1945,22 +1930,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2329:47:2" + "src": "2245:47:2" }, { "assignments": [ - 585 + 581 ], "declarations": [ { "constant": false, - "id": 585, + "id": 581, "mutability": "mutable", "name": "signature", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2387:17:2", + "scope": 727, + "src": "2303:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1968,10 +1953,10 @@ "typeString": "uint256" }, "typeName": { - "id": 584, + "id": 580, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2387:7:2", + "src": "2303:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1981,21 +1966,21 @@ "visibility": "internal" } ], - "id": 590, + "id": 586, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 588, + "id": 584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2421:1:2", + "src": "2337:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -2013,18 +1998,18 @@ ], "expression": { "argumentTypes": null, - "id": 586, + "id": 582, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2407:3:2", + "referencedDeclaration": 556, + "src": "2323:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 587, + "id": 583, "isConstant": false, "isLValue": false, "isPure": false, @@ -2032,13 +2017,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "2407:13:2", + "src": "2323:13:2", "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": 589, + "id": 585, "isConstant": false, "isLValue": false, "isPure": false, @@ -2046,7 +2031,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2407:16:2", + "src": "2323:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2054,22 +2039,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2387:36:2" + "src": "2303:36:2" }, { "assignments": [ - 592 + 588 ], "declarations": [ { "constant": false, - "id": 592, + "id": 588, "mutability": "mutable", "name": "sig_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2433:19:2", + "scope": 727, + "src": "2349:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2077,10 +2062,10 @@ "typeString": "address" }, "typeName": { - "id": 591, + "id": 587, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2433:7:2", + "src": "2349:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2091,21 +2076,21 @@ "visibility": "internal" } ], - "id": 597, + "id": 593, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3337", - "id": 595, + "id": 591, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2469:2:2", + "src": "2385:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_37_by_1", @@ -2123,18 +2108,18 @@ ], "expression": { "argumentTypes": null, - "id": 593, + "id": 589, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2455:3:2", + "referencedDeclaration": 556, + "src": "2371:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 594, + "id": 590, "isConstant": false, "isLValue": false, "isPure": false, @@ -2142,13 +2127,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "2455:13:2", + "src": "2371:13:2", "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": 596, + "id": 592, "isConstant": false, "isLValue": false, "isPure": false, @@ -2156,7 +2141,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2455:17:2", + "src": "2371:17:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -2164,22 +2149,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2433:39:2" + "src": "2349:39:2" }, { "assignments": [ - 599 + 595 ], "declarations": [ { "constant": false, - "id": 599, + "id": 595, "mutability": "mutable", "name": "timestamp", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2530:16:2", + "scope": 727, + "src": "2446:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2187,10 +2172,10 @@ "typeString": "uint32" }, "typeName": { - "id": 598, + "id": 594, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2530:6:2", + "src": "2446:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2200,21 +2185,21 @@ "visibility": "internal" } ], - "id": 604, + "id": 600, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3537", - "id": 602, + "id": 598, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2562:2:2", + "src": "2478:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57_by_1", @@ -2232,18 +2217,18 @@ ], "expression": { "argumentTypes": null, - "id": 600, + "id": 596, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2549:3:2", + "referencedDeclaration": 556, + "src": "2465:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 601, + "id": 597, "isConstant": false, "isLValue": false, "isPure": false, @@ -2251,13 +2236,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2549:12:2", + "src": "2465:12:2", "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": 603, + "id": 599, "isConstant": false, "isLValue": false, "isPure": false, @@ -2265,7 +2250,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2549:16:2", + "src": "2465:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -2273,7 +2258,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2530:35:2" + "src": "2446:35:2" }, { "expression": { @@ -2285,7 +2270,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 611, + "id": 607, "isConstant": false, "isLValue": false, "isPure": false, @@ -2296,19 +2281,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 608, + "id": 604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 606, + "id": 602, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "2684:9:2", + "referencedDeclaration": 595, + "src": "2546:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2318,41 +2303,41 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 607, + "id": 603, "name": "vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "2696:10:2", + "referencedDeclaration": 514, + "src": "2558:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "2684:22:2", + "src": "2546:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", - "operator": "<", + "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 609, + "id": 605, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2709:5:2", + "src": "2571:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 610, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, @@ -2360,13 +2345,13 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2709:15:2", + "src": "2571:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2684:40:2", + "src": "2546:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2375,14 +2360,14 @@ { "argumentTypes": null, "hexValue": "564141206861732065787069726564", - "id": 612, + "id": 608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2726:17:2", + "src": "2588:17:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_716b6a367d262f21a121968c96e61557fe9c6281596966426b955d4c8c65cb86", @@ -2402,7 +2387,7 @@ "typeString": "literal_string \"VAA has expired\"" } ], - "id": 605, + "id": 601, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2410,13 +2395,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2676:7:2", + "src": "2538:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 613, + "id": 609, "isConstant": false, "isLValue": false, "isPure": false, @@ -2424,31 +2409,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2676:68:2", + "src": "2538:68:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 614, + "id": 610, "nodeType": "ExpressionStatement", - "src": "2676:68:2" + "src": "2538:68:2" }, { "assignments": [ - 616 + 612 ], "declarations": [ { "constant": false, - "id": 616, + "id": 612, "mutability": "mutable", "name": "hash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2780:12:2", + "scope": 727, + "src": "2642:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2456,10 +2441,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 615, + "id": 611, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2780:7:2", + "src": "2642:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2469,7 +2454,7 @@ "visibility": "internal" } ], - "id": 627, + "id": 623, "initialValue": { "argumentTypes": null, "arguments": [ @@ -2479,14 +2464,14 @@ { "argumentTypes": null, "hexValue": "3537", - "id": 620, + "id": 616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2815:2:2", + "src": "2677:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57_by_1", @@ -2500,7 +2485,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 624, + "id": 620, "isConstant": false, "isLValue": false, "isPure": false, @@ -2509,18 +2494,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 621, + "id": 617, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2819:3:2", + "referencedDeclaration": 556, + "src": "2681:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 622, + "id": 618, "isConstant": false, "isLValue": false, "isPure": false, @@ -2528,7 +2513,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2819:10:2", + "src": "2681:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2539,14 +2524,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3537", - "id": 623, + "id": 619, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2832:2:2", + "src": "2694:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57_by_1", @@ -2554,7 +2539,7 @@ }, "value": "57" }, - "src": "2819:15:2", + "src": "2681:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2574,18 +2559,18 @@ ], "expression": { "argumentTypes": null, - "id": 618, + "id": 614, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2805:3:2", + "referencedDeclaration": 556, + "src": "2667:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 619, + "id": 615, "isConstant": false, "isLValue": false, "isPure": false, @@ -2593,13 +2578,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "2805:9:2", + "src": "2667:9:2", "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": 625, + "id": 621, "isConstant": false, "isLValue": false, "isPure": false, @@ -2607,7 +2592,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2805:30:2", + "src": "2667:30:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2622,18 +2607,18 @@ "typeString": "bytes memory" } ], - "id": 617, + "id": 613, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "2795:9:2", + "src": "2657:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 626, + "id": 622, "isConstant": false, "isLValue": false, "isPure": false, @@ -2641,7 +2626,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2795:41:2", + "src": "2657:41:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2649,7 +2634,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2780:56:2" + "src": "2642:56:2" }, { "expression": { @@ -2657,7 +2642,7 @@ "arguments": [ { "argumentTypes": null, - "id": 632, + "id": 628, "isConstant": false, "isLValue": false, "isPure": false, @@ -2665,31 +2650,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2854:19:2", + "src": "2716:19:2", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 629, + "id": 625, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "2855:12:2", + "referencedDeclaration": 518, + "src": "2717:12:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 631, + "id": 627, "indexExpression": { "argumentTypes": null, - "id": 630, + "id": 626, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "2868:4:2", + "referencedDeclaration": 612, + "src": "2730:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2700,7 +2685,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2855:18:2", + "src": "2717:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2714,14 +2699,14 @@ { "argumentTypes": null, "hexValue": "5641412077617320616c7265616479206578656375746564", - "id": 633, + "id": 629, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2875:26:2", + "src": "2737:26:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028", @@ -2741,7 +2726,7 @@ "typeString": "literal_string \"VAA was already executed\"" } ], - "id": 628, + "id": 624, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2749,13 +2734,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2846:7:2", + "src": "2708:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 634, + "id": 630, "isConstant": false, "isLValue": false, "isPure": false, @@ -2763,31 +2748,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2846:56:2", + "src": "2708:56:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 635, + "id": 631, "nodeType": "ExpressionStatement", - "src": "2846:56:2" + "src": "2708:56:2" }, { "assignments": [ - 637 + 633 ], "declarations": [ { "constant": false, - "id": 637, + "id": 633, "mutability": "mutable", "name": "guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2913:31:2", + "scope": 727, + "src": "2775:31:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2796,11 +2781,11 @@ }, "typeName": { "contractScope": null, - "id": 636, + "id": 632, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 486, - "src": "2913:11:2", + "src": "2775:11:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", "typeString": "struct Wormhole.GuardianSet" @@ -2810,31 +2795,31 @@ "visibility": "internal" } ], - "id": 641, + "id": 637, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 638, + "id": 634, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "2947:13:2", + "referencedDeclaration": 510, + "src": "2809:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 640, + "id": 636, "indexExpression": { "argumentTypes": null, - "id": 639, + "id": 635, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "2961:22:2", + "referencedDeclaration": 574, + "src": "2823:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2845,14 +2830,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2947:37:2", + "src": "2809:37:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2913:71:2" + "src": "2775:71:2" }, { "expression": { @@ -2864,7 +2849,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 652, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -2875,7 +2860,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 646, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, @@ -2884,18 +2869,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 643, + "id": 639, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3002:12:2", + "referencedDeclaration": 633, + "src": "2864:12:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 644, + "id": 640, "isConstant": false, "isLValue": true, "isPure": false, @@ -2903,7 +2888,7 @@ "memberName": "expiration_time", "nodeType": "MemberAccess", "referencedDeclaration": 485, - "src": "3002:28:2", + "src": "2864:28:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2914,14 +2899,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 645, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3034:1:2", + "src": "2896:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2929,7 +2914,7 @@ }, "value": "0" }, - "src": "3002:33:2", + "src": "2864:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2943,7 +2928,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 651, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, @@ -2952,18 +2937,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 647, + "id": 643, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3039:12:2", + "referencedDeclaration": 633, + "src": "2901:12:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 648, + "id": 644, "isConstant": false, "isLValue": true, "isPure": false, @@ -2971,7 +2956,7 @@ "memberName": "expiration_time", "nodeType": "MemberAccess", "referencedDeclaration": 485, - "src": "3039:28:2", + "src": "2901:28:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2983,18 +2968,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 649, + "id": 645, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "3070:5:2", + "src": "2932:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 650, + "id": 646, "isConstant": false, "isLValue": false, "isPure": false, @@ -3002,19 +2987,19 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3070:15:2", + "src": "2932:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3039:46:2", + "src": "2901:46:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3002:83:2", + "src": "2864:83:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3023,14 +3008,14 @@ { "argumentTypes": null, "hexValue": "677561726469616e20736574206861732065787069726564", - "id": 653, + "id": 649, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3087:26:2", + "src": "2949:26:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1", @@ -3050,7 +3035,7 @@ "typeString": "literal_string \"guardian set has expired\"" } ], - "id": 642, + "id": 638, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3058,13 +3043,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2994:7:2", + "src": "2856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 654, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, @@ -3072,16 +3057,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2994:120:2", + "src": "2856:120:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 655, + "id": 651, "nodeType": "ExpressionStatement", - "src": "2994:120:2" + "src": "2856:120:2" }, { "expression": { @@ -3094,18 +3079,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 659, + "id": 655, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3186:12:2", + "referencedDeclaration": 633, + "src": "3048:12:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 660, + "id": 656, "isConstant": false, "isLValue": true, "isPure": false, @@ -3113,7 +3098,7 @@ "memberName": "x", "nodeType": "MemberAccess", "referencedDeclaration": 481, - "src": "3186:14:2", + "src": "3048:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3123,18 +3108,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 661, + "id": 657, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3218:12:2", + "referencedDeclaration": 633, + "src": "3080:12:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 662, + "id": 658, "isConstant": false, "isLValue": true, "isPure": false, @@ -3142,7 +3127,7 @@ "memberName": "parity", "nodeType": "MemberAccess", "referencedDeclaration": 483, - "src": "3218:19:2", + "src": "3080:19:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3150,12 +3135,12 @@ }, { "argumentTypes": null, - "id": 663, + "id": 659, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "3255:9:2", + "referencedDeclaration": 581, + "src": "3117:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3166,12 +3151,12 @@ "arguments": [ { "argumentTypes": null, - "id": 666, + "id": 662, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "3290:4:2", + "referencedDeclaration": 612, + "src": "3152:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3185,29 +3170,29 @@ "typeString": "bytes32" } ], - "id": 665, + "id": 661, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3282:7:2", + "src": "3144:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 664, + "id": 660, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3282:7:2", + "src": "3144:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 667, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -3215,7 +3200,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3282:13:2", + "src": "3144:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3224,12 +3209,12 @@ }, { "argumentTypes": null, - "id": 668, + "id": 664, "name": "sig_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "3313:11:2", + "referencedDeclaration": 588, + "src": "3175:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3261,18 +3246,18 @@ ], "expression": { "argumentTypes": null, - "id": 657, + "id": 653, "name": "Schnorr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, - "src": "3145:7:2", + "src": "3007:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Schnorr_$453_$", "typeString": "type(library Schnorr)" } }, - "id": 658, + "id": 654, "isConstant": false, "isLValue": false, "isPure": false, @@ -3280,13 +3265,13 @@ "memberName": "verifySignature", "nodeType": "MemberAccess", "referencedDeclaration": 452, - "src": "3145:23:2", + "src": "3007:23:2", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint8_$_t_uint256_$_t_uint256_$_t_address_$returns$_t_bool_$", "typeString": "function (uint256,uint8,uint256,uint256,address) pure returns (bool)" } }, - "id": 669, + "id": 665, "isConstant": false, "isLValue": false, "isPure": false, @@ -3294,7 +3279,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3145:193:2", + "src": "3007:193:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3304,14 +3289,14 @@ { "argumentTypes": null, "hexValue": "564141207369676e617475726520696e76616c6964", - "id": 670, + "id": 666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3352:23:2", + "src": "3214:23:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", @@ -3331,7 +3316,7 @@ "typeString": "literal_string \"VAA signature invalid\"" } ], - "id": 656, + "id": 652, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3339,13 +3324,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3124:7:2", + "src": "2986:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 671, + "id": 667, "isConstant": false, "isLValue": false, "isPure": false, @@ -3353,31 +3338,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3124:252:2", + "src": "2986:252:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 672, + "id": 668, "nodeType": "ExpressionStatement", - "src": "3124:252:2" + "src": "2986:252:2" }, { "assignments": [ - 674 + 670 ], "declarations": [ { "constant": false, - "id": 674, + "id": 670, "mutability": "mutable", "name": "action", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "3387:12:2", + "scope": 727, + "src": "3249:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3385,10 +3370,10 @@ "typeString": "uint8" }, "typeName": { - "id": 673, + "id": 669, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3387:5:2", + "src": "3249:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3398,21 +3383,21 @@ "visibility": "internal" } ], - "id": 679, + "id": 675, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3631", - "id": 677, + "id": 673, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3414:2:2", + "src": "3276:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_61_by_1", @@ -3430,18 +3415,18 @@ ], "expression": { "argumentTypes": null, - "id": 675, + "id": 671, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "3402:3:2", + "referencedDeclaration": 556, + "src": "3264:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 676, + "id": 672, "isConstant": false, "isLValue": false, "isPure": false, @@ -3449,13 +3434,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3402:11:2", + "src": "3264:11:2", "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": 678, + "id": 674, "isConstant": false, "isLValue": false, "isPure": false, @@ -3463,7 +3448,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3402:15:2", + "src": "3264:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3471,22 +3456,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3387:30:2" + "src": "3249:30:2" }, { "assignments": [ - 681 + 677 ], "declarations": [ { "constant": false, - "id": 681, + "id": 677, "mutability": "mutable", "name": "payload_len", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "3427:17:2", + "scope": 727, + "src": "3289:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3494,10 +3479,10 @@ "typeString": "uint8" }, "typeName": { - "id": 680, + "id": 676, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3427:5:2", + "src": "3289:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3507,21 +3492,21 @@ "visibility": "internal" } ], - "id": 686, + "id": 682, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3632", - "id": 684, + "id": 680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3459:2:2", + "src": "3321:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_62_by_1", @@ -3539,18 +3524,18 @@ ], "expression": { "argumentTypes": null, - "id": 682, + "id": 678, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "3447:3:2", + "referencedDeclaration": 556, + "src": "3309:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 683, + "id": 679, "isConstant": false, "isLValue": false, "isPure": false, @@ -3558,13 +3543,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3447:11:2", + "src": "3309:11:2", "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": 685, + "id": 681, "isConstant": false, "isLValue": false, "isPure": false, @@ -3572,7 +3557,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3447:15:2", + "src": "3309:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3580,22 +3565,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3427:35:2" + "src": "3289:35:2" }, { "assignments": [ - 688 + 684 ], "declarations": [ { "constant": false, - "id": 688, + "id": 684, "mutability": "mutable", "name": "payload", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "3472:20:2", + "scope": 727, + "src": "3334:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3603,10 +3588,10 @@ "typeString": "bytes" }, "typeName": { - "id": 687, + "id": 683, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3472:5:2", + "src": "3334:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3616,21 +3601,21 @@ "visibility": "internal" } ], - "id": 694, + "id": 690, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3633", - "id": 691, + "id": 687, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3505:2:2", + "src": "3367:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_63_by_1", @@ -3640,12 +3625,12 @@ }, { "argumentTypes": null, - "id": 692, + "id": 688, "name": "payload_len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "3509:11:2", + "referencedDeclaration": 677, + "src": "3371:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3665,18 +3650,18 @@ ], "expression": { "argumentTypes": null, - "id": 689, + "id": 685, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "3495:3:2", + "referencedDeclaration": 556, + "src": "3357:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 690, + "id": 686, "isConstant": false, "isLValue": false, "isPure": false, @@ -3684,13 +3669,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "3495:9:2", + "src": "3357:9:2", "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": 693, + "id": 689, "isConstant": false, "isLValue": false, "isPure": false, @@ -3698,7 +3683,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3495:26:2", + "src": "3357:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3706,7 +3691,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3472:49:2" + "src": "3334:49:2" }, { "condition": { @@ -3715,19 +3700,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 697, + "id": 693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 695, + "id": 691, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "3559:6:2", + "referencedDeclaration": 670, + "src": "3421:6:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3738,14 +3723,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783031", - "id": 696, + "id": 692, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3569:4:2", + "src": "3431:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3753,7 +3738,7 @@ }, "value": "0x01" }, - "src": "3559:14:2", + "src": "3421:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3766,19 +3751,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 705, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 703, + "id": 706, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "3639:6:2", + "referencedDeclaration": 670, + "src": "3629:6:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3789,14 +3774,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783130", - "id": 704, + "id": 707, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3649:4:2", + "src": "3639:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", @@ -3804,16 +3789,16 @@ }, "value": "0x10" }, - "src": "3639:14:2", + "src": "3629:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 715, + "id": 718, "nodeType": "Block", - "src": "3706:53:2", + "src": "3696:53:2", "statements": [ { "expression": { @@ -3822,14 +3807,14 @@ { "argumentTypes": null, "hexValue": "696e76616c69642056414120616374696f6e", - "id": 712, + "id": 715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3727:20:2", + "src": "3717:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66", @@ -3845,7 +3830,7 @@ "typeString": "literal_string \"invalid VAA action\"" } ], - "id": 711, + "id": 714, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3853,13 +3838,13 @@ -19 ], "referencedDeclaration": -19, - "src": "3720:6:2", + "src": "3710:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 713, + "id": 716, "isConstant": false, "isLValue": false, "isPure": false, @@ -3867,26 +3852,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3720:28:2", + "src": "3710:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 714, + "id": 717, "nodeType": "ExpressionStatement", - "src": "3720:28:2" + "src": "3710:28:2" } ] }, - "id": 716, + "id": 719, "nodeType": "IfStatement", - "src": "3635:124:2", + "src": "3625:124:2", "trueBody": { - "id": 710, + "id": 713, "nodeType": "Block", - "src": "3655:45:2", + "src": "3645:45:2", "statements": [ { "expression": { @@ -3894,12 +3879,12 @@ "arguments": [ { "argumentTypes": null, - "id": 707, + "id": 710, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "3681:7:2", + "referencedDeclaration": 684, + "src": "3671:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3913,18 +3898,18 @@ "typeString": "bytes memory" } ], - "id": 706, + "id": 709, "name": "vaaTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 941, - "src": "3669:11:2", + "referencedDeclaration": 949, + "src": "3659:11:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 708, + "id": 711, "isConstant": false, "isLValue": false, "isPure": false, @@ -3932,27 +3917,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3669:20:2", + "src": "3659:20:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 709, + "id": 712, "nodeType": "ExpressionStatement", - "src": "3669:20:2" + "src": "3659:20:2" } ] } }, - "id": 717, + "id": 720, "nodeType": "IfStatement", - "src": "3555:204:2", + "src": "3417:332:2", "trueBody": { - "id": 702, + "id": 705, "nodeType": "Block", - "src": "3575:54:2", + "src": "3437:182:2", "statements": [ { "expression": { @@ -3960,12 +3945,124 @@ "arguments": [ { "argumentTypes": null, - "id": 699, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 695, + "name": "vaa_guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 574, + "src": "3459:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 696, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "3485:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3459:44:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574", + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3505:59:2", + "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": 694, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3451:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3451:114:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 700, + "nodeType": "ExpressionStatement", + "src": "3451:114:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 702, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "3610:7:2", + "referencedDeclaration": 684, + "src": "3600:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3979,18 +4076,18 @@ "typeString": "bytes memory" } ], - "id": 698, + "id": 701, "name": "vaaUpdateGuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3589:20:2", + "referencedDeclaration": 822, + "src": "3579:20:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 700, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -3998,16 +4095,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3589:29:2", + "src": "3579:29:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 701, + "id": 704, "nodeType": "ExpressionStatement", - "src": "3589:29:2" + "src": "3579:29:2" } ] } @@ -4015,7 +4112,7 @@ { "expression": { "argumentTypes": null, - "id": 722, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, @@ -4024,26 +4121,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 718, + "id": 721, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "3804:12:2", + "referencedDeclaration": 518, + "src": "3794:12:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 720, + "id": 723, "indexExpression": { "argumentTypes": null, - "id": 719, + "id": 722, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "3817:4:2", + "referencedDeclaration": 612, + "src": "3807:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4054,7 +4151,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3804:18:2", + "src": "3794:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4065,14 +4162,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 721, + "id": 724, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3825:4:2", + "src": "3815:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4080,21 +4177,21 @@ }, "value": "true" }, - "src": "3804:25:2", + "src": "3794:25:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 723, + "id": 726, "nodeType": "ExpressionStatement", - "src": "3804:25:2" + "src": "3794:25:2" } ] }, "documentation": null, "functionSelector": "3bc0aee6", - "id": 725, + "id": 728, "implemented": true, "kind": "function", "modifiers": [], @@ -4102,18 +4199,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 561, + "id": 557, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 560, + "id": 556, "mutability": "mutable", "name": "vaa", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 725, - "src": "2141:18:2", + "scope": 728, + "src": "2057:18:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4121,10 +4218,10 @@ "typeString": "bytes" }, "typeName": { - "id": 559, + "id": 555, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2141:5:2", + "src": "2057:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4134,40 +4231,40 @@ "visibility": "internal" } ], - "src": "2131:34:2" + "src": "2047:34:2" }, "returnParameters": { - "id": 562, + "id": 558, "nodeType": "ParameterList", "parameters": [], - "src": "2173:0:2" + "src": "2089:0:2" }, - "scope": 1173, - "src": "2113:1723:2", + "scope": 1181, + "src": "2029:1797:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 813, + "id": 821, "nodeType": "Block", - "src": "3899:829:2", + "src": "3889:873:2", "statements": [ { "assignments": [ - 731 + 734 ], "declarations": [ { "constant": false, - "id": 731, + "id": 734, "mutability": "mutable", "name": "new_key_x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "3909:17:2", + "scope": 821, + "src": "3899:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4175,10 +4272,10 @@ "typeString": "uint256" }, "typeName": { - "id": 730, + "id": 733, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3909:7:2", + "src": "3899:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4188,21 +4285,21 @@ "visibility": "internal" } ], - "id": 736, + "id": 739, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 734, + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3944:1:2", + "src": "3934:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4220,18 +4317,18 @@ ], "expression": { "argumentTypes": null, - "id": 732, + "id": 735, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "3929:4:2", + "referencedDeclaration": 730, + "src": "3919:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 733, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, @@ -4239,13 +4336,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "3929:14:2", + "src": "3919:14:2", "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": 735, + "id": 738, "isConstant": false, "isLValue": false, "isPure": false, @@ -4253,7 +4350,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3929:17:2", + "src": "3919:17:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4261,22 +4358,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3909:37:2" + "src": "3899:37:2" }, { "assignments": [ - 738 + 741 ], "declarations": [ { "constant": false, - "id": 738, + "id": 741, "mutability": "mutable", - "name": "new_key_y", + "name": "y_parity", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "3956:17:2", + "scope": 821, + "src": "3946:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4284,10 +4381,10 @@ "typeString": "uint256" }, "typeName": { - "id": 737, + "id": 740, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3956:7:2", + "src": "3946:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4297,21 +4394,21 @@ "visibility": "internal" } ], - "id": 743, + "id": 746, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3332", - "id": 741, + "id": 744, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3991:2:2", + "src": "3978:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -4329,32 +4426,32 @@ ], "expression": { "argumentTypes": null, - "id": 739, + "id": 742, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "3976:4:2", + "referencedDeclaration": 730, + "src": "3965:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 740, + "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "toUint256", + "memberName": "toUint8", "nodeType": "MemberAccess", - "referencedDeclaration": 271, - "src": "3976:14:2", + "referencedDeclaration": 109, + "src": "3965:12:2", "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)" + "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": 742, + "id": 745, "isConstant": false, "isLValue": false, "isPure": false, @@ -4362,30 +4459,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3976:18:2", + "src": "3965:16:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "3956:38:2" + "src": "3946:35:2" }, { "assignments": [ - 745 + 748 ], "declarations": [ { "constant": false, - "id": 745, + "id": 748, "mutability": "mutable", "name": "new_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "4004:29:2", + "scope": 821, + "src": "3991:29:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4393,10 +4490,10 @@ "typeString": "uint32" }, "typeName": { - "id": 744, + "id": 747, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4004:6:2", + "src": "3991:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4406,50 +4503,50 @@ "visibility": "internal" } ], - "id": 750, + "id": 753, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "3634", - "id": 748, + "hexValue": "3333", + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4050:2:2", + "src": "4037:2:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" }, - "value": "64" + "value": "33" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" } ], "expression": { "argumentTypes": null, - "id": 746, + "id": 749, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "4036:4:2", + "referencedDeclaration": 730, + "src": "4023:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 747, + "id": 750, "isConstant": false, "isLValue": false, "isPure": false, @@ -4457,13 +4554,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "4036:13:2", + "src": "4023:13:2", "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": 749, + "id": 752, "isConstant": false, "isLValue": false, "isPure": false, @@ -4471,7 +4568,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4036:17:2", + "src": "4023:17:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -4479,7 +4576,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4004:49:2" + "src": "3991:49:2" }, { "expression": { @@ -4491,19 +4588,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 754, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 752, + "id": 755, "name": "new_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "4072:22:2", + "referencedDeclaration": 748, + "src": "4059:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4513,18 +4610,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 753, + "id": 756, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "4097:18:2", + "referencedDeclaration": 512, + "src": "4084:18:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4072:43:2", + "src": "4059:43:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4533,14 +4630,14 @@ { "argumentTypes": null, "hexValue": "696e646578206f66206e657720677561726469616e20736574206d757374206265203e2063757272656e74", - "id": 755, + "id": 758, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4117:45:2", + "src": "4104:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_906a0f9350878de65dacfb23a6e8e903db110639fb839bf569ced494236848c8", @@ -4560,7 +4657,7 @@ "typeString": "literal_string \"index of new guardian set must be > current\"" } ], - "id": 751, + "id": 754, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4568,13 +4665,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4064:7:2", + "src": "4051:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 756, + "id": 759, "isConstant": false, "isLValue": false, "isPure": false, @@ -4582,16 +4679,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4064:99:2", + "src": "4051:99:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 757, + "id": 760, "nodeType": "ExpressionStatement", - "src": "4064:99:2" + "src": "4051:99:2" }, { "expression": { @@ -4603,19 +4700,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 762, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 759, + "id": 762, "name": "new_key_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "4181:9:2", + "referencedDeclaration": 734, + "src": "4168:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4627,18 +4724,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 760, + "id": 763, "name": "Schnorr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, - "src": "4193:7:2", + "src": "4180:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Schnorr_$453_$", "typeString": "type(library Schnorr)" } }, - "id": 761, + "id": 764, "isConstant": false, "isLValue": false, "isPure": false, @@ -4646,13 +4743,13 @@ "memberName": "HALF_Q", "nodeType": "MemberAccess", "referencedDeclaration": 346, - "src": "4193:14:2", + "src": "4180:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4181:26:2", + "src": "4168:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4661,14 +4758,14 @@ { "argumentTypes": null, "hexValue": "696e76616c6964206b657920666f722066617374205363686e6f727220766572696669636174696f6e", - "id": 763, + "id": 766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4209:43:2", + "src": "4196:43:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ad2abc16dac8cf88f3decb4180ebbab2f7006b83967f36fdb68b8d2df95c5160", @@ -4688,7 +4785,7 @@ "typeString": "literal_string \"invalid key for fast Schnorr verification\"" } ], - "id": 758, + "id": 761, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4696,13 +4793,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4173:7:2", + "src": "4160:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 764, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -4710,31 +4807,148 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4173:80:2", + "src": "4160:80:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 765, + "id": 768, "nodeType": "ExpressionStatement", - "src": "4173:80:2" + "src": "4160:80:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 770, + "name": "y_parity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "4258:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4270:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4258:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "696e76616c6964207920706172697479", + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4273:18:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4233cf3bcdde1caab54cb7e3337f4cce4e488f0e7c2711d64d9cdf67ee1ee175", + "typeString": "literal_string \"invalid y parity\"" + }, + "value": "invalid y parity" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4233cf3bcdde1caab54cb7e3337f4cce4e488f0e7c2711d64d9cdf67ee1ee175", + "typeString": "literal_string \"invalid y parity\"" + } + ], + "id": 769, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4250:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4250:42:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 775, + "nodeType": "ExpressionStatement", + "src": "4250:42:2" }, { "assignments": [ - 767 + 777 ], "declarations": [ { "constant": false, - "id": 767, + "id": 777, "mutability": "mutable", "name": "old_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "4264:29:2", + "scope": 821, + "src": "4303:29:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4742,10 +4956,10 @@ "typeString": "uint32" }, "typeName": { - "id": 766, + "id": 776, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4264:6:2", + "src": "4303:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4755,39 +4969,39 @@ "visibility": "internal" } ], - "id": 769, + "id": 779, "initialValue": { "argumentTypes": null, - "id": 768, + "id": 778, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "4296:18:2", + "referencedDeclaration": 512, + "src": "4335:18:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "4264:50:2" + "src": "4303:50:2" }, { "expression": { "argumentTypes": null, - "id": 772, + "id": 782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 770, + "id": 780, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "4324:18:2", + "referencedDeclaration": 512, + "src": "4363:18:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4797,41 +5011,41 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 771, + "id": 781, "name": "new_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "4345:22:2", + "referencedDeclaration": 748, + "src": "4384:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4324:43:2", + "src": "4363:43:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 773, + "id": 783, "nodeType": "ExpressionStatement", - "src": "4324:43:2" + "src": "4363:43:2" }, { "assignments": [ - 775 + 785 ], "declarations": [ { "constant": false, - "id": 775, + "id": 785, "mutability": "mutable", "name": "new_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "4378:35:2", + "scope": 821, + "src": "4417:35:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4840,11 +5054,11 @@ }, "typeName": { "contractScope": null, - "id": 774, + "id": 784, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 486, - "src": "4378:11:2", + "src": "4417:11:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", "typeString": "struct Wormhole.GuardianSet" @@ -4854,18 +5068,18 @@ "visibility": "internal" } ], - "id": 786, + "id": 794, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 777, + "id": 787, "name": "new_key_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "4428:9:2", + "referencedDeclaration": 734, + "src": "4467:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4876,49 +5090,12 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 780, - "name": "new_key_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 738, - "src": "4445:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4457:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "4445:13:2", + "id": 790, + "name": "y_parity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "4484:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4932,29 +5109,29 @@ "typeString": "uint256" } ], - "id": 779, + "id": 789, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4439:5:2", + "src": "4478:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 778, + "id": 788, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4439:5:2", + "src": "4478:5:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 783, + "id": 791, "isConstant": false, "isLValue": false, "isPure": false, @@ -4962,7 +5139,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4439:20:2", + "src": "4478:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -4972,14 +5149,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 784, + "id": 792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4461:1:2", + "src": "4495:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5003,18 +5180,18 @@ "typeString": "int_const 0" } ], - "id": 776, + "id": 786, "name": "GuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, - "src": "4416:11:2", + "src": "4455:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_GuardianSet_$486_storage_ptr_$", "typeString": "type(struct Wormhole.GuardianSet storage pointer)" } }, - "id": 785, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -5022,7 +5199,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4416:47:2", + "src": "4455:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", @@ -5030,12 +5207,12 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4378:85:2" + "src": "4417:80:2" }, { "expression": { "argumentTypes": null, - "id": 791, + "id": 799, "isConstant": false, "isLValue": false, "isPure": false, @@ -5044,26 +5221,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 787, + "id": 795, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "4473:13:2", + "referencedDeclaration": 510, + "src": "4507:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 789, + "id": 797, "indexExpression": { "argumentTypes": null, - "id": 788, + "id": 796, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "4487:18:2", + "referencedDeclaration": 512, + "src": "4521:18:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5074,7 +5251,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4473:33:2", + "src": "4507:33:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" @@ -5084,31 +5261,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 790, + "id": 798, "name": "new_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 775, - "src": "4509:16:2", + "referencedDeclaration": 785, + "src": "4543:16:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "4473:52:2", + "src": "4507:52:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 792, + "id": 800, "nodeType": "ExpressionStatement", - "src": "4473:52:2" + "src": "4507:52:2" }, { "expression": { "argumentTypes": null, - "id": 804, + "id": 812, "isConstant": false, "isLValue": false, "isPure": false, @@ -5119,26 +5296,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 793, + "id": 801, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "4535:13:2", + "referencedDeclaration": 510, + "src": "4569:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 795, + "id": 803, "indexExpression": { "argumentTypes": null, - "id": 794, + "id": 802, "name": "old_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "4549:22:2", + "referencedDeclaration": 777, + "src": "4583:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5149,13 +5326,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4535:37:2", + "src": "4569:37:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 796, + "id": 804, "isConstant": false, "isLValue": true, "isPure": false, @@ -5163,7 +5340,7 @@ "memberName": "expiration_time", "nodeType": "MemberAccess", "referencedDeclaration": 485, - "src": "4535:53:2", + "src": "4569:53:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5177,7 +5354,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 803, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -5189,18 +5366,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 799, + "id": 807, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "4598:5:2", + "src": "4632:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 800, + "id": 808, "isConstant": false, "isLValue": false, "isPure": false, @@ -5208,7 +5385,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4598:15:2", + "src": "4632:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5222,29 +5399,29 @@ "typeString": "uint256" } ], - "id": 798, + "id": 806, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4591:6:2", + "src": "4625:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 797, + "id": 805, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4591:6:2", + "src": "4625:6:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 801, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -5252,7 +5429,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4591:23:2", + "src": "4625:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -5263,32 +5440,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 802, + "id": 810, "name": "vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "4617:10:2", + "referencedDeclaration": 514, + "src": "4651:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4591:36:2", + "src": "4625:36:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4535:92:2", + "src": "4569:92:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 805, + "id": 813, "nodeType": "ExpressionStatement", - "src": "4535:92:2" + "src": "4569:92:2" }, { "eventCall": { @@ -5298,26 +5475,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 807, + "id": 815, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "4665:13:2", + "referencedDeclaration": 510, + "src": "4699:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 809, + "id": 817, "indexExpression": { "argumentTypes": null, - "id": 808, + "id": 816, "name": "old_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "4679:22:2", + "referencedDeclaration": 777, + "src": "4713:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5328,7 +5505,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4665:37:2", + "src": "4699:37:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" @@ -5336,12 +5513,12 @@ }, { "argumentTypes": null, - "id": 810, + "id": 818, "name": "new_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 775, - "src": "4704:16:2", + "referencedDeclaration": 785, + "src": "4738:16:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" @@ -5359,18 +5536,18 @@ "typeString": "struct Wormhole.GuardianSet memory" } ], - "id": 806, + "id": 814, "name": "LogGuardianSetChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 492, - "src": "4643:21:2", + "src": "4677:21:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_struct$_GuardianSet_$486_memory_ptr_$_t_struct$_GuardianSet_$486_memory_ptr_$returns$__$", "typeString": "function (struct Wormhole.GuardianSet memory,struct Wormhole.GuardianSet memory)" } }, - "id": 811, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -5378,21 +5555,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4643:78:2", + "src": "4677:78:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 812, + "id": 820, "nodeType": "EmitStatement", - "src": "4638:83:2" + "src": "4672:83:2" } ] }, "documentation": null, - "id": 814, + "id": 822, "implemented": true, "kind": "function", "modifiers": [], @@ -5400,18 +5577,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 728, + "id": 731, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 727, + "id": 730, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 814, - "src": "3872:17:2", + "scope": 822, + "src": "3862:17:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5419,10 +5596,10 @@ "typeString": "bytes" }, "typeName": { - "id": 726, + "id": 729, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3872:5:2", + "src": "3862:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5432,40 +5609,40 @@ "visibility": "internal" } ], - "src": "3871:19:2" + "src": "3861:19:2" }, "returnParameters": { - "id": 729, + "id": 732, "nodeType": "ParameterList", "parameters": [], - "src": "3899:0:2" + "src": "3889:0:2" }, - "scope": 1173, - "src": "3842:886:2", + "scope": 1181, + "src": "3832:930:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 940, + "id": 948, "nodeType": "Block", - "src": "4782:1363:2", + "src": "4816:1325:2", "statements": [ { "assignments": [ - 820 + 828 ], "declarations": [ { "constant": false, - "id": 820, + "id": 828, "mutability": "mutable", "name": "source_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "4835:18:2", + "scope": 948, + "src": "4869:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5473,10 +5650,10 @@ "typeString": "uint8" }, "typeName": { - "id": 819, + "id": 827, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4835:5:2", + "src": "4869:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5486,21 +5663,21 @@ "visibility": "internal" } ], - "id": 825, + "id": 833, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 823, + "id": 831, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4869:1:2", + "src": "4903:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -5518,18 +5695,18 @@ ], "expression": { "argumentTypes": null, - "id": 821, + "id": 829, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "4856:4:2", + "referencedDeclaration": 824, + "src": "4890:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 822, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -5537,13 +5714,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4856:12:2", + "src": "4890:12:2", "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": 824, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -5551,7 +5728,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4856:15:2", + "src": "4890:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -5559,22 +5736,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4835:36:2" + "src": "4869:36:2" }, { "assignments": [ - 827 + 835 ], "declarations": [ { "constant": false, - "id": 827, + "id": 835, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "4882:18:2", + "scope": 948, + "src": "4916:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5582,10 +5759,10 @@ "typeString": "uint8" }, "typeName": { - "id": 826, + "id": 834, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4882:5:2", + "src": "4916:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5595,21 +5772,21 @@ "visibility": "internal" } ], - "id": 832, + "id": 840, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 830, + "id": 838, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4916:1:2", + "src": "4950:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -5627,18 +5804,18 @@ ], "expression": { "argumentTypes": null, - "id": 828, + "id": 836, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "4903:4:2", + "referencedDeclaration": 824, + "src": "4937:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 829, + "id": 837, "isConstant": false, "isLValue": false, "isPure": false, @@ -5646,13 +5823,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4903:12:2", + "src": "4937:12:2", "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": 831, + "id": 839, "isConstant": false, "isLValue": false, "isPure": false, @@ -5660,7 +5837,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4903:15:2", + "src": "4937:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -5668,22 +5845,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4882:36:2" + "src": "4916:36:2" }, { "assignments": [ - 834 + 842 ], "declarations": [ { "constant": false, - "id": 834, + "id": 842, "mutability": "mutable", "name": "target_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "5037:22:2", + "scope": 948, + "src": "5071:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5691,10 +5868,10 @@ "typeString": "address" }, "typeName": { - "id": 833, + "id": 841, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5037:7:2", + "src": "5071:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5705,7 +5882,7 @@ "visibility": "internal" } ], - "id": 841, + "id": 849, "initialValue": { "argumentTypes": null, "arguments": [ @@ -5715,7 +5892,7 @@ "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" }, - "id": 839, + "id": 847, "isConstant": false, "isLValue": false, "isPure": true, @@ -5723,14 +5900,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3338", - "id": 837, + "id": 845, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5077:2:2", + "src": "5111:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_38_by_1", @@ -5743,14 +5920,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 838, + "id": 846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5082:2:2", + "src": "5116:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -5758,7 +5935,7 @@ }, "value": "12" }, - "src": "5077:7:2", + "src": "5111:7:2", "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" @@ -5774,18 +5951,18 @@ ], "expression": { "argumentTypes": null, - "id": 835, + "id": 843, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5062:4:2", + "referencedDeclaration": 824, + "src": "5096:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 836, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, @@ -5793,13 +5970,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "5062:14:2", + "src": "5096:14:2", "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": 840, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, @@ -5807,7 +5984,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5062:23:2", + "src": "5096:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5815,22 +5992,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5037:48:2" + "src": "5071:48:2" }, { "assignments": [ - 843 + 851 ], "declarations": [ { "constant": false, - "id": 843, + "id": 851, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "5096:17:2", + "scope": 948, + "src": "5130:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5838,10 +6015,10 @@ "typeString": "uint8" }, "typeName": { - "id": 842, + "id": 850, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5096:5:2", + "src": "5130:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5851,21 +6028,21 @@ "visibility": "internal" } ], - "id": 848, + "id": 856, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3730", - "id": 846, + "id": 854, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5129:2:2", + "src": "5163:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_70_by_1", @@ -5883,18 +6060,18 @@ ], "expression": { "argumentTypes": null, - "id": 844, + "id": 852, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5116:4:2", + "referencedDeclaration": 824, + "src": "5150:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 845, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, @@ -5902,13 +6079,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5116:12:2", + "src": "5150:12:2", "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": 847, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, @@ -5916,7 +6093,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5116:16:2", + "src": "5150:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -5924,22 +6101,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5096:36:2" + "src": "5130:36:2" }, { "assignments": [ - 850 + 858 ], "declarations": [ { "constant": false, - "id": 850, + "id": 858, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "5196:14:2", + "scope": 948, + "src": "5230:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5947,10 +6124,10 @@ "typeString": "uint256" }, "typeName": { - "id": 849, + "id": 857, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5196:7:2", + "src": "5230:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5960,21 +6137,21 @@ "visibility": "internal" } ], - "id": 855, + "id": 863, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "313033", - "id": 853, + "id": 861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5228:3:2", + "src": "5262:3:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_103_by_1", @@ -5992,18 +6169,18 @@ ], "expression": { "argumentTypes": null, - "id": 851, + "id": 859, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5213:4:2", + "referencedDeclaration": 824, + "src": "5247:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 852, + "id": 860, "isConstant": false, "isLValue": false, "isPure": false, @@ -6011,13 +6188,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "5213:14:2", + "src": "5247:14:2", "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": 854, + "id": 862, "isConstant": false, "isLValue": false, "isPure": false, @@ -6025,7 +6202,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5213:19:2", + "src": "5247:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6033,7 +6210,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5196:36:2" + "src": "5230:36:2" }, { "expression": { @@ -6045,19 +6222,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 859, + "id": 867, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 857, + "id": 865, "name": "source_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 820, - "src": "5251:12:2", + "referencedDeclaration": 828, + "src": "5285:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6067,18 +6244,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 858, + "id": 866, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "5267:12:2", + "referencedDeclaration": 835, + "src": "5301:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5251:28:2", + "src": "5285:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6087,14 +6264,14 @@ { "argumentTypes": null, "hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564", - "id": 860, + "id": 868, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5281:40:2", + "src": "5315:40:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23", @@ -6114,7 +6291,7 @@ "typeString": "literal_string \"same chain transfers are not supported\"" } ], - "id": 856, + "id": 864, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6122,13 +6299,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5243:7:2", + "src": "5277:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 861, + "id": 869, "isConstant": false, "isLValue": false, "isPure": false, @@ -6136,16 +6313,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5243:79:2", + "src": "5277:79:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 862, + "id": 870, "nodeType": "ExpressionStatement", - "src": "5243:79:2" + "src": "5277:79:2" }, { "expression": { @@ -6157,19 +6334,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 866, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 864, + "id": 872, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "5340:12:2", + "referencedDeclaration": 835, + "src": "5374:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6179,18 +6356,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 865, + "id": 873, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 476, - "src": "5356:8:2", + "src": "5390:8:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5340:24:2", + "src": "5374:24:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6199,14 +6376,14 @@ { "argumentTypes": null, "hexValue": "7472616e73666572206d75737420626520696e636f6d696e67", - "id": 867, + "id": 875, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5366:27:2", + "src": "5400:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a", @@ -6226,7 +6403,7 @@ "typeString": "literal_string \"transfer must be incoming\"" } ], - "id": 863, + "id": 871, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6234,13 +6411,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5332:7:2", + "src": "5366:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 868, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -6248,16 +6425,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5332:62:2", + "src": "5366:62:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 869, + "id": 877, "nodeType": "ExpressionStatement", - "src": "5332:62:2" + "src": "5366:62:2" }, { "condition": { @@ -6266,19 +6443,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 872, + "id": 880, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 870, + "id": 878, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "5409:11:2", + "referencedDeclaration": 851, + "src": "5443:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6288,42 +6465,42 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 871, + "id": 879, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 476, - "src": "5424:8:2", + "src": "5458:8:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5409:23:2", + "src": "5443:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 938, + "id": 946, "nodeType": "Block", - "src": "5956:145:2", + "src": "5990:145:2", "statements": [ { "assignments": [ - 922 + 930 ], "declarations": [ { "constant": false, - "id": 922, + "id": 930, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 938, - "src": "5970:21:2", + "scope": 946, + "src": "6004:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6331,10 +6508,10 @@ "typeString": "address" }, "typeName": { - "id": 921, + "id": 929, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5970:7:2", + "src": "6004:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6345,7 +6522,7 @@ "visibility": "internal" } ], - "id": 929, + "id": 937, "initialValue": { "argumentTypes": null, "arguments": [ @@ -6355,7 +6532,7 @@ "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" }, - "id": 927, + "id": 935, "isConstant": false, "isLValue": false, "isPure": true, @@ -6363,14 +6540,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3731", - "id": 925, + "id": 933, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6009:2:2", + "src": "6043:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -6383,14 +6560,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 926, + "id": 934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6014:2:2", + "src": "6048:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -6398,7 +6575,7 @@ }, "value": "12" }, - "src": "6009:7:2", + "src": "6043:7:2", "typeDescriptions": { "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" @@ -6414,18 +6591,18 @@ ], "expression": { "argumentTypes": null, - "id": 923, + "id": 931, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5994:4:2", + "referencedDeclaration": 824, + "src": "6028:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 924, + "id": 932, "isConstant": false, "isLValue": false, "isPure": false, @@ -6433,13 +6610,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "5994:14:2", + "src": "6028:14:2", "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": 928, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -6447,7 +6624,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5994:23:2", + "src": "6028:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -6455,7 +6632,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5970:47:2" + "src": "6004:47:2" }, { "expression": { @@ -6463,12 +6640,12 @@ "arguments": [ { "argumentTypes": null, - "id": 934, + "id": 942, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 834, - "src": "6067:14:2", + "referencedDeclaration": 842, + "src": "6101:14:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6476,12 +6653,12 @@ }, { "argumentTypes": null, - "id": 935, + "id": 943, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 850, - "src": "6083:6:2", + "referencedDeclaration": 858, + "src": "6117:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6504,12 +6681,12 @@ "arguments": [ { "argumentTypes": null, - "id": 931, + "id": 939, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "6039:13:2", + "referencedDeclaration": 930, + "src": "6073:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6523,18 +6700,18 @@ "typeString": "address" } ], - "id": 930, + "id": 938, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2025, - "src": "6032:6:2", + "referencedDeclaration": 2033, + "src": "6066:6:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2025_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", "typeString": "type(contract IERC20)" } }, - "id": 932, + "id": 940, "isConstant": false, "isLValue": false, "isPure": false, @@ -6542,28 +6719,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6032:21:2", + "src": "6066:21:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } }, - "id": 933, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, - "src": "6032:34:2", + "referencedDeclaration": 2067, + "src": "6066:34:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2025_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2025_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2033_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2033_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 936, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -6571,41 +6748,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6032:58:2", + "src": "6066:58:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 937, + "id": 945, "nodeType": "ExpressionStatement", - "src": "6032:58:2" + "src": "6066:58:2" } ] }, - "id": 939, + "id": 947, "nodeType": "IfStatement", - "src": "5405:696:2", + "src": "5439:696:2", "trueBody": { - "id": 920, + "id": 928, "nodeType": "Block", - "src": "5434:516:2", + "src": "5468:516:2", "statements": [ { "assignments": [ - 874 + 882 ], "declarations": [ { "constant": false, - "id": 874, + "id": 882, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 920, - "src": "5448:21:2", + "scope": 928, + "src": "5482:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6613,10 +6790,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 873, + "id": 881, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5448:7:2", + "src": "5482:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6626,21 +6803,21 @@ "visibility": "internal" } ], - "id": 879, + "id": 887, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3731", - "id": 877, + "id": 885, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5487:2:2", + "src": "5521:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -6658,18 +6835,18 @@ ], "expression": { "argumentTypes": null, - "id": 875, + "id": 883, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5472:4:2", + "referencedDeclaration": 824, + "src": "5506:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 876, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, @@ -6677,13 +6854,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "5472:14:2", + "src": "5506:14:2", "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": 878, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, @@ -6691,7 +6868,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5472:18:2", + "src": "5506:18:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6699,22 +6876,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5448:42:2" + "src": "5482:42:2" }, { "assignments": [ - 881 + 889 ], "declarations": [ { "constant": false, - "id": 881, + "id": 889, "mutability": "mutable", "name": "asset_id", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 920, - "src": "5504:16:2", + "scope": 928, + "src": "5538:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6722,10 +6899,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 880, + "id": 888, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5504:7:2", + "src": "5538:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6735,7 +6912,7 @@ "visibility": "internal" } ], - "id": 889, + "id": 897, "initialValue": { "argumentTypes": null, "arguments": [ @@ -6744,12 +6921,12 @@ "arguments": [ { "argumentTypes": null, - "id": 885, + "id": 893, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "5550:11:2", + "referencedDeclaration": 851, + "src": "5584:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6757,12 +6934,12 @@ }, { "argumentTypes": null, - "id": 886, + "id": 894, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "5563:13:2", + "referencedDeclaration": 882, + "src": "5597:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6782,18 +6959,18 @@ ], "expression": { "argumentTypes": null, - "id": 883, + "id": 891, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "5533:3:2", + "src": "5567:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 884, + "id": 892, "isConstant": false, "isLValue": false, "isPure": true, @@ -6801,13 +6978,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5533:16:2", + "src": "5567:16:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 887, + "id": 895, "isConstant": false, "isLValue": false, "isPure": false, @@ -6815,7 +6992,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5533:44:2", + "src": "5567:44:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -6830,18 +7007,18 @@ "typeString": "bytes memory" } ], - "id": 882, + "id": 890, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "5523:9:2", + "src": "5557:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 888, + "id": 896, "isConstant": false, "isLValue": false, "isPure": false, @@ -6849,7 +7026,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5523:55:2", + "src": "5557:55:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6857,22 +7034,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5504:74:2" + "src": "5538:74:2" }, { "assignments": [ - 891 + 899 ], "declarations": [ { "constant": false, - "id": 891, + "id": 899, "mutability": "mutable", "name": "wrapped_asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 920, - "src": "5670:21:2", + "scope": 928, + "src": "5704:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6880,10 +7057,10 @@ "typeString": "address" }, "typeName": { - "id": 890, + "id": 898, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5670:7:2", + "src": "5704:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6894,31 +7071,31 @@ "visibility": "internal" } ], - "id": 895, + "id": 903, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 892, + "id": 900, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "5694:13:2", + "referencedDeclaration": 522, + "src": "5728:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 894, + "id": 902, "indexExpression": { "argumentTypes": null, - "id": 893, + "id": 901, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "5708:8:2", + "referencedDeclaration": 889, + "src": "5742:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6929,14 +7106,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5694:23:2", + "src": "5728:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "5670:47:2" + "src": "5704:47:2" }, { "condition": { @@ -6945,19 +7122,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 901, + "id": 909, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 896, + "id": 904, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "5735:13:2", + "referencedDeclaration": 899, + "src": "5769:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6971,14 +7148,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 899, + "id": 907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5760:1:2", + "src": "5794:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6994,29 +7171,29 @@ "typeString": "int_const 0" } ], - "id": 898, + "id": 906, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5752:7:2", + "src": "5786:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 897, + "id": 905, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5752:7:2", + "src": "5786:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 900, + "id": 908, "isConstant": false, "isLValue": false, "isPure": true, @@ -7024,44 +7201,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5752:10:2", + "src": "5786:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5735:27:2", + "src": "5769:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 911, + "id": 919, "nodeType": "IfStatement", - "src": "5731:138:2", + "src": "5765:138:2", "trueBody": { - "id": 910, + "id": 918, "nodeType": "Block", - "src": "5764:105:2", + "src": "5798:105:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 908, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 902, + "id": 910, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "5782:13:2", + "referencedDeclaration": 899, + "src": "5816:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7074,12 +7251,12 @@ "arguments": [ { "argumentTypes": null, - "id": 904, + "id": 912, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "5817:8:2", + "referencedDeclaration": 889, + "src": "5851:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7087,12 +7264,12 @@ }, { "argumentTypes": null, - "id": 905, + "id": 913, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "5827:11:2", + "referencedDeclaration": 851, + "src": "5861:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7100,12 +7277,12 @@ }, { "argumentTypes": null, - "id": 906, + "id": 914, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "5840:13:2", + "referencedDeclaration": 882, + "src": "5874:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7127,18 +7304,18 @@ "typeString": "bytes32" } ], - "id": 903, + "id": 911, "name": "deployWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5798:18:2", + "referencedDeclaration": 989, + "src": "5832:18:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32) returns (address)" } }, - "id": 907, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -7146,22 +7323,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5798:56:2", + "src": "5832:56:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5782:72:2", + "src": "5816:72:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 909, + "id": 917, "nodeType": "ExpressionStatement", - "src": "5782:72:2" + "src": "5816:72:2" } ] } @@ -7172,12 +7349,12 @@ "arguments": [ { "argumentTypes": null, - "id": 916, + "id": 924, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 834, - "src": "5916:14:2", + "referencedDeclaration": 842, + "src": "5950:14:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7185,12 +7362,12 @@ }, { "argumentTypes": null, - "id": 917, + "id": 925, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 850, - "src": "5932:6:2", + "referencedDeclaration": 858, + "src": "5966:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7213,12 +7390,12 @@ "arguments": [ { "argumentTypes": null, - "id": 913, + "id": 921, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "5896:13:2", + "referencedDeclaration": 899, + "src": "5930:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7232,18 +7409,18 @@ "typeString": "address" } ], - "id": 912, + "id": 920, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "5883:12:2", + "referencedDeclaration": 1736, + "src": "5917:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 914, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -7251,28 +7428,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5883:27:2", + "src": "5917:27:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", + "typeIdentifier": "t_contract$_WrappedAsset_$1736", "typeString": "contract WrappedAsset" } }, - "id": 915, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 1266, - "src": "5883:32:2", + "referencedDeclaration": 1274, + "src": "5917:32:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 918, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, @@ -7280,16 +7457,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5883:56:2", + "src": "5917:56:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 919, + "id": 927, "nodeType": "ExpressionStatement", - "src": "5883:56:2" + "src": "5917:56:2" } ] } @@ -7297,7 +7474,7 @@ ] }, "documentation": null, - "id": 941, + "id": 949, "implemented": true, "kind": "function", "modifiers": [], @@ -7305,18 +7482,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 817, + "id": 825, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 816, + "id": 824, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 941, - "src": "4755:17:2", + "scope": 949, + "src": "4789:17:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7324,10 +7501,10 @@ "typeString": "bytes" }, "typeName": { - "id": 815, + "id": 823, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4755:5:2", + "src": "4789:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7337,40 +7514,40 @@ "visibility": "internal" } ], - "src": "4754:19:2" + "src": "4788:19:2" }, "returnParameters": { - "id": 818, + "id": 826, "nodeType": "ParameterList", "parameters": [], - "src": "4782:0:2" + "src": "4816:0:2" }, - "scope": 1173, - "src": "4734:1411:2", + "scope": 1181, + "src": "4768:1373:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 980, + "id": 988, "nodeType": "Block", - "src": "6266:791:2", + "src": "6262:791:2", "statements": [ { "assignments": [ - 953 + 961 ], "declarations": [ { "constant": false, - "id": 953, + "id": 961, "mutability": "mutable", "name": "targetBytes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 980, - "src": "6444:19:2", + "scope": 988, + "src": "6440:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7378,10 +7555,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 952, + "id": 960, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6444:7:2", + "src": "6440:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -7391,18 +7568,18 @@ "visibility": "internal" } ], - "id": 958, + "id": 966, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 956, + "id": 964, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, - "src": "6474:18:2", + "src": "6470:18:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7416,29 +7593,29 @@ "typeString": "address" } ], - "id": 955, + "id": 963, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6466:7:2", + "src": "6462:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 954, + "id": 962, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6466:7:2", + "src": "6462:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 957, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -7446,7 +7623,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6466:27:2", + "src": "6462:27:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -7454,22 +7631,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6444:49:2" + "src": "6440:49:2" }, { "AST": { "nodeType": "YulBlock", - "src": "6512:341:2", + "src": "6508:341:2", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6526:24:2", + "src": "6522:24:2", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6545:4:2", + "src": "6541:4:2", "type": "", "value": "0x40" } @@ -7477,16 +7654,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "6539:5:2" + "src": "6535:5:2" }, "nodeType": "YulFunctionCall", - "src": "6539:11:2" + "src": "6535:11:2" }, "variables": [ { "name": "clone", "nodeType": "YulTypedName", - "src": "6530:5:2", + "src": "6526:5:2", "type": "" } ] @@ -7497,12 +7674,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6570:5:2" + "src": "6566:5:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6577:66:2", + "src": "6573:66:2", "type": "", "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" } @@ -7510,13 +7687,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6563:6:2" + "src": "6559:6:2" }, "nodeType": "YulFunctionCall", - "src": "6563:81:2" + "src": "6559:81:2" }, "nodeType": "YulExpressionStatement", - "src": "6563:81:2" + "src": "6559:81:2" }, { "expression": { @@ -7526,12 +7703,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6668:5:2" + "src": "6664:5:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6675:4:2", + "src": "6671:4:2", "type": "", "value": "0x14" } @@ -7539,27 +7716,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6664:3:2" + "src": "6660:3:2" }, "nodeType": "YulFunctionCall", - "src": "6664:16:2" + "src": "6660:16:2" }, { "name": "targetBytes", "nodeType": "YulIdentifier", - "src": "6682:11:2" + "src": "6678:11:2" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6657:6:2" + "src": "6653:6:2" }, "nodeType": "YulFunctionCall", - "src": "6657:37:2" + "src": "6653:37:2" }, "nodeType": "YulExpressionStatement", - "src": "6657:37:2" + "src": "6653:37:2" }, { "expression": { @@ -7569,12 +7746,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6718:5:2" + "src": "6714:5:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6725:4:2", + "src": "6721:4:2", "type": "", "value": "0x28" } @@ -7582,15 +7759,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6714:3:2" + "src": "6710:3:2" }, "nodeType": "YulFunctionCall", - "src": "6714:16:2" + "src": "6710:16:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6732:66:2", + "src": "6728:66:2", "type": "", "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" } @@ -7598,35 +7775,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6707:6:2" + "src": "6703:6:2" }, "nodeType": "YulFunctionCall", - "src": "6707:92:2" + "src": "6703:92:2" }, "nodeType": "YulExpressionStatement", - "src": "6707:92:2" + "src": "6703:92:2" }, { "nodeType": "YulAssignment", - "src": "6812:31:2", + "src": "6808:31:2", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6828:1:2", + "src": "6824:1:2", "type": "", "value": "0" }, { "name": "clone", "nodeType": "YulIdentifier", - "src": "6831:5:2" + "src": "6827:5:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6838:4:2", + "src": "6834:4:2", "type": "", "value": "0x37" } @@ -7634,16 +7811,16 @@ "functionName": { "name": "create", "nodeType": "YulIdentifier", - "src": "6821:6:2" + "src": "6817:6:2" }, "nodeType": "YulFunctionCall", - "src": "6821:22:2" + "src": "6817:22:2" }, "variableNames": [ { "name": "asset", "nodeType": "YulIdentifier", - "src": "6812:5:2" + "src": "6808:5:2" } ] } @@ -7652,23 +7829,23 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 950, + "declaration": 958, "isOffset": false, "isSlot": false, - "src": "6812:5:2", + "src": "6808:5:2", "valueSize": 1 }, { - "declaration": 953, + "declaration": 961, "isOffset": false, "isSlot": false, - "src": "6682:11:2", + "src": "6678:11:2", "valueSize": 1 } ], - "id": 959, + "id": 967, "nodeType": "InlineAssembly", - "src": "6503:350:2" + "src": "6499:350:2" }, { "expression": { @@ -7676,12 +7853,12 @@ "arguments": [ { "argumentTypes": null, - "id": 964, + "id": 972, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, - "src": "6922:11:2", + "referencedDeclaration": 953, + "src": "6918:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7689,12 +7866,12 @@ }, { "argumentTypes": null, - "id": 965, + "id": 973, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 947, - "src": "6935:13:2", + "referencedDeclaration": 955, + "src": "6931:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7717,12 +7894,12 @@ "arguments": [ { "argumentTypes": null, - "id": 961, + "id": 969, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "6904:5:2", + "referencedDeclaration": 958, + "src": "6900:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7736,18 +7913,18 @@ "typeString": "address" } ], - "id": 960, + "id": 968, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "6891:12:2", + "referencedDeclaration": 1736, + "src": "6887:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 962, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, @@ -7755,28 +7932,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6891:19:2", + "src": "6887:19:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", + "typeIdentifier": "t_contract$_WrappedAsset_$1736", "typeString": "contract WrappedAsset" } }, - "id": 963, + "id": 971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "initialize", "nodeType": "MemberAccess", - "referencedDeclaration": 1245, - "src": "6891:30:2", + "referencedDeclaration": 1253, + "src": "6887:30:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$returns$__$", "typeString": "function (uint8,bytes32) external" } }, - "id": 966, + "id": 974, "isConstant": false, "isLValue": false, "isPure": false, @@ -7784,21 +7961,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6891:58:2", + "src": "6887:58:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 967, + "id": 975, "nodeType": "ExpressionStatement", - "src": "6891:58:2" + "src": "6887:58:2" }, { "expression": { "argumentTypes": null, - "id": 972, + "id": 980, "isConstant": false, "isLValue": false, "isPure": false, @@ -7807,26 +7984,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 968, + "id": 976, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "6985:13:2", + "referencedDeclaration": 522, + "src": "6981:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 970, + "id": 978, "indexExpression": { "argumentTypes": null, - "id": 969, + "id": 977, "name": "seed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "6999:4:2", + "referencedDeclaration": 951, + "src": "6995:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7837,7 +8014,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6985:19:2", + "src": "6981:19:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7847,31 +8024,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 971, + "id": 979, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "7007:5:2", + "referencedDeclaration": 958, + "src": "7003:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6985:27:2", + "src": "6981:27:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 973, + "id": 981, "nodeType": "ExpressionStatement", - "src": "6985:27:2" + "src": "6981:27:2" }, { "expression": { "argumentTypes": null, - "id": 978, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -7880,26 +8057,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 974, + "id": 982, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 536, - "src": "7022:14:2", + "referencedDeclaration": 526, + "src": "7018:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 976, + "id": 984, "indexExpression": { "argumentTypes": null, - "id": 975, + "id": 983, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "7037:5:2", + "referencedDeclaration": 958, + "src": "7033:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7910,7 +8087,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7022:21:2", + "src": "7018:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7921,14 +8098,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 977, + "id": 985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7046:4:2", + "src": "7042:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7936,20 +8113,20 @@ }, "value": "true" }, - "src": "7022:28:2", + "src": "7018:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 979, + "id": 987, "nodeType": "ExpressionStatement", - "src": "7022:28:2" + "src": "7018:28:2" } ] }, "documentation": null, - "id": 981, + "id": 989, "implemented": true, "kind": "function", "modifiers": [], @@ -7957,18 +8134,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 948, + "id": 956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 943, + "id": 951, "mutability": "mutable", "name": "seed", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 981, - "src": "6179:12:2", + "scope": 989, + "src": "6175:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7976,10 +8153,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 942, + "id": 950, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6179:7:2", + "src": "6175:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7990,13 +8167,13 @@ }, { "constant": false, - "id": 945, + "id": 953, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 981, - "src": "6193:17:2", + "scope": 989, + "src": "6189:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8004,10 +8181,10 @@ "typeString": "uint8" }, "typeName": { - "id": 944, + "id": 952, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6193:5:2", + "src": "6189:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8018,13 +8195,13 @@ }, { "constant": false, - "id": 947, + "id": 955, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 981, - "src": "6212:21:2", + "scope": 989, + "src": "6208:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8032,10 +8209,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 946, + "id": 954, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6212:7:2", + "src": "6208:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8045,21 +8222,21 @@ "visibility": "internal" } ], - "src": "6178:56:2" + "src": "6174:56:2" }, "returnParameters": { - "id": 951, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 950, + "id": 958, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 981, - "src": "6252:13:2", + "scope": 989, + "src": "6248:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8067,10 +8244,10 @@ "typeString": "address" }, "typeName": { - "id": 949, + "id": 957, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6252:7:2", + "src": "6248:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8081,19 +8258,19 @@ "visibility": "internal" } ], - "src": "6251:15:2" + "src": "6247:15:2" }, - "scope": 1173, - "src": "6151:906:2", + "scope": 1181, + "src": "6147:906:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 1107, + "id": 1115, "nodeType": "Block", - "src": "7198:1027:2", + "src": "7194:1027:2", "statements": [ { "expression": { @@ -8105,19 +8282,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 995, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 993, + "id": 1001, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "7216:6:2", + "referencedDeclaration": 993, + "src": "7212:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8128,14 +8305,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 994, + "id": 1002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7226:1:2", + "src": "7222:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8143,7 +8320,7 @@ }, "value": "0" }, - "src": "7216:11:2", + "src": "7212:11:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8152,14 +8329,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 996, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7229:22:2", + "src": "7225:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -8179,7 +8356,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 992, + "id": 1000, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8187,13 +8364,13 @@ -18 ], "referencedDeclaration": -18, - "src": "7208:7:2", + "src": "7204:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 997, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, @@ -8201,31 +8378,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7208:44:2", + "src": "7204:44:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 998, + "id": 1006, "nodeType": "ExpressionStatement", - "src": "7208:44:2" + "src": "7204:44:2" }, { "assignments": [ - 1000 + 1008 ], "declarations": [ { "constant": false, - "id": 1000, + "id": 1008, "mutability": "mutable", "name": "asset_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1107, - "src": "7263:17:2", + "scope": 1115, + "src": "7259:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8233,10 +8410,10 @@ "typeString": "uint8" }, "typeName": { - "id": 999, + "id": 1007, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7263:5:2", + "src": "7259:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8246,37 +8423,37 @@ "visibility": "internal" } ], - "id": 1002, + "id": 1010, "initialValue": { "argumentTypes": null, - "id": 1001, + "id": 1009, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 476, - "src": "7283:8:2", + "src": "7279:8:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "7263:28:2" + "src": "7259:28:2" }, { "assignments": [ - 1004 + 1012 ], "declarations": [ { "constant": false, - "id": 1004, + "id": 1012, "mutability": "mutable", "name": "asset_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1107, - "src": "7301:21:2", + "scope": 1115, + "src": "7297:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8284,10 +8461,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1003, + "id": 1011, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7301:7:2", + "src": "7297:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8297,36 +8474,36 @@ "visibility": "internal" } ], - "id": 1005, + "id": 1013, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "7301:21:2" + "src": "7297:21:2" }, { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1006, + "id": 1014, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 536, - "src": "7336:14:2", + "referencedDeclaration": 526, + "src": "7332:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1008, + "id": 1016, "indexExpression": { "argumentTypes": null, - "id": 1007, + "id": 1015, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7351:5:2", + "referencedDeclaration": 991, + "src": "7347:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8337,31 +8514,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7336:21:2", + "src": "7332:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1089, + "id": 1097, "nodeType": "Block", - "src": "7558:539:2", + "src": "7554:539:2", "statements": [ { "assignments": [ - 1036 + 1044 ], "declarations": [ { "constant": false, - "id": 1036, + "id": 1044, "mutability": "mutable", "name": "balanceBefore", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1089, - "src": "7572:21:2", + "scope": 1097, + "src": "7568:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8369,10 +8546,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1035, + "id": 1043, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7572:7:2", + "src": "7568:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8382,7 +8559,7 @@ "visibility": "internal" } ], - "id": 1046, + "id": 1054, "initialValue": { "argumentTypes": null, "arguments": [ @@ -8391,14 +8568,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1043, + "id": 1051, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "7628:4:2", + "src": "7624:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1173", + "typeIdentifier": "t_contract$_Wormhole_$1181", "typeString": "contract Wormhole" } } @@ -8406,33 +8583,33 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1173", + "typeIdentifier": "t_contract$_Wormhole_$1181", "typeString": "contract Wormhole" } ], - "id": 1042, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7620:7:2", + "src": "7616:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1041, + "id": 1049, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7620:7:2", + "src": "7616:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1044, + "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, @@ -8440,7 +8617,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7620:13:2", + "src": "7616:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -8460,12 +8637,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1038, + "id": 1046, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7603:5:2", + "referencedDeclaration": 991, + "src": "7599:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8479,18 +8656,18 @@ "typeString": "address" } ], - "id": 1037, + "id": 1045, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2025, - "src": "7596:6:2", + "referencedDeclaration": 2033, + "src": "7592:6:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2025_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", "typeString": "type(contract IERC20)" } }, - "id": 1039, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -8498,28 +8675,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7596:13:2", + "src": "7592:13:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } }, - "id": 1040, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1964, - "src": "7596:23:2", + "referencedDeclaration": 1972, + "src": "7592:23:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1045, + "id": 1053, "isConstant": false, "isLValue": false, "isPure": false, @@ -8527,7 +8704,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7596:38:2", + "src": "7592:38:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8535,7 +8712,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7572:62:2" + "src": "7568:62:2" }, { "expression": { @@ -8545,18 +8722,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1051, + "id": 1059, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7679:3:2", + "src": "7675:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1052, + "id": 1060, "isConstant": false, "isLValue": false, "isPure": false, @@ -8564,325 +8741,56 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7679:10:2", + "src": "7675:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1055, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7699:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1173", - "typeString": "contract Wormhole" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Wormhole_$1173", - "typeString": "contract Wormhole" - } - ], - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7691:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1053, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7691:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7691:13:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1057, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "7706:6:2", - "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": 1048, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7655:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1047, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2025, - "src": "7648:6:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2025_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7648:13:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", - "typeString": "contract IERC20" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 2084, - "src": "7648:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2025_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2025_$", - "typeString": "function (contract IERC20,address,address,uint256)" - } - }, - "id": 1058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7648:65:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1059, - "nodeType": "ExpressionStatement", - "src": "7648:65:2" - }, - { - "assignments": [ - 1061 - ], - "declarations": [ - { - "constant": false, - "id": 1061, - "mutability": "mutable", - "name": "balanceAfter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1089, - "src": "7727:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1060, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7727:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1071, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1068, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7782:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1173", - "typeString": "contract Wormhole" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Wormhole_$1173", - "typeString": "contract Wormhole" - } - ], - "id": 1067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7774:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1066, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7774:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7774:13:2", - "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": 1063, - "name": "asset", + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7757:5:2", + "referencedDeclaration": -28, + "src": "7695:4:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeString": "contract Wormhole" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeString": "contract Wormhole" } ], "id": 1062, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2025, - "src": "7750:6:2", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7687:7:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2025_$", - "typeString": "type(contract IERC20)" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7687:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } } }, "id": 1064, @@ -8893,28 +8801,107 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7750:13:2", + "src": "7687:13:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1065, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 993, + "src": "7702:6:2", + "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": 1056, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "7651:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1055, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "7644:6:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7644:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } }, - "id": 1065, + "id": 1058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "balanceOf", + "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 1964, - "src": "7750:23:2", + "referencedDeclaration": 2092, + "src": "7644:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2033_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2033_$", + "typeString": "function (contract IERC20,address,address,uint256)" } }, - "id": 1070, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": false, @@ -8922,7 +8909,197 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7750:38:2", + "src": "7644:65:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1067, + "nodeType": "ExpressionStatement", + "src": "7644:65:2" + }, + { + "assignments": [ + 1069 + ], + "declarations": [ + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "balanceAfter", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1097, + "src": "7723:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7723:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1079, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1076, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7778:4:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeString": "contract Wormhole" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeString": "contract Wormhole" + } + ], + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7770:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1074, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7770:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7770:13:2", + "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": 1071, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "7753:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1070, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "7746:6:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7746:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$2033", + "typeString": "contract IERC20" + } + }, + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1972, + "src": "7746:23:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7746:38:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -8930,24 +9107,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7727:61:2" + "src": "7723:61:2" }, { "expression": { "argumentTypes": null, - "id": 1077, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1072, + "id": 1080, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "7993:6:2", + "referencedDeclaration": 993, + "src": "7989:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8960,12 +9137,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1075, + "id": 1083, "name": "balanceBefore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "8019:13:2", + "referencedDeclaration": 1044, + "src": "8015:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8981,32 +9158,32 @@ ], "expression": { "argumentTypes": null, - "id": 1073, + "id": 1081, "name": "balanceAfter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "8002:12:2", + "referencedDeclaration": 1069, + "src": "7998:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1074, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1797, - "src": "8002:16:2", + "referencedDeclaration": 1805, + "src": "7998: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": 1076, + "id": 1084, "isConstant": false, "isLValue": false, "isPure": false, @@ -9014,39 +9191,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8002:31:2", + "src": "7998:31:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7993:40:2", + "src": "7989:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1078, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "7993:40:2" + "src": "7989:40:2" }, { "expression": { "argumentTypes": null, - "id": 1087, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1079, + "id": 1087, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1004, - "src": "8047:13:2", + "referencedDeclaration": 1012, + "src": "8043:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9062,12 +9239,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1084, + "id": 1092, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "8079:5:2", + "referencedDeclaration": 991, + "src": "8075:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9081,29 +9258,29 @@ "typeString": "address" } ], - "id": 1083, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8071:7:2", + "src": "8067:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1082, + "id": 1090, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8071:7:2", + "src": "8067:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1085, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, @@ -9111,7 +9288,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8071:14:2", + "src": "8067:14:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9126,29 +9303,29 @@ "typeString": "uint256" } ], - "id": 1081, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8063:7:2", + "src": "8059:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1080, + "id": 1088, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8063:7:2", + "src": "8059:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1086, + "id": 1094, "isConstant": false, "isLValue": false, "isPure": false, @@ -9156,32 +9333,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8063:23:2", + "src": "8059:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8047:39:2", + "src": "8043:39:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1088, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "8047:39:2" + "src": "8043:39:2" } ] }, - "id": 1090, + "id": 1098, "nodeType": "IfStatement", - "src": "7332:765:2", + "src": "7328:765:2", "trueBody": { - "id": 1034, + "id": 1042, "nodeType": "Block", - "src": "7359:193:2", + "src": "7355:193:2", "statements": [ { "expression": { @@ -9191,18 +9368,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1021, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7398:3:2", + "src": "7394:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1022, "isConstant": false, "isLValue": false, "isPure": false, @@ -9210,7 +9387,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7398:10:2", + "src": "7394:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9218,12 +9395,12 @@ }, { "argumentTypes": null, - "id": 1015, + "id": 1023, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "7410:6:2", + "referencedDeclaration": 993, + "src": "7406:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9246,12 +9423,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1010, + "id": 1018, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7386:5:2", + "referencedDeclaration": 991, + "src": "7382:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9265,18 +9442,18 @@ "typeString": "address" } ], - "id": 1009, + "id": 1017, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7373:12:2", + "referencedDeclaration": 1736, + "src": "7369:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1011, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -9284,28 +9461,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7373:19:2", + "src": "7369:19:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", + "typeIdentifier": "t_contract$_WrappedAsset_$1736", "typeString": "contract WrappedAsset" } }, - "id": 1012, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "burn", "nodeType": "MemberAccess", - "referencedDeclaration": 1287, - "src": "7373:24:2", + "referencedDeclaration": 1295, + "src": "7369:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 1016, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, @@ -9313,133 +9490,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7373:44:2", + "src": "7369:44:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1017, - "nodeType": "ExpressionStatement", - "src": "7373:44:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1018, - "name": "asset_chain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "7431:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1020, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7458:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1019, - "name": "WrappedAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7445:12:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", - "typeString": "type(contract WrappedAsset)" - } - }, - "id": 1021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7445:19:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", - "typeString": "contract WrappedAsset" - } - }, - "id": 1022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "assetChain", - "nodeType": "MemberAccess", - "referencedDeclaration": 1196, - "src": "7445:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 1023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7445:32:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "7431:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, "id": 1025, "nodeType": "ExpressionStatement", - "src": "7431:46:2" + "src": "7369:44:2" }, { "expression": { @@ -9452,14 +9512,14 @@ "leftHandSide": { "argumentTypes": null, "id": 1026, - "name": "asset_address", + "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1004, - "src": "7491:13:2", + "referencedDeclaration": 1008, + "src": "7427:11:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "nodeType": "Assignment", @@ -9478,8 +9538,8 @@ "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7520:5:2", + "referencedDeclaration": 991, + "src": "7454:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9497,10 +9557,10 @@ "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7507:12:2", + "referencedDeclaration": 1736, + "src": "7441:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", "typeString": "type(contract WrappedAsset)" } }, @@ -9512,10 +9572,10 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7507:19:2", + "src": "7441:19:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", + "typeIdentifier": "t_contract$_WrappedAsset_$1736", "typeString": "contract WrappedAsset" } }, @@ -9524,13 +9584,13 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "assetAddress", + "memberName": "assetChain", "nodeType": "MemberAccess", - "referencedDeclaration": 1198, - "src": "7507:32:2", + "referencedDeclaration": 1204, + "src": "7441:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", - "typeString": "function () view external returns (bytes32)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, "id": 1031, @@ -9541,22 +9601,139 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7507:34:2", + "src": "7441:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7427:46:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1033, + "nodeType": "ExpressionStatement", + "src": "7427:46:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1034, + "name": "asset_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1012, + "src": "7487:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1036, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "7516:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1035, + "name": "WrappedAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "7503:12:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeString": "type(contract WrappedAsset)" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7503:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeString": "contract WrappedAsset" + } + }, + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "assetAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1206, + "src": "7503:32:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", + "typeString": "function () view external returns (bytes32)" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7503:34:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7491:50:2", + "src": "7487:50:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1033, + "id": 1041, "nodeType": "ExpressionStatement", - "src": "7491:50:2" + "src": "7487:50:2" } ] } @@ -9567,12 +9744,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1092, + "id": 1100, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "8128:12:2", + "referencedDeclaration": 997, + "src": "8124:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9580,12 +9757,12 @@ }, { "argumentTypes": null, - "id": 1093, + "id": 1101, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "8142:11:2", + "referencedDeclaration": 1008, + "src": "8138:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9593,25 +9770,12 @@ }, { "argumentTypes": null, - "id": 1094, + "id": 1102, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1004, - "src": "8155:13:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1095, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "8170:9:2", + "referencedDeclaration": 1012, + "src": "8151:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9627,18 +9791,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1100, + "id": 1107, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8197:3:2", + "src": "8182:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1101, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": false, @@ -9646,7 +9810,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8197:10:2", + "src": "8182:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9660,29 +9824,29 @@ "typeString": "address payable" } ], - "id": 1099, + "id": 1106, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8189:7:2", + "src": "8174:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1098, + "id": 1105, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8189:7:2", + "src": "8174:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1102, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, @@ -9690,7 +9854,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8189:19:2", + "src": "8174:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9705,29 +9869,29 @@ "typeString": "uint256" } ], - "id": 1097, + "id": 1104, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8181:7:2", + "src": "8166:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1096, + "id": 1103, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8181:7:2", + "src": "8166:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1103, + "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, @@ -9735,7 +9899,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8181:28:2", + "src": "8166:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -9744,12 +9908,25 @@ }, { "argumentTypes": null, - "id": 1104, + "id": 1111, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 995, + "src": "8196:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1112, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "8211:6:2", + "referencedDeclaration": 993, + "src": "8207:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9783,18 +9960,18 @@ "typeString": "uint256" } ], - "id": 1091, + "id": 1099, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 506, - "src": "8112:15:2", + "src": "8108:15:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256)" } }, - "id": 1105, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, @@ -9802,22 +9979,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8112:106:2", + "src": "8108:106:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1106, + "id": 1114, "nodeType": "EmitStatement", - "src": "8107:111:2" + "src": "8103:111:2" } ] }, "documentation": null, "functionSelector": "e66fd373", - "id": 1108, + "id": 1116, "implemented": true, "kind": "function", "modifiers": [], @@ -9825,18 +10002,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 990, + "id": 998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 983, + "id": 991, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1108, - "src": "7092:13:2", + "scope": 1116, + "src": "7088:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9844,10 +10021,10 @@ "typeString": "address" }, "typeName": { - "id": 982, + "id": 990, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7092:7:2", + "src": "7088:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9859,13 +10036,13 @@ }, { "constant": false, - "id": 985, + "id": 993, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1108, - "src": "7115:14:2", + "scope": 1116, + "src": "7111:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9873,10 +10050,10 @@ "typeString": "uint256" }, "typeName": { - "id": 984, + "id": 992, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7115:7:2", + "src": "7111:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9887,13 +10064,13 @@ }, { "constant": false, - "id": 987, + "id": 995, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1108, - "src": "7139:17:2", + "scope": 1116, + "src": "7135:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9901,10 +10078,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 986, + "id": 994, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7139:7:2", + "src": "7135:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9915,13 +10092,13 @@ }, { "constant": false, - "id": 989, + "id": 997, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1108, - "src": "7166:18:2", + "scope": 1116, + "src": "7162:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9929,10 +10106,10 @@ "typeString": "uint8" }, "typeName": { - "id": 988, + "id": 996, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7166:5:2", + "src": "7162:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9942,25 +10119,25 @@ "visibility": "internal" } ], - "src": "7082:108:2" + "src": "7078:108:2" }, "returnParameters": { - "id": 991, + "id": 999, "nodeType": "ParameterList", "parameters": [], - "src": "7198:0:2" + "src": "7194:0:2" }, - "scope": 1173, - "src": "7063:1162:2", + "scope": 1181, + "src": "7059:1162:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1155, + "id": 1163, "nodeType": "Block", - "src": "8324:323:2", + "src": "8320:323:2", "statements": [ { "expression": { @@ -9972,7 +10149,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1119, + "id": 1127, "isConstant": false, "isLValue": false, "isPure": false, @@ -9981,18 +10158,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1116, + "id": 1124, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8342:3:2", + "src": "8338:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1117, + "id": 1125, "isConstant": false, "isLValue": false, "isPure": false, @@ -10000,7 +10177,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8342:9:2", + "src": "8338:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10011,14 +10188,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1118, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8355:1:2", + "src": "8351:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10026,7 +10203,7 @@ }, "value": "0" }, - "src": "8342:14:2", + "src": "8338:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10035,14 +10212,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 1120, + "id": 1128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8358:22:2", + "src": "8354:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -10062,7 +10239,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 1115, + "id": 1123, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10070,13 +10247,13 @@ -18 ], "referencedDeclaration": -18, - "src": "8334:7:2", + "src": "8330:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1121, + "id": 1129, "isConstant": false, "isLValue": false, "isPure": false, @@ -10084,16 +10261,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8334:47:2", + "src": "8330:47:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1122, + "id": 1130, "nodeType": "ExpressionStatement", - "src": "8334:47:2" + "src": "8330:47:2" }, { "expression": { @@ -10108,12 +10285,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1124, + "id": 1132, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 479, - "src": "8430:11:2", + "src": "8426:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10127,18 +10304,18 @@ "typeString": "address" } ], - "id": 1123, + "id": 1131, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1184, - "src": "8425:4:2", + "referencedDeclaration": 1192, + "src": "8421:4:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WETH_$1184_$", + "typeIdentifier": "t_type$_t_contract$_WETH_$1192_$", "typeString": "type(contract WETH)" } }, - "id": 1125, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": true, @@ -10146,28 +10323,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8425:17:2", + "src": "8421:17:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WETH_$1184", + "typeIdentifier": "t_contract$_WETH_$1192", "typeString": "contract WETH" } }, - "id": 1126, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": 1178, - "src": "8425:25:2", + "referencedDeclaration": 1186, + "src": "8421:25:2", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, - "id": 1129, + "id": 1137, "isConstant": false, "isLValue": false, "isPure": false, @@ -10181,18 +10358,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1127, + "id": 1135, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8459:3:2", + "src": "8455:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1128, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, @@ -10200,20 +10377,20 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8459:9:2", + "src": "8455:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "8425:44:2", + "src": "8421:44:2", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 1130, + "id": 1138, "isConstant": false, "isLValue": false, "isPure": false, @@ -10221,16 +10398,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8425:46:2", + "src": "8421:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1131, + "id": 1139, "nodeType": "ExpressionStatement", - "src": "8425:46:2" + "src": "8421:46:2" }, { "eventCall": { @@ -10238,150 +10415,28 @@ "arguments": [ { "argumentTypes": null, - "id": 1133, + "id": 1141, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "8534:12:2", + "referencedDeclaration": 1120, + "src": "8530:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - { - "argumentTypes": null, - "id": 1134, - "name": "CHAIN_ID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "8548:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1139, - "name": "WETHAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 479, - "src": "8574:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8566:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1137, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8566:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8566:20:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8558:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 1135, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8558:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8558:29:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, { "argumentTypes": null, "id": 1142, - "name": "recipient", + "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "8589:9:2", + "referencedDeclaration": 476, + "src": "8544:8:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, { @@ -10392,39 +10447,23 @@ "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1147, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8616:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8616:10:2", + "id": 1147, + "name": "WETHAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "8570:11:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], "id": 1146, @@ -10433,7 +10472,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8608:7:2", + "src": "8562:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" @@ -10442,22 +10481,22 @@ "id": 1145, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8608:7:2", + "src": "8562:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1149, + "id": 1148, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8608:19:2", + "src": "8562:20:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10478,7 +10517,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8600:7:2", + "src": "8554:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" @@ -10487,14 +10526,139 @@ "id": 1143, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8600:7:2", + "src": "8554:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1150, + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8554:29:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1154, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8601:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8601:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8593:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8593:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8593:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8585:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1150, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8585:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": false, @@ -10502,29 +10666,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8600:28:2", + "src": "8585:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, + { + "argumentTypes": null, + "id": 1158, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "8615:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1151, + "id": 1159, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8630:3:2", + "src": "8626:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1152, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -10532,7 +10709,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8630:9:2", + "src": "8626:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10566,172 +10743,17 @@ "typeString": "uint256" } ], - "id": 1132, + "id": 1140, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 506, - "src": "8518:15:2", + "src": "8514:15:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256)" } }, - "id": 1153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8518:122:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1154, - "nodeType": "EmitStatement", - "src": "8513:127:2" - } - ] - }, - "documentation": null, - "functionSelector": "780e2183", - "id": 1156, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "lockETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1113, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1110, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1156, - "src": "8257:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1109, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8257:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1112, - "mutability": "mutable", - "name": "target_chain", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1156, - "src": "8284:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1111, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "8284:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8247:61:2" - }, - "returnParameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [], - "src": "8324:0:2" - }, - "scope": 1173, - "src": "8231:416:2", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1163, - "nodeType": "Block", - "src": "8678:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1160, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8686:46:2", - "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": 1159, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -19, - -19 - ], - "referencedDeclaration": -19, - "src": "8679:6:2", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, "id": 1161, "isConstant": false, "isLValue": false, @@ -10740,7 +10762,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8679:54:2", + "src": "8514:122:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -10748,42 +10770,100 @@ } }, "id": 1162, - "nodeType": "ExpressionStatement", - "src": "8679:54:2" + "nodeType": "EmitStatement", + "src": "8509:127:2" } ] }, "documentation": null, + "functionSelector": "780e2183", "id": 1164, "implemented": true, - "kind": "fallback", + "kind": "function", "modifiers": [], - "name": "", + "name": "lockETH", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1157, + "id": 1121, "nodeType": "ParameterList", - "parameters": [], - "src": "8658:2:2" + "parameters": [ + { + "constant": false, + "id": 1118, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1164, + "src": "8253:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8253:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "target_chain", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1164, + "src": "8280:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1119, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8280:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8243:61:2" }, "returnParameters": { - "id": 1158, + "id": 1122, "nodeType": "ParameterList", "parameters": [], - "src": "8678:0:2" + "src": "8320:0:2" }, - "scope": 1173, - "src": "8650:85:2", + "scope": 1181, + "src": "8227:416:2", "stateMutability": "payable", "virtual": false, - "visibility": "external" + "visibility": "public" }, { "body": { "id": 1171, "nodeType": "Block", - "src": "8763:57:2", + "src": "8674:57:2", "statements": [ { "expression": { @@ -10799,7 +10879,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8771:46:2", + "src": "8682:46:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -10823,7 +10903,7 @@ -19 ], "referencedDeclaration": -19, - "src": "8764:6:2", + "src": "8675:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" @@ -10837,7 +10917,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8764:54:2", + "src": "8675:54:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -10846,14 +10926,14 @@ }, "id": 1170, "nodeType": "ExpressionStatement", - "src": "8764:54:2" + "src": "8675:54:2" } ] }, "documentation": null, "id": 1172, "implemented": true, - "kind": "receive", + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", @@ -10862,23 +10942,120 @@ "id": 1165, "nodeType": "ParameterList", "parameters": [], - "src": "8743:2:2" + "src": "8654:2:2" }, "returnParameters": { "id": 1166, "nodeType": "ParameterList", "parameters": [], - "src": "8763:0:2" + "src": "8674:0:2" }, - "scope": 1173, - "src": "8736:84:2", + "scope": 1181, + "src": "8646:85:2", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1179, + "nodeType": "Block", + "src": "8759:57:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8767:46:2", + "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": 1175, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "8760:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8760:54:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1178, + "nodeType": "ExpressionStatement", + "src": "8760:54:2" + } + ] + }, + "documentation": null, + "id": 1180, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1173, + "nodeType": "ParameterList", + "parameters": [], + "src": "8739:2:2" + }, + "returnParameters": { + "id": 1174, + "nodeType": "ParameterList", + "parameters": [], + "src": "8759:0:2" + }, + "scope": 1181, + "src": "8732:84:2", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 1185, - "src": "380:8442:2" + "scope": 1193, + "src": "380:8438:2" }, { "abstract": false, @@ -10887,31 +11064,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1174, + "id": 1182, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2025, - "src": "8843:6:2", + "referencedDeclaration": 2033, + "src": "8839:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } }, - "id": 1175, + "id": 1183, "nodeType": "InheritanceSpecifier", - "src": "8843:6:2" + "src": "8839:6:2" } ], "contractDependencies": [ - 2025 + 2033 ], "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 1184, + "id": 1192, "linearizedBaseContracts": [ - 1184, - 2025 + 1192, + 2033 ], "name": "WETH", "nodeType": "ContractDefinition", @@ -10920,7 +11097,7 @@ "body": null, "documentation": null, "functionSelector": "d0e30db0", - "id": 1178, + "id": 1186, "implemented": false, "kind": "function", "modifiers": [], @@ -10928,19 +11105,19 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1176, + "id": 1184, "nodeType": "ParameterList", "parameters": [], - "src": "8868:2:2" + "src": "8864:2:2" }, "returnParameters": { - "id": 1177, + "id": 1185, "nodeType": "ParameterList", "parameters": [], - "src": "8887:0:2" + "src": "8883:0:2" }, - "scope": 1184, - "src": "8852:36:2", + "scope": 1192, + "src": "8848:36:2", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -10949,7 +11126,7 @@ "body": null, "documentation": null, "functionSelector": "2e1a7d4d", - "id": 1183, + "id": 1191, "implemented": false, "kind": "function", "modifiers": [], @@ -10957,18 +11134,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1181, + "id": 1189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1180, + "id": 1188, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1183, - "src": "8908:14:2", + "scope": 1191, + "src": "8904:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10976,10 +11153,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1179, + "id": 1187, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8908:7:2", + "src": "8904:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10989,38 +11166,38 @@ "visibility": "internal" } ], - "src": "8907:16:2" + "src": "8903:16:2" }, "returnParameters": { - "id": 1182, + "id": 1190, "nodeType": "ParameterList", "parameters": [], - "src": "8932:0:2" + "src": "8928:0:2" }, - "scope": 1184, - "src": "8890:43:2", + "scope": 1192, + "src": "8886:43:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1185, - "src": "8825:110:2" + "scope": 1193, + "src": "8821:110:2" } ], - "src": "64:8872:2" + "src": "64:8868:2" }, "legacyAST": { "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol", "exportedSymbols": { "WETH": [ - 1184 + 1192 ], "Wormhole": [ - 1173 + 1181 ] }, - "id": 1185, + "id": 1193, "license": "Apache 2", "nodeType": "SourceUnit", "nodes": [ @@ -11049,8 +11226,8 @@ "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "id": 457, "nodeType": "ImportDirective", - "scope": 1185, - "sourceUnit": 2026, + "scope": 1193, + "sourceUnit": 2034, "src": "123:56:2", "symbolAliases": [], "unitAlias": "" @@ -11060,8 +11237,8 @@ "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol", "id": 458, "nodeType": "ImportDirective", - "scope": 1185, - "sourceUnit": 2239, + "scope": 1193, + "sourceUnit": 2247, "src": "180:59:2", "symbolAliases": [], "unitAlias": "" @@ -11071,8 +11248,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 459, "nodeType": "ImportDirective", - "scope": 1185, - "sourceUnit": 1948, + "scope": 1193, + "sourceUnit": 1956, "src": "240:51:2", "symbolAliases": [], "unitAlias": "" @@ -11082,7 +11259,7 @@ "file": "./BytesLib.sol", "id": 460, "nodeType": "ImportDirective", - "scope": 1185, + "scope": 1193, "sourceUnit": 334, "src": "292:24:2", "symbolAliases": [], @@ -11093,7 +11270,7 @@ "file": "./SchnorrSECP256K1.sol", "id": 461, "nodeType": "ImportDirective", - "scope": 1185, + "scope": 1193, "sourceUnit": 454, "src": "317:32:2", "symbolAliases": [], @@ -11104,8 +11281,8 @@ "file": "./WrappedAsset.sol", "id": 462, "nodeType": "ImportDirective", - "scope": 1185, - "sourceUnit": 1729, + "scope": 1193, + "sourceUnit": 1737, "src": "350:28:2", "symbolAliases": [], "unitAlias": "" @@ -11117,9 +11294,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1173, + "id": 1181, "linearizedBaseContracts": [ - 1173 + 1181 ], "name": "Wormhole", "nodeType": "ContractDefinition", @@ -11131,10 +11308,10 @@ "id": 463, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2238, + "referencedDeclaration": 2246, "src": "410:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$2238", + "typeIdentifier": "t_contract$_SafeERC20_$2246", "typeString": "library SafeERC20" } }, @@ -11145,10 +11322,10 @@ "id": 464, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2025, + "referencedDeclaration": 2033, "src": "424:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } } @@ -11187,10 +11364,10 @@ "id": 469, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1947, + "referencedDeclaration": 1955, "src": "472:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1947", + "typeIdentifier": "t_contract$_SafeMath_$1955", "typeString": "library SafeMath" } }, @@ -11215,7 +11392,7 @@ "name": "wrappedAssetMaster", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, + "scope": 1181, "src": "544:33:2", "stateVariable": true, "storageLocation": "default", @@ -11244,7 +11421,7 @@ "name": "CHAIN_ID", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, + "scope": 1181, "src": "612:18:2", "stateVariable": true, "storageLocation": "default", @@ -11289,7 +11466,7 @@ "name": "WETHAddress", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, + "scope": 1181, "src": "682:73:2", "stateVariable": true, "storageLocation": "default", @@ -11419,7 +11596,7 @@ ], "name": "GuardianSet", "nodeType": "StructDefinition", - "scope": 1173, + "scope": 1181, "src": "762:99:2", "visibility": "public" }, @@ -11689,148 +11866,16 @@ }, "src": "989:197:2" }, - { - "anonymous": false, - "documentation": null, - "id": 516, - "name": "LogTokensUnlocked", - "nodeType": "EventDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 508, - "indexed": true, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 516, - "src": "1225:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1225:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 510, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 516, - "src": "1256:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 509, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1256:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 512, - "indexed": false, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 516, - "src": "1288:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 511, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1288:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 514, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 516, - "src": "1315:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 513, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1315:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1215:120:2" - }, - "src": "1192:144:2" - }, { "constant": false, - "id": 520, + "functionSelector": "42b0aefa", + "id": 510, "mutability": "mutable", "name": "guardian_sets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1395:53:2", + "scope": 1181, + "src": "1245:51:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11838,30 +11883,30 @@ "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "typeName": { - "id": 519, + "id": 509, "keyType": { - "id": 517, + "id": 507, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1403:6:2", + "src": "1253:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Mapping", - "src": "1395:30:2", + "src": "1245:30:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "valueType": { "contractScope": null, - "id": 518, + "id": 508, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 486, - "src": "1413:11:2", + "src": "1263:11:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", "typeString": "struct Wormhole.GuardianSet" @@ -11869,18 +11914,18 @@ } }, "value": null, - "visibility": "private" + "visibility": "public" }, { "constant": false, "functionSelector": "822d82b3", - "id": 522, + "id": 512, "mutability": "mutable", "name": "guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1489:32:2", + "scope": 1181, + "src": "1337:32:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11888,10 +11933,10 @@ "typeString": "uint32" }, "typeName": { - "id": 521, + "id": 511, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1489:6:2", + "src": "1337:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11903,13 +11948,13 @@ { "constant": false, "functionSelector": "7f04d9e6", - "id": 524, + "id": 514, "mutability": "mutable", "name": "vaa_expiry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1579:24:2", + "scope": 1181, + "src": "1427:24:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11917,10 +11962,10 @@ "typeString": "uint32" }, "typeName": { - "id": 523, + "id": 513, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1579:6:2", + "src": "1427:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11931,13 +11976,13 @@ }, { "constant": false, - "id": 528, + "id": 518, "mutability": "mutable", "name": "consumedVAAs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1649:37:2", + "scope": 1181, + "src": "1497:37:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11945,28 +11990,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 527, + "id": 517, "keyType": { - "id": 525, + "id": 515, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1657:7:2", + "src": "1505:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1649:24:2", + "src": "1497:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 526, + "id": 516, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1668:4:2", + "src": "1516:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11978,13 +12023,14 @@ }, { "constant": false, - "id": 532, + "functionSelector": "b6694c2a", + "id": 522, "mutability": "mutable", "name": "wrappedAssets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1741:41:2", + "scope": 1181, + "src": "1589:48:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11992,28 +12038,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 531, + "id": 521, "keyType": { - "id": 529, + "id": 519, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1749:7:2", + "src": "1597:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1741:27:2", + "src": "1589:27:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 530, + "id": 520, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1760:7:2", + "src": "1608:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12022,17 +12068,18 @@ } }, "value": null, - "visibility": "internal" + "visibility": "public" }, { "constant": false, - "id": 536, + "functionSelector": "1a2be4da", + "id": 526, "mutability": "mutable", "name": "isWrappedAsset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1173, - "src": "1788:39:2", + "scope": 1181, + "src": "1643:46:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -12040,28 +12087,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 535, + "id": 525, "keyType": { - "id": 533, + "id": 523, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1796:7:2", + "src": "1651:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1788:24:2", + "src": "1643:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 534, + "id": 524, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1807:4:2", + "src": "1662:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12069,18 +12116,18 @@ } }, "value": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 557, + "id": 553, "nodeType": "Block", - "src": "1924:183:2", + "src": "1806:217:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 547, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -12089,29 +12136,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 543, + "id": 535, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "1934:13:2", + "referencedDeclaration": 510, + "src": "1816:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 545, + "id": 537, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 544, + "id": 536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1948:1:2", + "src": "1830:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12124,7 +12171,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1934:16:2", + "src": "1816:16:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" @@ -12134,26 +12181,123 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 546, + "id": 538, "name": "initial_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 538, - "src": "1953:20:2", + "referencedDeclaration": 528, + "src": "1835:20:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "1934:39:2", + "src": "1816:39:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, + "id": 540, + "nodeType": "ExpressionStatement", + "src": "1816:39:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 541, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "1908:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1929:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1908:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 544, + "nodeType": "ExpressionStatement", + "src": "1908:22:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 545, + "name": "vaa_expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "1940:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 546, + "name": "_vaa_expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 532, + "src": "1953:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1940:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, "id": 548, "nodeType": "ExpressionStatement", - "src": "1934:39:2" + "src": "1940:24:2" }, { "expression": { @@ -12166,62 +12310,11 @@ "leftHandSide": { "argumentTypes": null, "id": 549, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "2026:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2047:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2026:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 552, - "nodeType": "ExpressionStatement", - "src": "2026:22:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 553, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, - "src": "2059:18:2", + "src": "1975:18:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12231,31 +12324,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 554, + "id": 550, "name": "wrapped_asset_master", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 540, - "src": "2080:20:2", + "referencedDeclaration": 530, + "src": "1996:20:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2059:41:2", + "src": "1975:41:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 556, + "id": 552, "nodeType": "ExpressionStatement", - "src": "2059:41:2" + "src": "1975:41:2" } ] }, "documentation": null, - "id": 558, + "id": 554, "implemented": true, "kind": "constructor", "modifiers": [], @@ -12263,18 +12356,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 541, + "id": 533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 538, + "id": 528, "mutability": "mutable", "name": "initial_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 558, - "src": "1846:39:2", + "scope": 554, + "src": "1708:39:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12283,11 +12376,11 @@ }, "typeName": { "contractScope": null, - "id": 537, + "id": 527, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 486, - "src": "1846:11:2", + "src": "1708:11:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", "typeString": "struct Wormhole.GuardianSet" @@ -12298,13 +12391,13 @@ }, { "constant": false, - "id": 540, + "id": 530, "mutability": "mutable", "name": "wrapped_asset_master", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 558, - "src": "1887:28:2", + "scope": 554, + "src": "1749:28:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12312,10 +12405,10 @@ "typeString": "address" }, "typeName": { - "id": 539, + "id": 529, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1887:7:2", + "src": "1749:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12324,42 +12417,70 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 532, + "mutability": "mutable", + "name": "_vaa_expiry", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 554, + "src": "1779:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 531, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1779:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1845:71:2" + "src": "1707:91:2" }, "returnParameters": { - "id": 542, + "id": 534, "nodeType": "ParameterList", "parameters": [], - "src": "1924:0:2" + "src": "1806:0:2" }, - "scope": 1173, - "src": "1834:273:2", + "scope": 1181, + "src": "1696:327:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 724, + "id": 727, "nodeType": "Block", - "src": "2173:1663:2", + "src": "2089:1737:2", "statements": [ { "assignments": [ - 564 + 560 ], "declarations": [ { "constant": false, - "id": 564, + "id": 560, "mutability": "mutable", "name": "version", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2183:13:2", + "scope": 727, + "src": "2099:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12367,10 +12488,10 @@ "typeString": "uint8" }, "typeName": { - "id": 563, + "id": 559, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2183:5:2", + "src": "2099:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12380,21 +12501,21 @@ "visibility": "internal" } ], - "id": 569, + "id": 565, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 567, + "id": 563, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2211:1:2", + "src": "2127:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12412,18 +12533,18 @@ ], "expression": { "argumentTypes": null, - "id": 565, + "id": 561, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2199:3:2", + "referencedDeclaration": 556, + "src": "2115:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 566, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, @@ -12431,13 +12552,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "2199:11:2", + "src": "2115:11:2", "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": 568, + "id": 564, "isConstant": false, "isLValue": false, "isPure": false, @@ -12445,7 +12566,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2199:14:2", + "src": "2115:14:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -12453,7 +12574,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2183:30:2" + "src": "2099:30:2" }, { "expression": { @@ -12465,19 +12586,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 573, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 571, + "id": 567, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 564, - "src": "2231:7:2", + "referencedDeclaration": 560, + "src": "2147:7:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12488,14 +12609,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 572, + "id": 568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2242:1:2", + "src": "2158:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12503,7 +12624,7 @@ }, "value": "1" }, - "src": "2231:12:2", + "src": "2147:12:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12512,14 +12633,14 @@ { "argumentTypes": null, "hexValue": "5641412076657273696f6e20696e636f6d70617469626c65", - "id": 574, + "id": 570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2245:26:2", + "src": "2161:26:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a", @@ -12539,7 +12660,7 @@ "typeString": "literal_string \"VAA version incompatible\"" } ], - "id": 570, + "id": 566, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12547,13 +12668,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2223:7:2", + "src": "2139:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 575, + "id": 571, "isConstant": false, "isLValue": false, "isPure": false, @@ -12561,31 +12682,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2223:49:2", + "src": "2139:49:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 576, + "id": 572, "nodeType": "ExpressionStatement", - "src": "2223:49:2" + "src": "2139:49:2" }, { "assignments": [ - 578 + 574 ], "declarations": [ { "constant": false, - "id": 578, + "id": 574, "mutability": "mutable", "name": "vaa_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2329:29:2", + "scope": 727, + "src": "2245:29:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12593,10 +12714,10 @@ "typeString": "uint32" }, "typeName": { - "id": 577, + "id": 573, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2329:6:2", + "src": "2245:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12606,21 +12727,21 @@ "visibility": "internal" } ], - "id": 583, + "id": 579, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "31", - "id": 581, + "id": 577, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2374:1:2", + "src": "2290:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12638,18 +12759,18 @@ ], "expression": { "argumentTypes": null, - "id": 579, + "id": 575, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2361:3:2", + "referencedDeclaration": 556, + "src": "2277:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 580, + "id": 576, "isConstant": false, "isLValue": false, "isPure": false, @@ -12657,13 +12778,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2361:12:2", + "src": "2277:12:2", "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": 582, + "id": 578, "isConstant": false, "isLValue": false, "isPure": false, @@ -12671,7 +12792,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2361:15:2", + "src": "2277:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -12679,22 +12800,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2329:47:2" + "src": "2245:47:2" }, { "assignments": [ - 585 + 581 ], "declarations": [ { "constant": false, - "id": 585, + "id": 581, "mutability": "mutable", "name": "signature", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2387:17:2", + "scope": 727, + "src": "2303:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12702,10 +12823,10 @@ "typeString": "uint256" }, "typeName": { - "id": 584, + "id": 580, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2387:7:2", + "src": "2303:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12715,21 +12836,21 @@ "visibility": "internal" } ], - "id": 590, + "id": 586, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 588, + "id": 584, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2421:1:2", + "src": "2337:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -12747,18 +12868,18 @@ ], "expression": { "argumentTypes": null, - "id": 586, + "id": 582, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2407:3:2", + "referencedDeclaration": 556, + "src": "2323:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 587, + "id": 583, "isConstant": false, "isLValue": false, "isPure": false, @@ -12766,13 +12887,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "2407:13:2", + "src": "2323:13:2", "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": 589, + "id": 585, "isConstant": false, "isLValue": false, "isPure": false, @@ -12780,7 +12901,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2407:16:2", + "src": "2323:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12788,22 +12909,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2387:36:2" + "src": "2303:36:2" }, { "assignments": [ - 592 + 588 ], "declarations": [ { "constant": false, - "id": 592, + "id": 588, "mutability": "mutable", "name": "sig_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2433:19:2", + "scope": 727, + "src": "2349:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12811,10 +12932,10 @@ "typeString": "address" }, "typeName": { - "id": 591, + "id": 587, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2433:7:2", + "src": "2349:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12825,21 +12946,21 @@ "visibility": "internal" } ], - "id": 597, + "id": 593, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3337", - "id": 595, + "id": 591, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2469:2:2", + "src": "2385:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_37_by_1", @@ -12857,18 +12978,18 @@ ], "expression": { "argumentTypes": null, - "id": 593, + "id": 589, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2455:3:2", + "referencedDeclaration": 556, + "src": "2371:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 594, + "id": 590, "isConstant": false, "isLValue": false, "isPure": false, @@ -12876,13 +12997,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "2455:13:2", + "src": "2371:13:2", "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": 596, + "id": 592, "isConstant": false, "isLValue": false, "isPure": false, @@ -12890,7 +13011,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2455:17:2", + "src": "2371:17:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -12898,22 +13019,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2433:39:2" + "src": "2349:39:2" }, { "assignments": [ - 599 + 595 ], "declarations": [ { "constant": false, - "id": 599, + "id": 595, "mutability": "mutable", "name": "timestamp", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2530:16:2", + "scope": 727, + "src": "2446:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12921,10 +13042,10 @@ "typeString": "uint32" }, "typeName": { - "id": 598, + "id": 594, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2530:6:2", + "src": "2446:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12934,21 +13055,21 @@ "visibility": "internal" } ], - "id": 604, + "id": 600, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3537", - "id": 602, + "id": 598, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2562:2:2", + "src": "2478:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57_by_1", @@ -12966,18 +13087,18 @@ ], "expression": { "argumentTypes": null, - "id": 600, + "id": 596, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2549:3:2", + "referencedDeclaration": 556, + "src": "2465:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 601, + "id": 597, "isConstant": false, "isLValue": false, "isPure": false, @@ -12985,13 +13106,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2549:12:2", + "src": "2465:12:2", "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": 603, + "id": 599, "isConstant": false, "isLValue": false, "isPure": false, @@ -12999,7 +13120,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2549:16:2", + "src": "2465:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -13007,7 +13128,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2530:35:2" + "src": "2446:35:2" }, { "expression": { @@ -13019,7 +13140,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 611, + "id": 607, "isConstant": false, "isLValue": false, "isPure": false, @@ -13030,19 +13151,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 608, + "id": 604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 606, + "id": 602, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "2684:9:2", + "referencedDeclaration": 595, + "src": "2546:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13052,41 +13173,41 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 607, + "id": 603, "name": "vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "2696:10:2", + "referencedDeclaration": 514, + "src": "2558:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "2684:22:2", + "src": "2546:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", - "operator": "<", + "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 609, + "id": 605, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2709:5:2", + "src": "2571:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 610, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, @@ -13094,13 +13215,13 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2709:15:2", + "src": "2571:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2684:40:2", + "src": "2546:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13109,14 +13230,14 @@ { "argumentTypes": null, "hexValue": "564141206861732065787069726564", - "id": 612, + "id": 608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2726:17:2", + "src": "2588:17:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_716b6a367d262f21a121968c96e61557fe9c6281596966426b955d4c8c65cb86", @@ -13136,7 +13257,7 @@ "typeString": "literal_string \"VAA has expired\"" } ], - "id": 605, + "id": 601, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13144,13 +13265,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2676:7:2", + "src": "2538:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 613, + "id": 609, "isConstant": false, "isLValue": false, "isPure": false, @@ -13158,31 +13279,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2676:68:2", + "src": "2538:68:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 614, + "id": 610, "nodeType": "ExpressionStatement", - "src": "2676:68:2" + "src": "2538:68:2" }, { "assignments": [ - 616 + 612 ], "declarations": [ { "constant": false, - "id": 616, + "id": 612, "mutability": "mutable", "name": "hash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2780:12:2", + "scope": 727, + "src": "2642:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13190,10 +13311,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 615, + "id": 611, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2780:7:2", + "src": "2642:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13203,7 +13324,7 @@ "visibility": "internal" } ], - "id": 627, + "id": 623, "initialValue": { "argumentTypes": null, "arguments": [ @@ -13213,14 +13334,14 @@ { "argumentTypes": null, "hexValue": "3537", - "id": 620, + "id": 616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2815:2:2", + "src": "2677:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57_by_1", @@ -13234,7 +13355,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 624, + "id": 620, "isConstant": false, "isLValue": false, "isPure": false, @@ -13243,18 +13364,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 621, + "id": 617, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2819:3:2", + "referencedDeclaration": 556, + "src": "2681:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 622, + "id": 618, "isConstant": false, "isLValue": false, "isPure": false, @@ -13262,7 +13383,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2819:10:2", + "src": "2681:10:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13273,14 +13394,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3537", - "id": 623, + "id": 619, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2832:2:2", + "src": "2694:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_57_by_1", @@ -13288,7 +13409,7 @@ }, "value": "57" }, - "src": "2819:15:2", + "src": "2681:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13308,18 +13429,18 @@ ], "expression": { "argumentTypes": null, - "id": 618, + "id": 614, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2805:3:2", + "referencedDeclaration": 556, + "src": "2667:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 619, + "id": 615, "isConstant": false, "isLValue": false, "isPure": false, @@ -13327,13 +13448,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "2805:9:2", + "src": "2667:9:2", "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": 625, + "id": 621, "isConstant": false, "isLValue": false, "isPure": false, @@ -13341,7 +13462,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2805:30:2", + "src": "2667:30:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -13356,18 +13477,18 @@ "typeString": "bytes memory" } ], - "id": 617, + "id": 613, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "2795:9:2", + "src": "2657:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 626, + "id": 622, "isConstant": false, "isLValue": false, "isPure": false, @@ -13375,7 +13496,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2795:41:2", + "src": "2657:41:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -13383,7 +13504,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2780:56:2" + "src": "2642:56:2" }, { "expression": { @@ -13391,7 +13512,7 @@ "arguments": [ { "argumentTypes": null, - "id": 632, + "id": 628, "isConstant": false, "isLValue": false, "isPure": false, @@ -13399,31 +13520,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2854:19:2", + "src": "2716:19:2", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 629, + "id": 625, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "2855:12:2", + "referencedDeclaration": 518, + "src": "2717:12:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 631, + "id": 627, "indexExpression": { "argumentTypes": null, - "id": 630, + "id": 626, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "2868:4:2", + "referencedDeclaration": 612, + "src": "2730:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13434,7 +13555,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2855:18:2", + "src": "2717:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13448,14 +13569,14 @@ { "argumentTypes": null, "hexValue": "5641412077617320616c7265616479206578656375746564", - "id": 633, + "id": 629, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2875:26:2", + "src": "2737:26:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028", @@ -13475,7 +13596,7 @@ "typeString": "literal_string \"VAA was already executed\"" } ], - "id": 628, + "id": 624, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13483,13 +13604,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2846:7:2", + "src": "2708:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 634, + "id": 630, "isConstant": false, "isLValue": false, "isPure": false, @@ -13497,31 +13618,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2846:56:2", + "src": "2708:56:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 635, + "id": 631, "nodeType": "ExpressionStatement", - "src": "2846:56:2" + "src": "2708:56:2" }, { "assignments": [ - 637 + 633 ], "declarations": [ { "constant": false, - "id": 637, + "id": 633, "mutability": "mutable", "name": "guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "2913:31:2", + "scope": 727, + "src": "2775:31:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -13530,11 +13651,11 @@ }, "typeName": { "contractScope": null, - "id": 636, + "id": 632, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 486, - "src": "2913:11:2", + "src": "2775:11:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", "typeString": "struct Wormhole.GuardianSet" @@ -13544,31 +13665,31 @@ "visibility": "internal" } ], - "id": 641, + "id": 637, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 638, + "id": 634, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "2947:13:2", + "referencedDeclaration": 510, + "src": "2809:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 640, + "id": 636, "indexExpression": { "argumentTypes": null, - "id": 639, + "id": 635, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 578, - "src": "2961:22:2", + "referencedDeclaration": 574, + "src": "2823:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13579,14 +13700,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2947:37:2", + "src": "2809:37:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2913:71:2" + "src": "2775:71:2" }, { "expression": { @@ -13598,7 +13719,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 652, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -13609,7 +13730,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 646, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, @@ -13618,18 +13739,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 643, + "id": 639, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3002:12:2", + "referencedDeclaration": 633, + "src": "2864:12:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 644, + "id": 640, "isConstant": false, "isLValue": true, "isPure": false, @@ -13637,7 +13758,7 @@ "memberName": "expiration_time", "nodeType": "MemberAccess", "referencedDeclaration": 485, - "src": "3002:28:2", + "src": "2864:28:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13648,14 +13769,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 645, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3034:1:2", + "src": "2896:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13663,7 +13784,7 @@ }, "value": "0" }, - "src": "3002:33:2", + "src": "2864:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13677,7 +13798,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 651, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, @@ -13686,18 +13807,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 647, + "id": 643, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3039:12:2", + "referencedDeclaration": 633, + "src": "2901:12:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 648, + "id": 644, "isConstant": false, "isLValue": true, "isPure": false, @@ -13705,7 +13826,7 @@ "memberName": "expiration_time", "nodeType": "MemberAccess", "referencedDeclaration": 485, - "src": "3039:28:2", + "src": "2901:28:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13717,18 +13838,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 649, + "id": 645, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "3070:5:2", + "src": "2932:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 650, + "id": 646, "isConstant": false, "isLValue": false, "isPure": false, @@ -13736,19 +13857,19 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3070:15:2", + "src": "2932:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3039:46:2", + "src": "2901:46:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3002:83:2", + "src": "2864:83:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13757,14 +13878,14 @@ { "argumentTypes": null, "hexValue": "677561726469616e20736574206861732065787069726564", - "id": 653, + "id": 649, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3087:26:2", + "src": "2949:26:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1", @@ -13784,7 +13905,7 @@ "typeString": "literal_string \"guardian set has expired\"" } ], - "id": 642, + "id": 638, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13792,13 +13913,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2994:7:2", + "src": "2856:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 654, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, @@ -13806,16 +13927,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2994:120:2", + "src": "2856:120:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 655, + "id": 651, "nodeType": "ExpressionStatement", - "src": "2994:120:2" + "src": "2856:120:2" }, { "expression": { @@ -13828,18 +13949,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 659, + "id": 655, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3186:12:2", + "referencedDeclaration": 633, + "src": "3048:12:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 660, + "id": 656, "isConstant": false, "isLValue": true, "isPure": false, @@ -13847,7 +13968,7 @@ "memberName": "x", "nodeType": "MemberAccess", "referencedDeclaration": 481, - "src": "3186:14:2", + "src": "3048:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13857,18 +13978,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 661, + "id": 657, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "3218:12:2", + "referencedDeclaration": 633, + "src": "3080:12:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 662, + "id": 658, "isConstant": false, "isLValue": true, "isPure": false, @@ -13876,7 +13997,7 @@ "memberName": "parity", "nodeType": "MemberAccess", "referencedDeclaration": 483, - "src": "3218:19:2", + "src": "3080:19:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13884,12 +14005,12 @@ }, { "argumentTypes": null, - "id": 663, + "id": 659, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "3255:9:2", + "referencedDeclaration": 581, + "src": "3117:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13900,12 +14021,12 @@ "arguments": [ { "argumentTypes": null, - "id": 666, + "id": 662, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "3290:4:2", + "referencedDeclaration": 612, + "src": "3152:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13919,29 +14040,29 @@ "typeString": "bytes32" } ], - "id": 665, + "id": 661, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3282:7:2", + "src": "3144:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 664, + "id": 660, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3282:7:2", + "src": "3144:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 667, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -13949,7 +14070,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3282:13:2", + "src": "3144:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13958,12 +14079,12 @@ }, { "argumentTypes": null, - "id": 668, + "id": 664, "name": "sig_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "3313:11:2", + "referencedDeclaration": 588, + "src": "3175:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13995,18 +14116,18 @@ ], "expression": { "argumentTypes": null, - "id": 657, + "id": 653, "name": "Schnorr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, - "src": "3145:7:2", + "src": "3007:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Schnorr_$453_$", "typeString": "type(library Schnorr)" } }, - "id": 658, + "id": 654, "isConstant": false, "isLValue": false, "isPure": false, @@ -14014,13 +14135,13 @@ "memberName": "verifySignature", "nodeType": "MemberAccess", "referencedDeclaration": 452, - "src": "3145:23:2", + "src": "3007:23:2", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint8_$_t_uint256_$_t_uint256_$_t_address_$returns$_t_bool_$", "typeString": "function (uint256,uint8,uint256,uint256,address) pure returns (bool)" } }, - "id": 669, + "id": 665, "isConstant": false, "isLValue": false, "isPure": false, @@ -14028,7 +14149,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3145:193:2", + "src": "3007:193:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14038,14 +14159,14 @@ { "argumentTypes": null, "hexValue": "564141207369676e617475726520696e76616c6964", - "id": 670, + "id": 666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3352:23:2", + "src": "3214:23:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", @@ -14065,7 +14186,7 @@ "typeString": "literal_string \"VAA signature invalid\"" } ], - "id": 656, + "id": 652, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14073,13 +14194,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3124:7:2", + "src": "2986:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 671, + "id": 667, "isConstant": false, "isLValue": false, "isPure": false, @@ -14087,31 +14208,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3124:252:2", + "src": "2986:252:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 672, + "id": 668, "nodeType": "ExpressionStatement", - "src": "3124:252:2" + "src": "2986:252:2" }, { "assignments": [ - 674 + 670 ], "declarations": [ { "constant": false, - "id": 674, + "id": 670, "mutability": "mutable", "name": "action", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "3387:12:2", + "scope": 727, + "src": "3249:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14119,10 +14240,10 @@ "typeString": "uint8" }, "typeName": { - "id": 673, + "id": 669, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3387:5:2", + "src": "3249:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14132,21 +14253,21 @@ "visibility": "internal" } ], - "id": 679, + "id": 675, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3631", - "id": 677, + "id": 673, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3414:2:2", + "src": "3276:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_61_by_1", @@ -14164,18 +14285,18 @@ ], "expression": { "argumentTypes": null, - "id": 675, + "id": 671, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "3402:3:2", + "referencedDeclaration": 556, + "src": "3264:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 676, + "id": 672, "isConstant": false, "isLValue": false, "isPure": false, @@ -14183,13 +14304,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3402:11:2", + "src": "3264:11:2", "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": 678, + "id": 674, "isConstant": false, "isLValue": false, "isPure": false, @@ -14197,7 +14318,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3402:15:2", + "src": "3264:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -14205,22 +14326,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3387:30:2" + "src": "3249:30:2" }, { "assignments": [ - 681 + 677 ], "declarations": [ { "constant": false, - "id": 681, + "id": 677, "mutability": "mutable", "name": "payload_len", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "3427:17:2", + "scope": 727, + "src": "3289:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14228,10 +14349,10 @@ "typeString": "uint8" }, "typeName": { - "id": 680, + "id": 676, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3427:5:2", + "src": "3289:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14241,21 +14362,21 @@ "visibility": "internal" } ], - "id": 686, + "id": 682, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3632", - "id": 684, + "id": 680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3459:2:2", + "src": "3321:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_62_by_1", @@ -14273,18 +14394,18 @@ ], "expression": { "argumentTypes": null, - "id": 682, + "id": 678, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "3447:3:2", + "referencedDeclaration": 556, + "src": "3309:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 683, + "id": 679, "isConstant": false, "isLValue": false, "isPure": false, @@ -14292,13 +14413,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3447:11:2", + "src": "3309:11:2", "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": 685, + "id": 681, "isConstant": false, "isLValue": false, "isPure": false, @@ -14306,7 +14427,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3447:15:2", + "src": "3309:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -14314,22 +14435,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3427:35:2" + "src": "3289:35:2" }, { "assignments": [ - 688 + 684 ], "declarations": [ { "constant": false, - "id": 688, + "id": 684, "mutability": "mutable", "name": "payload", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 724, - "src": "3472:20:2", + "scope": 727, + "src": "3334:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14337,10 +14458,10 @@ "typeString": "bytes" }, "typeName": { - "id": 687, + "id": 683, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3472:5:2", + "src": "3334:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14350,21 +14471,21 @@ "visibility": "internal" } ], - "id": 694, + "id": 690, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3633", - "id": 691, + "id": 687, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3505:2:2", + "src": "3367:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_63_by_1", @@ -14374,12 +14495,12 @@ }, { "argumentTypes": null, - "id": 692, + "id": 688, "name": "payload_len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "3509:11:2", + "referencedDeclaration": 677, + "src": "3371:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14399,18 +14520,18 @@ ], "expression": { "argumentTypes": null, - "id": 689, + "id": 685, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "3495:3:2", + "referencedDeclaration": 556, + "src": "3357:3:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 690, + "id": 686, "isConstant": false, "isLValue": false, "isPure": false, @@ -14418,13 +14539,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "3495:9:2", + "src": "3357:9:2", "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": 693, + "id": 689, "isConstant": false, "isLValue": false, "isPure": false, @@ -14432,7 +14553,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3495:26:2", + "src": "3357:26:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -14440,7 +14561,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3472:49:2" + "src": "3334:49:2" }, { "condition": { @@ -14449,19 +14570,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 697, + "id": 693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 695, + "id": 691, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "3559:6:2", + "referencedDeclaration": 670, + "src": "3421:6:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14472,14 +14593,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783031", - "id": 696, + "id": 692, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3569:4:2", + "src": "3431:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14487,7 +14608,7 @@ }, "value": "0x01" }, - "src": "3559:14:2", + "src": "3421:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14500,19 +14621,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 705, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 703, + "id": 706, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "3639:6:2", + "referencedDeclaration": 670, + "src": "3629:6:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14523,14 +14644,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783130", - "id": 704, + "id": 707, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3649:4:2", + "src": "3639:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", @@ -14538,16 +14659,16 @@ }, "value": "0x10" }, - "src": "3639:14:2", + "src": "3629:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 715, + "id": 718, "nodeType": "Block", - "src": "3706:53:2", + "src": "3696:53:2", "statements": [ { "expression": { @@ -14556,14 +14677,14 @@ { "argumentTypes": null, "hexValue": "696e76616c69642056414120616374696f6e", - "id": 712, + "id": 715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3727:20:2", + "src": "3717:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66", @@ -14579,7 +14700,7 @@ "typeString": "literal_string \"invalid VAA action\"" } ], - "id": 711, + "id": 714, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14587,13 +14708,13 @@ -19 ], "referencedDeclaration": -19, - "src": "3720:6:2", + "src": "3710:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 713, + "id": 716, "isConstant": false, "isLValue": false, "isPure": false, @@ -14601,26 +14722,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3720:28:2", + "src": "3710:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 714, + "id": 717, "nodeType": "ExpressionStatement", - "src": "3720:28:2" + "src": "3710:28:2" } ] }, - "id": 716, + "id": 719, "nodeType": "IfStatement", - "src": "3635:124:2", + "src": "3625:124:2", "trueBody": { - "id": 710, + "id": 713, "nodeType": "Block", - "src": "3655:45:2", + "src": "3645:45:2", "statements": [ { "expression": { @@ -14628,12 +14749,12 @@ "arguments": [ { "argumentTypes": null, - "id": 707, + "id": 710, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "3681:7:2", + "referencedDeclaration": 684, + "src": "3671:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -14647,18 +14768,18 @@ "typeString": "bytes memory" } ], - "id": 706, + "id": 709, "name": "vaaTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 941, - "src": "3669:11:2", + "referencedDeclaration": 949, + "src": "3659:11:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 708, + "id": 711, "isConstant": false, "isLValue": false, "isPure": false, @@ -14666,27 +14787,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3669:20:2", + "src": "3659:20:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 709, + "id": 712, "nodeType": "ExpressionStatement", - "src": "3669:20:2" + "src": "3659:20:2" } ] } }, - "id": 717, + "id": 720, "nodeType": "IfStatement", - "src": "3555:204:2", + "src": "3417:332:2", "trueBody": { - "id": 702, + "id": 705, "nodeType": "Block", - "src": "3575:54:2", + "src": "3437:182:2", "statements": [ { "expression": { @@ -14694,12 +14815,124 @@ "arguments": [ { "argumentTypes": null, - "id": 699, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 695, + "name": "vaa_guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 574, + "src": "3459:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 696, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "3485:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3459:44:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574", + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3505:59:2", + "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": 694, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3451:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3451:114:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 700, + "nodeType": "ExpressionStatement", + "src": "3451:114:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 702, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "3610:7:2", + "referencedDeclaration": 684, + "src": "3600:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -14713,18 +14946,18 @@ "typeString": "bytes memory" } ], - "id": 698, + "id": 701, "name": "vaaUpdateGuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, - "src": "3589:20:2", + "referencedDeclaration": 822, + "src": "3579:20:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 700, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -14732,16 +14965,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3589:29:2", + "src": "3579:29:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 701, + "id": 704, "nodeType": "ExpressionStatement", - "src": "3589:29:2" + "src": "3579:29:2" } ] } @@ -14749,7 +14982,7 @@ { "expression": { "argumentTypes": null, - "id": 722, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, @@ -14758,26 +14991,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 718, + "id": 721, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "3804:12:2", + "referencedDeclaration": 518, + "src": "3794:12:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 720, + "id": 723, "indexExpression": { "argumentTypes": null, - "id": 719, + "id": 722, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "3817:4:2", + "referencedDeclaration": 612, + "src": "3807:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14788,7 +15021,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3804:18:2", + "src": "3794:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14799,14 +15032,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 721, + "id": 724, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3825:4:2", + "src": "3815:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14814,21 +15047,21 @@ }, "value": "true" }, - "src": "3804:25:2", + "src": "3794:25:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 723, + "id": 726, "nodeType": "ExpressionStatement", - "src": "3804:25:2" + "src": "3794:25:2" } ] }, "documentation": null, "functionSelector": "3bc0aee6", - "id": 725, + "id": 728, "implemented": true, "kind": "function", "modifiers": [], @@ -14836,18 +15069,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 561, + "id": 557, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 560, + "id": 556, "mutability": "mutable", "name": "vaa", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 725, - "src": "2141:18:2", + "scope": 728, + "src": "2057:18:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -14855,10 +15088,10 @@ "typeString": "bytes" }, "typeName": { - "id": 559, + "id": 555, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2141:5:2", + "src": "2057:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14868,40 +15101,40 @@ "visibility": "internal" } ], - "src": "2131:34:2" + "src": "2047:34:2" }, "returnParameters": { - "id": 562, + "id": 558, "nodeType": "ParameterList", "parameters": [], - "src": "2173:0:2" + "src": "2089:0:2" }, - "scope": 1173, - "src": "2113:1723:2", + "scope": 1181, + "src": "2029:1797:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 813, + "id": 821, "nodeType": "Block", - "src": "3899:829:2", + "src": "3889:873:2", "statements": [ { "assignments": [ - 731 + 734 ], "declarations": [ { "constant": false, - "id": 731, + "id": 734, "mutability": "mutable", "name": "new_key_x", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "3909:17:2", + "scope": 821, + "src": "3899:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14909,10 +15142,10 @@ "typeString": "uint256" }, "typeName": { - "id": 730, + "id": 733, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3909:7:2", + "src": "3899:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14922,21 +15155,21 @@ "visibility": "internal" } ], - "id": 736, + "id": 739, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 734, + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3944:1:2", + "src": "3934:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14954,18 +15187,18 @@ ], "expression": { "argumentTypes": null, - "id": 732, + "id": 735, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "3929:4:2", + "referencedDeclaration": 730, + "src": "3919:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 733, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, @@ -14973,13 +15206,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "3929:14:2", + "src": "3919:14:2", "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": 735, + "id": 738, "isConstant": false, "isLValue": false, "isPure": false, @@ -14987,7 +15220,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3929:17:2", + "src": "3919:17:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -14995,22 +15228,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3909:37:2" + "src": "3899:37:2" }, { "assignments": [ - 738 + 741 ], "declarations": [ { "constant": false, - "id": 738, + "id": 741, "mutability": "mutable", - "name": "new_key_y", + "name": "y_parity", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "3956:17:2", + "scope": 821, + "src": "3946:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15018,10 +15251,10 @@ "typeString": "uint256" }, "typeName": { - "id": 737, + "id": 740, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3956:7:2", + "src": "3946:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15031,21 +15264,21 @@ "visibility": "internal" } ], - "id": 743, + "id": 746, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3332", - "id": 741, + "id": 744, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3991:2:2", + "src": "3978:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -15063,32 +15296,32 @@ ], "expression": { "argumentTypes": null, - "id": 739, + "id": 742, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "3976:4:2", + "referencedDeclaration": 730, + "src": "3965:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 740, + "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "toUint256", + "memberName": "toUint8", "nodeType": "MemberAccess", - "referencedDeclaration": 271, - "src": "3976:14:2", + "referencedDeclaration": 109, + "src": "3965:12:2", "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)" + "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": 742, + "id": 745, "isConstant": false, "isLValue": false, "isPure": false, @@ -15096,30 +15329,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3976:18:2", + "src": "3965:16:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "3956:38:2" + "src": "3946:35:2" }, { "assignments": [ - 745 + 748 ], "declarations": [ { "constant": false, - "id": 745, + "id": 748, "mutability": "mutable", "name": "new_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "4004:29:2", + "scope": 821, + "src": "3991:29:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15127,10 +15360,10 @@ "typeString": "uint32" }, "typeName": { - "id": 744, + "id": 747, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4004:6:2", + "src": "3991:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15140,50 +15373,50 @@ "visibility": "internal" } ], - "id": 750, + "id": 753, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "3634", - "id": 748, + "hexValue": "3333", + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4050:2:2", + "src": "4037:2:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" }, - "value": "64" + "value": "33" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" } ], "expression": { "argumentTypes": null, - "id": 746, + "id": 749, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "4036:4:2", + "referencedDeclaration": 730, + "src": "4023:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 747, + "id": 750, "isConstant": false, "isLValue": false, "isPure": false, @@ -15191,13 +15424,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "4036:13:2", + "src": "4023:13:2", "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": 749, + "id": 752, "isConstant": false, "isLValue": false, "isPure": false, @@ -15205,7 +15438,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4036:17:2", + "src": "4023:17:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -15213,7 +15446,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4004:49:2" + "src": "3991:49:2" }, { "expression": { @@ -15225,19 +15458,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 754, + "id": 757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 752, + "id": 755, "name": "new_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "4072:22:2", + "referencedDeclaration": 748, + "src": "4059:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15247,18 +15480,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 753, + "id": 756, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "4097:18:2", + "referencedDeclaration": 512, + "src": "4084:18:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4072:43:2", + "src": "4059:43:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15267,14 +15500,14 @@ { "argumentTypes": null, "hexValue": "696e646578206f66206e657720677561726469616e20736574206d757374206265203e2063757272656e74", - "id": 755, + "id": 758, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4117:45:2", + "src": "4104:45:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_906a0f9350878de65dacfb23a6e8e903db110639fb839bf569ced494236848c8", @@ -15294,7 +15527,7 @@ "typeString": "literal_string \"index of new guardian set must be > current\"" } ], - "id": 751, + "id": 754, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -15302,13 +15535,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4064:7:2", + "src": "4051:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 756, + "id": 759, "isConstant": false, "isLValue": false, "isPure": false, @@ -15316,16 +15549,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4064:99:2", + "src": "4051:99:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 757, + "id": 760, "nodeType": "ExpressionStatement", - "src": "4064:99:2" + "src": "4051:99:2" }, { "expression": { @@ -15337,19 +15570,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 762, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 759, + "id": 762, "name": "new_key_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "4181:9:2", + "referencedDeclaration": 734, + "src": "4168:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15361,18 +15594,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 760, + "id": 763, "name": "Schnorr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, - "src": "4193:7:2", + "src": "4180:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Schnorr_$453_$", "typeString": "type(library Schnorr)" } }, - "id": 761, + "id": 764, "isConstant": false, "isLValue": false, "isPure": false, @@ -15380,13 +15613,13 @@ "memberName": "HALF_Q", "nodeType": "MemberAccess", "referencedDeclaration": 346, - "src": "4193:14:2", + "src": "4180:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4181:26:2", + "src": "4168:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15395,14 +15628,14 @@ { "argumentTypes": null, "hexValue": "696e76616c6964206b657920666f722066617374205363686e6f727220766572696669636174696f6e", - "id": 763, + "id": 766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4209:43:2", + "src": "4196:43:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ad2abc16dac8cf88f3decb4180ebbab2f7006b83967f36fdb68b8d2df95c5160", @@ -15422,7 +15655,7 @@ "typeString": "literal_string \"invalid key for fast Schnorr verification\"" } ], - "id": 758, + "id": 761, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -15430,13 +15663,13 @@ -18 ], "referencedDeclaration": -18, - "src": "4173:7:2", + "src": "4160:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 764, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, @@ -15444,31 +15677,148 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4173:80:2", + "src": "4160:80:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 765, + "id": 768, "nodeType": "ExpressionStatement", - "src": "4173:80:2" + "src": "4160:80:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 770, + "name": "y_parity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "4258:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4270:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4258:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "696e76616c6964207920706172697479", + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4273:18:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4233cf3bcdde1caab54cb7e3337f4cce4e488f0e7c2711d64d9cdf67ee1ee175", + "typeString": "literal_string \"invalid y parity\"" + }, + "value": "invalid y parity" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4233cf3bcdde1caab54cb7e3337f4cce4e488f0e7c2711d64d9cdf67ee1ee175", + "typeString": "literal_string \"invalid y parity\"" + } + ], + "id": 769, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4250:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4250:42:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 775, + "nodeType": "ExpressionStatement", + "src": "4250:42:2" }, { "assignments": [ - 767 + 777 ], "declarations": [ { "constant": false, - "id": 767, + "id": 777, "mutability": "mutable", "name": "old_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "4264:29:2", + "scope": 821, + "src": "4303:29:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15476,10 +15826,10 @@ "typeString": "uint32" }, "typeName": { - "id": 766, + "id": 776, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4264:6:2", + "src": "4303:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15489,39 +15839,39 @@ "visibility": "internal" } ], - "id": 769, + "id": 779, "initialValue": { "argumentTypes": null, - "id": 768, + "id": 778, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "4296:18:2", + "referencedDeclaration": 512, + "src": "4335:18:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "4264:50:2" + "src": "4303:50:2" }, { "expression": { "argumentTypes": null, - "id": 772, + "id": 782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 770, + "id": 780, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "4324:18:2", + "referencedDeclaration": 512, + "src": "4363:18:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15531,41 +15881,41 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 771, + "id": 781, "name": "new_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 745, - "src": "4345:22:2", + "referencedDeclaration": 748, + "src": "4384:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4324:43:2", + "src": "4363:43:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 773, + "id": 783, "nodeType": "ExpressionStatement", - "src": "4324:43:2" + "src": "4363:43:2" }, { "assignments": [ - 775 + 785 ], "declarations": [ { "constant": false, - "id": 775, + "id": 785, "mutability": "mutable", "name": "new_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 813, - "src": "4378:35:2", + "scope": 821, + "src": "4417:35:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -15574,11 +15924,11 @@ }, "typeName": { "contractScope": null, - "id": 774, + "id": 784, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 486, - "src": "4378:11:2", + "src": "4417:11:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", "typeString": "struct Wormhole.GuardianSet" @@ -15588,18 +15938,18 @@ "visibility": "internal" } ], - "id": 786, + "id": 794, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 777, + "id": 787, "name": "new_key_x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "4428:9:2", + "referencedDeclaration": 734, + "src": "4467:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15610,49 +15960,12 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 780, - "name": "new_key_y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 738, - "src": "4445:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4457:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "4445:13:2", + "id": 790, + "name": "y_parity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 741, + "src": "4484:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15666,29 +15979,29 @@ "typeString": "uint256" } ], - "id": 779, + "id": 789, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4439:5:2", + "src": "4478:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 778, + "id": 788, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4439:5:2", + "src": "4478:5:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 783, + "id": 791, "isConstant": false, "isLValue": false, "isPure": false, @@ -15696,7 +16009,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4439:20:2", + "src": "4478:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -15706,14 +16019,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 784, + "id": 792, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4461:1:2", + "src": "4495:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15737,18 +16050,18 @@ "typeString": "int_const 0" } ], - "id": 776, + "id": 786, "name": "GuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, - "src": "4416:11:2", + "src": "4455:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_GuardianSet_$486_storage_ptr_$", "typeString": "type(struct Wormhole.GuardianSet storage pointer)" } }, - "id": 785, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -15756,7 +16069,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4416:47:2", + "src": "4455:42:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", @@ -15764,12 +16077,12 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4378:85:2" + "src": "4417:80:2" }, { "expression": { "argumentTypes": null, - "id": 791, + "id": 799, "isConstant": false, "isLValue": false, "isPure": false, @@ -15778,26 +16091,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 787, + "id": 795, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "4473:13:2", + "referencedDeclaration": 510, + "src": "4507:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 789, + "id": 797, "indexExpression": { "argumentTypes": null, - "id": 788, + "id": 796, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "4487:18:2", + "referencedDeclaration": 512, + "src": "4521:18:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15808,7 +16121,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4473:33:2", + "src": "4507:33:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" @@ -15818,31 +16131,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 790, + "id": 798, "name": "new_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 775, - "src": "4509:16:2", + "referencedDeclaration": 785, + "src": "4543:16:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "4473:52:2", + "src": "4507:52:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 792, + "id": 800, "nodeType": "ExpressionStatement", - "src": "4473:52:2" + "src": "4507:52:2" }, { "expression": { "argumentTypes": null, - "id": 804, + "id": 812, "isConstant": false, "isLValue": false, "isPure": false, @@ -15853,26 +16166,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 793, + "id": 801, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "4535:13:2", + "referencedDeclaration": 510, + "src": "4569:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 795, + "id": 803, "indexExpression": { "argumentTypes": null, - "id": 794, + "id": 802, "name": "old_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "4549:22:2", + "referencedDeclaration": 777, + "src": "4583:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15883,13 +16196,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4535:37:2", + "src": "4569:37:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 796, + "id": 804, "isConstant": false, "isLValue": true, "isPure": false, @@ -15897,7 +16210,7 @@ "memberName": "expiration_time", "nodeType": "MemberAccess", "referencedDeclaration": 485, - "src": "4535:53:2", + "src": "4569:53:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15911,7 +16224,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 803, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -15923,18 +16236,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 799, + "id": 807, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "4598:5:2", + "src": "4632:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 800, + "id": 808, "isConstant": false, "isLValue": false, "isPure": false, @@ -15942,7 +16255,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4598:15:2", + "src": "4632:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15956,29 +16269,29 @@ "typeString": "uint256" } ], - "id": 798, + "id": 806, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4591:6:2", + "src": "4625:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 797, + "id": 805, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4591:6:2", + "src": "4625:6:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 801, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -15986,7 +16299,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4591:23:2", + "src": "4625:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -15997,32 +16310,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 802, + "id": 810, "name": "vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "4617:10:2", + "referencedDeclaration": 514, + "src": "4651:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4591:36:2", + "src": "4625:36:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4535:92:2", + "src": "4569:92:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 805, + "id": 813, "nodeType": "ExpressionStatement", - "src": "4535:92:2" + "src": "4569:92:2" }, { "eventCall": { @@ -16032,26 +16345,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 807, + "id": 815, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "4665:13:2", + "referencedDeclaration": 510, + "src": "4699:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 809, + "id": 817, "indexExpression": { "argumentTypes": null, - "id": 808, + "id": 816, "name": "old_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "4679:22:2", + "referencedDeclaration": 777, + "src": "4713:22:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16062,7 +16375,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4665:37:2", + "src": "4699:37:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_storage", "typeString": "struct Wormhole.GuardianSet storage ref" @@ -16070,12 +16383,12 @@ }, { "argumentTypes": null, - "id": 810, + "id": 818, "name": "new_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 775, - "src": "4704:16:2", + "referencedDeclaration": 785, + "src": "4738:16:2", "typeDescriptions": { "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" @@ -16093,18 +16406,18 @@ "typeString": "struct Wormhole.GuardianSet memory" } ], - "id": 806, + "id": 814, "name": "LogGuardianSetChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 492, - "src": "4643:21:2", + "src": "4677:21:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_struct$_GuardianSet_$486_memory_ptr_$_t_struct$_GuardianSet_$486_memory_ptr_$returns$__$", "typeString": "function (struct Wormhole.GuardianSet memory,struct Wormhole.GuardianSet memory)" } }, - "id": 811, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -16112,21 +16425,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4643:78:2", + "src": "4677:78:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 812, + "id": 820, "nodeType": "EmitStatement", - "src": "4638:83:2" + "src": "4672:83:2" } ] }, "documentation": null, - "id": 814, + "id": 822, "implemented": true, "kind": "function", "modifiers": [], @@ -16134,18 +16447,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 728, + "id": 731, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 727, + "id": 730, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 814, - "src": "3872:17:2", + "scope": 822, + "src": "3862:17:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -16153,10 +16466,10 @@ "typeString": "bytes" }, "typeName": { - "id": 726, + "id": 729, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3872:5:2", + "src": "3862:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -16166,40 +16479,40 @@ "visibility": "internal" } ], - "src": "3871:19:2" + "src": "3861:19:2" }, "returnParameters": { - "id": 729, + "id": 732, "nodeType": "ParameterList", "parameters": [], - "src": "3899:0:2" + "src": "3889:0:2" }, - "scope": 1173, - "src": "3842:886:2", + "scope": 1181, + "src": "3832:930:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 940, + "id": 948, "nodeType": "Block", - "src": "4782:1363:2", + "src": "4816:1325:2", "statements": [ { "assignments": [ - 820 + 828 ], "declarations": [ { "constant": false, - "id": 820, + "id": 828, "mutability": "mutable", "name": "source_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "4835:18:2", + "scope": 948, + "src": "4869:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16207,10 +16520,10 @@ "typeString": "uint8" }, "typeName": { - "id": 819, + "id": 827, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4835:5:2", + "src": "4869:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16220,21 +16533,21 @@ "visibility": "internal" } ], - "id": 825, + "id": 833, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 823, + "id": 831, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4869:1:2", + "src": "4903:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -16252,18 +16565,18 @@ ], "expression": { "argumentTypes": null, - "id": 821, + "id": 829, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "4856:4:2", + "referencedDeclaration": 824, + "src": "4890:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 822, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -16271,13 +16584,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4856:12:2", + "src": "4890:12:2", "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": 824, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -16285,7 +16598,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4856:15:2", + "src": "4890:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -16293,22 +16606,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4835:36:2" + "src": "4869:36:2" }, { "assignments": [ - 827 + 835 ], "declarations": [ { "constant": false, - "id": 827, + "id": 835, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "4882:18:2", + "scope": 948, + "src": "4916:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16316,10 +16629,10 @@ "typeString": "uint8" }, "typeName": { - "id": 826, + "id": 834, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4882:5:2", + "src": "4916:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16329,21 +16642,21 @@ "visibility": "internal" } ], - "id": 832, + "id": 840, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 830, + "id": 838, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4916:1:2", + "src": "4950:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -16361,18 +16674,18 @@ ], "expression": { "argumentTypes": null, - "id": 828, + "id": 836, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "4903:4:2", + "referencedDeclaration": 824, + "src": "4937:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 829, + "id": 837, "isConstant": false, "isLValue": false, "isPure": false, @@ -16380,13 +16693,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4903:12:2", + "src": "4937:12:2", "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": 831, + "id": 839, "isConstant": false, "isLValue": false, "isPure": false, @@ -16394,7 +16707,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4903:15:2", + "src": "4937:15:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -16402,22 +16715,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4882:36:2" + "src": "4916:36:2" }, { "assignments": [ - 834 + 842 ], "declarations": [ { "constant": false, - "id": 834, + "id": 842, "mutability": "mutable", "name": "target_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "5037:22:2", + "scope": 948, + "src": "5071:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16425,10 +16738,10 @@ "typeString": "address" }, "typeName": { - "id": 833, + "id": 841, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5037:7:2", + "src": "5071:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16439,7 +16752,7 @@ "visibility": "internal" } ], - "id": 841, + "id": 849, "initialValue": { "argumentTypes": null, "arguments": [ @@ -16449,7 +16762,7 @@ "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" }, - "id": 839, + "id": 847, "isConstant": false, "isLValue": false, "isPure": true, @@ -16457,14 +16770,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3338", - "id": 837, + "id": 845, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5077:2:2", + "src": "5111:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_38_by_1", @@ -16477,14 +16790,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 838, + "id": 846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5082:2:2", + "src": "5116:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -16492,7 +16805,7 @@ }, "value": "12" }, - "src": "5077:7:2", + "src": "5111:7:2", "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" @@ -16508,18 +16821,18 @@ ], "expression": { "argumentTypes": null, - "id": 835, + "id": 843, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5062:4:2", + "referencedDeclaration": 824, + "src": "5096:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 836, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, @@ -16527,13 +16840,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "5062:14:2", + "src": "5096:14:2", "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": 840, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, @@ -16541,7 +16854,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5062:23:2", + "src": "5096:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -16549,22 +16862,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5037:48:2" + "src": "5071:48:2" }, { "assignments": [ - 843 + 851 ], "declarations": [ { "constant": false, - "id": 843, + "id": 851, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "5096:17:2", + "scope": 948, + "src": "5130:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16572,10 +16885,10 @@ "typeString": "uint8" }, "typeName": { - "id": 842, + "id": 850, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5096:5:2", + "src": "5130:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16585,21 +16898,21 @@ "visibility": "internal" } ], - "id": 848, + "id": 856, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3730", - "id": 846, + "id": 854, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5129:2:2", + "src": "5163:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_70_by_1", @@ -16617,18 +16930,18 @@ ], "expression": { "argumentTypes": null, - "id": 844, + "id": 852, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5116:4:2", + "referencedDeclaration": 824, + "src": "5150:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 845, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, @@ -16636,13 +16949,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5116:12:2", + "src": "5150:12:2", "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": 847, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, @@ -16650,7 +16963,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5116:16:2", + "src": "5150:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -16658,22 +16971,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5096:36:2" + "src": "5130:36:2" }, { "assignments": [ - 850 + 858 ], "declarations": [ { "constant": false, - "id": 850, + "id": 858, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 940, - "src": "5196:14:2", + "scope": 948, + "src": "5230:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16681,10 +16994,10 @@ "typeString": "uint256" }, "typeName": { - "id": 849, + "id": 857, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5196:7:2", + "src": "5230:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16694,21 +17007,21 @@ "visibility": "internal" } ], - "id": 855, + "id": 863, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "313033", - "id": 853, + "id": 861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5228:3:2", + "src": "5262:3:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_103_by_1", @@ -16726,18 +17039,18 @@ ], "expression": { "argumentTypes": null, - "id": 851, + "id": 859, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5213:4:2", + "referencedDeclaration": 824, + "src": "5247:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 852, + "id": 860, "isConstant": false, "isLValue": false, "isPure": false, @@ -16745,13 +17058,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "5213:14:2", + "src": "5247:14:2", "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": 854, + "id": 862, "isConstant": false, "isLValue": false, "isPure": false, @@ -16759,7 +17072,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5213:19:2", + "src": "5247:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16767,7 +17080,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5196:36:2" + "src": "5230:36:2" }, { "expression": { @@ -16779,19 +17092,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 859, + "id": 867, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 857, + "id": 865, "name": "source_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 820, - "src": "5251:12:2", + "referencedDeclaration": 828, + "src": "5285:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16801,18 +17114,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 858, + "id": 866, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "5267:12:2", + "referencedDeclaration": 835, + "src": "5301:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5251:28:2", + "src": "5285:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16821,14 +17134,14 @@ { "argumentTypes": null, "hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564", - "id": 860, + "id": 868, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5281:40:2", + "src": "5315:40:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23", @@ -16848,7 +17161,7 @@ "typeString": "literal_string \"same chain transfers are not supported\"" } ], - "id": 856, + "id": 864, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -16856,13 +17169,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5243:7:2", + "src": "5277:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 861, + "id": 869, "isConstant": false, "isLValue": false, "isPure": false, @@ -16870,16 +17183,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5243:79:2", + "src": "5277:79:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 862, + "id": 870, "nodeType": "ExpressionStatement", - "src": "5243:79:2" + "src": "5277:79:2" }, { "expression": { @@ -16891,19 +17204,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 866, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 864, + "id": 872, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "5340:12:2", + "referencedDeclaration": 835, + "src": "5374:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16913,18 +17226,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 865, + "id": 873, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 476, - "src": "5356:8:2", + "src": "5390:8:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5340:24:2", + "src": "5374:24:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16933,14 +17246,14 @@ { "argumentTypes": null, "hexValue": "7472616e73666572206d75737420626520696e636f6d696e67", - "id": 867, + "id": 875, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5366:27:2", + "src": "5400:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a", @@ -16960,7 +17273,7 @@ "typeString": "literal_string \"transfer must be incoming\"" } ], - "id": 863, + "id": 871, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -16968,13 +17281,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5332:7:2", + "src": "5366:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 868, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -16982,16 +17295,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5332:62:2", + "src": "5366:62:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 869, + "id": 877, "nodeType": "ExpressionStatement", - "src": "5332:62:2" + "src": "5366:62:2" }, { "condition": { @@ -17000,19 +17313,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 872, + "id": 880, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 870, + "id": 878, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "5409:11:2", + "referencedDeclaration": 851, + "src": "5443:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17022,42 +17335,42 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 871, + "id": 879, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 476, - "src": "5424:8:2", + "src": "5458:8:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5409:23:2", + "src": "5443:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 938, + "id": 946, "nodeType": "Block", - "src": "5956:145:2", + "src": "5990:145:2", "statements": [ { "assignments": [ - 922 + 930 ], "declarations": [ { "constant": false, - "id": 922, + "id": 930, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 938, - "src": "5970:21:2", + "scope": 946, + "src": "6004:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17065,10 +17378,10 @@ "typeString": "address" }, "typeName": { - "id": 921, + "id": 929, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5970:7:2", + "src": "6004:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17079,7 +17392,7 @@ "visibility": "internal" } ], - "id": 929, + "id": 937, "initialValue": { "argumentTypes": null, "arguments": [ @@ -17089,7 +17402,7 @@ "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" }, - "id": 927, + "id": 935, "isConstant": false, "isLValue": false, "isPure": true, @@ -17097,14 +17410,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3731", - "id": 925, + "id": 933, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6009:2:2", + "src": "6043:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -17117,14 +17430,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 926, + "id": 934, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6014:2:2", + "src": "6048:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -17132,7 +17445,7 @@ }, "value": "12" }, - "src": "6009:7:2", + "src": "6043:7:2", "typeDescriptions": { "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" @@ -17148,18 +17461,18 @@ ], "expression": { "argumentTypes": null, - "id": 923, + "id": 931, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5994:4:2", + "referencedDeclaration": 824, + "src": "6028:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 924, + "id": 932, "isConstant": false, "isLValue": false, "isPure": false, @@ -17167,13 +17480,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "5994:14:2", + "src": "6028:14:2", "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": 928, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, @@ -17181,7 +17494,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5994:23:2", + "src": "6028:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -17189,7 +17502,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5970:47:2" + "src": "6004:47:2" }, { "expression": { @@ -17197,12 +17510,12 @@ "arguments": [ { "argumentTypes": null, - "id": 934, + "id": 942, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 834, - "src": "6067:14:2", + "referencedDeclaration": 842, + "src": "6101:14:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17210,12 +17523,12 @@ }, { "argumentTypes": null, - "id": 935, + "id": 943, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 850, - "src": "6083:6:2", + "referencedDeclaration": 858, + "src": "6117:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17238,12 +17551,12 @@ "arguments": [ { "argumentTypes": null, - "id": 931, + "id": 939, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "6039:13:2", + "referencedDeclaration": 930, + "src": "6073:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17257,18 +17570,18 @@ "typeString": "address" } ], - "id": 930, + "id": 938, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2025, - "src": "6032:6:2", + "referencedDeclaration": 2033, + "src": "6066:6:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2025_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", "typeString": "type(contract IERC20)" } }, - "id": 932, + "id": 940, "isConstant": false, "isLValue": false, "isPure": false, @@ -17276,28 +17589,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6032:21:2", + "src": "6066:21:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } }, - "id": 933, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2059, - "src": "6032:34:2", + "referencedDeclaration": 2067, + "src": "6066:34:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2025_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2025_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2033_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2033_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 936, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -17305,41 +17618,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6032:58:2", + "src": "6066:58:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 937, + "id": 945, "nodeType": "ExpressionStatement", - "src": "6032:58:2" + "src": "6066:58:2" } ] }, - "id": 939, + "id": 947, "nodeType": "IfStatement", - "src": "5405:696:2", + "src": "5439:696:2", "trueBody": { - "id": 920, + "id": 928, "nodeType": "Block", - "src": "5434:516:2", + "src": "5468:516:2", "statements": [ { "assignments": [ - 874 + 882 ], "declarations": [ { "constant": false, - "id": 874, + "id": 882, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 920, - "src": "5448:21:2", + "scope": 928, + "src": "5482:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17347,10 +17660,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 873, + "id": 881, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5448:7:2", + "src": "5482:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17360,21 +17673,21 @@ "visibility": "internal" } ], - "id": 879, + "id": 887, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3731", - "id": 877, + "id": 885, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5487:2:2", + "src": "5521:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -17392,18 +17705,18 @@ ], "expression": { "argumentTypes": null, - "id": 875, + "id": 883, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "5472:4:2", + "referencedDeclaration": 824, + "src": "5506:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 876, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, @@ -17411,13 +17724,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "5472:14:2", + "src": "5506:14:2", "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": 878, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, @@ -17425,7 +17738,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5472:18:2", + "src": "5506:18:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -17433,22 +17746,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5448:42:2" + "src": "5482:42:2" }, { "assignments": [ - 881 + 889 ], "declarations": [ { "constant": false, - "id": 881, + "id": 889, "mutability": "mutable", "name": "asset_id", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 920, - "src": "5504:16:2", + "scope": 928, + "src": "5538:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17456,10 +17769,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 880, + "id": 888, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5504:7:2", + "src": "5538:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17469,7 +17782,7 @@ "visibility": "internal" } ], - "id": 889, + "id": 897, "initialValue": { "argumentTypes": null, "arguments": [ @@ -17478,12 +17791,12 @@ "arguments": [ { "argumentTypes": null, - "id": 885, + "id": 893, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "5550:11:2", + "referencedDeclaration": 851, + "src": "5584:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17491,12 +17804,12 @@ }, { "argumentTypes": null, - "id": 886, + "id": 894, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "5563:13:2", + "referencedDeclaration": 882, + "src": "5597:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17516,18 +17829,18 @@ ], "expression": { "argumentTypes": null, - "id": 883, + "id": 891, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "5533:3:2", + "src": "5567:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 884, + "id": 892, "isConstant": false, "isLValue": false, "isPure": true, @@ -17535,13 +17848,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5533:16:2", + "src": "5567:16:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 887, + "id": 895, "isConstant": false, "isLValue": false, "isPure": false, @@ -17549,7 +17862,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5533:44:2", + "src": "5567:44:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -17564,18 +17877,18 @@ "typeString": "bytes memory" } ], - "id": 882, + "id": 890, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "5523:9:2", + "src": "5557:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 888, + "id": 896, "isConstant": false, "isLValue": false, "isPure": false, @@ -17583,7 +17896,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5523:55:2", + "src": "5557:55:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -17591,22 +17904,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5504:74:2" + "src": "5538:74:2" }, { "assignments": [ - 891 + 899 ], "declarations": [ { "constant": false, - "id": 891, + "id": 899, "mutability": "mutable", "name": "wrapped_asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 920, - "src": "5670:21:2", + "scope": 928, + "src": "5704:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17614,10 +17927,10 @@ "typeString": "address" }, "typeName": { - "id": 890, + "id": 898, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5670:7:2", + "src": "5704:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17628,31 +17941,31 @@ "visibility": "internal" } ], - "id": 895, + "id": 903, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 892, + "id": 900, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "5694:13:2", + "referencedDeclaration": 522, + "src": "5728:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 894, + "id": 902, "indexExpression": { "argumentTypes": null, - "id": 893, + "id": 901, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "5708:8:2", + "referencedDeclaration": 889, + "src": "5742:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17663,14 +17976,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5694:23:2", + "src": "5728:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "5670:47:2" + "src": "5704:47:2" }, { "condition": { @@ -17679,19 +17992,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 901, + "id": 909, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 896, + "id": 904, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "5735:13:2", + "referencedDeclaration": 899, + "src": "5769:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17705,14 +18018,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 899, + "id": 907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5760:1:2", + "src": "5794:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17728,29 +18041,29 @@ "typeString": "int_const 0" } ], - "id": 898, + "id": 906, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5752:7:2", + "src": "5786:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 897, + "id": 905, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5752:7:2", + "src": "5786:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 900, + "id": 908, "isConstant": false, "isLValue": false, "isPure": true, @@ -17758,44 +18071,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5752:10:2", + "src": "5786:10:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5735:27:2", + "src": "5769:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 911, + "id": 919, "nodeType": "IfStatement", - "src": "5731:138:2", + "src": "5765:138:2", "trueBody": { - "id": 910, + "id": 918, "nodeType": "Block", - "src": "5764:105:2", + "src": "5798:105:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 908, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 902, + "id": 910, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "5782:13:2", + "referencedDeclaration": 899, + "src": "5816:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17808,12 +18121,12 @@ "arguments": [ { "argumentTypes": null, - "id": 904, + "id": 912, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "5817:8:2", + "referencedDeclaration": 889, + "src": "5851:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17821,12 +18134,12 @@ }, { "argumentTypes": null, - "id": 905, + "id": 913, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "5827:11:2", + "referencedDeclaration": 851, + "src": "5861:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17834,12 +18147,12 @@ }, { "argumentTypes": null, - "id": 906, + "id": 914, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 874, - "src": "5840:13:2", + "referencedDeclaration": 882, + "src": "5874:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17861,18 +18174,18 @@ "typeString": "bytes32" } ], - "id": 903, + "id": 911, "name": "deployWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5798:18:2", + "referencedDeclaration": 989, + "src": "5832:18:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32) returns (address)" } }, - "id": 907, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -17880,22 +18193,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5798:56:2", + "src": "5832:56:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5782:72:2", + "src": "5816:72:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 909, + "id": 917, "nodeType": "ExpressionStatement", - "src": "5782:72:2" + "src": "5816:72:2" } ] } @@ -17906,12 +18219,12 @@ "arguments": [ { "argumentTypes": null, - "id": 916, + "id": 924, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 834, - "src": "5916:14:2", + "referencedDeclaration": 842, + "src": "5950:14:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17919,12 +18232,12 @@ }, { "argumentTypes": null, - "id": 917, + "id": 925, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 850, - "src": "5932:6:2", + "referencedDeclaration": 858, + "src": "5966:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17947,12 +18260,12 @@ "arguments": [ { "argumentTypes": null, - "id": 913, + "id": 921, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 891, - "src": "5896:13:2", + "referencedDeclaration": 899, + "src": "5930:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17966,18 +18279,18 @@ "typeString": "address" } ], - "id": 912, + "id": 920, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "5883:12:2", + "referencedDeclaration": 1736, + "src": "5917:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 914, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -17985,28 +18298,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5883:27:2", + "src": "5917:27:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", + "typeIdentifier": "t_contract$_WrappedAsset_$1736", "typeString": "contract WrappedAsset" } }, - "id": 915, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 1266, - "src": "5883:32:2", + "referencedDeclaration": 1274, + "src": "5917:32:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 918, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, @@ -18014,16 +18327,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5883:56:2", + "src": "5917:56:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 919, + "id": 927, "nodeType": "ExpressionStatement", - "src": "5883:56:2" + "src": "5917:56:2" } ] } @@ -18031,7 +18344,7 @@ ] }, "documentation": null, - "id": 941, + "id": 949, "implemented": true, "kind": "function", "modifiers": [], @@ -18039,18 +18352,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 817, + "id": 825, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 816, + "id": 824, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 941, - "src": "4755:17:2", + "scope": 949, + "src": "4789:17:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -18058,10 +18371,10 @@ "typeString": "bytes" }, "typeName": { - "id": 815, + "id": 823, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4755:5:2", + "src": "4789:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -18071,40 +18384,40 @@ "visibility": "internal" } ], - "src": "4754:19:2" + "src": "4788:19:2" }, "returnParameters": { - "id": 818, + "id": 826, "nodeType": "ParameterList", "parameters": [], - "src": "4782:0:2" + "src": "4816:0:2" }, - "scope": 1173, - "src": "4734:1411:2", + "scope": 1181, + "src": "4768:1373:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 980, + "id": 988, "nodeType": "Block", - "src": "6266:791:2", + "src": "6262:791:2", "statements": [ { "assignments": [ - 953 + 961 ], "declarations": [ { "constant": false, - "id": 953, + "id": 961, "mutability": "mutable", "name": "targetBytes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 980, - "src": "6444:19:2", + "scope": 988, + "src": "6440:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18112,10 +18425,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 952, + "id": 960, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6444:7:2", + "src": "6440:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -18125,18 +18438,18 @@ "visibility": "internal" } ], - "id": 958, + "id": 966, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 956, + "id": 964, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, - "src": "6474:18:2", + "src": "6470:18:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18150,29 +18463,29 @@ "typeString": "address" } ], - "id": 955, + "id": 963, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6466:7:2", + "src": "6462:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 954, + "id": 962, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6466:7:2", + "src": "6462:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 957, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -18180,7 +18493,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6466:27:2", + "src": "6462:27:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -18188,22 +18501,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6444:49:2" + "src": "6440:49:2" }, { "AST": { "nodeType": "YulBlock", - "src": "6512:341:2", + "src": "6508:341:2", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6526:24:2", + "src": "6522:24:2", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6545:4:2", + "src": "6541:4:2", "type": "", "value": "0x40" } @@ -18211,16 +18524,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "6539:5:2" + "src": "6535:5:2" }, "nodeType": "YulFunctionCall", - "src": "6539:11:2" + "src": "6535:11:2" }, "variables": [ { "name": "clone", "nodeType": "YulTypedName", - "src": "6530:5:2", + "src": "6526:5:2", "type": "" } ] @@ -18231,12 +18544,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6570:5:2" + "src": "6566:5:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6577:66:2", + "src": "6573:66:2", "type": "", "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" } @@ -18244,13 +18557,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6563:6:2" + "src": "6559:6:2" }, "nodeType": "YulFunctionCall", - "src": "6563:81:2" + "src": "6559:81:2" }, "nodeType": "YulExpressionStatement", - "src": "6563:81:2" + "src": "6559:81:2" }, { "expression": { @@ -18260,12 +18573,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6668:5:2" + "src": "6664:5:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6675:4:2", + "src": "6671:4:2", "type": "", "value": "0x14" } @@ -18273,27 +18586,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6664:3:2" + "src": "6660:3:2" }, "nodeType": "YulFunctionCall", - "src": "6664:16:2" + "src": "6660:16:2" }, { "name": "targetBytes", "nodeType": "YulIdentifier", - "src": "6682:11:2" + "src": "6678:11:2" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6657:6:2" + "src": "6653:6:2" }, "nodeType": "YulFunctionCall", - "src": "6657:37:2" + "src": "6653:37:2" }, "nodeType": "YulExpressionStatement", - "src": "6657:37:2" + "src": "6653:37:2" }, { "expression": { @@ -18303,12 +18616,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6718:5:2" + "src": "6714:5:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6725:4:2", + "src": "6721:4:2", "type": "", "value": "0x28" } @@ -18316,15 +18629,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6714:3:2" + "src": "6710:3:2" }, "nodeType": "YulFunctionCall", - "src": "6714:16:2" + "src": "6710:16:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6732:66:2", + "src": "6728:66:2", "type": "", "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" } @@ -18332,35 +18645,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6707:6:2" + "src": "6703:6:2" }, "nodeType": "YulFunctionCall", - "src": "6707:92:2" + "src": "6703:92:2" }, "nodeType": "YulExpressionStatement", - "src": "6707:92:2" + "src": "6703:92:2" }, { "nodeType": "YulAssignment", - "src": "6812:31:2", + "src": "6808:31:2", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6828:1:2", + "src": "6824:1:2", "type": "", "value": "0" }, { "name": "clone", "nodeType": "YulIdentifier", - "src": "6831:5:2" + "src": "6827:5:2" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6838:4:2", + "src": "6834:4:2", "type": "", "value": "0x37" } @@ -18368,16 +18681,16 @@ "functionName": { "name": "create", "nodeType": "YulIdentifier", - "src": "6821:6:2" + "src": "6817:6:2" }, "nodeType": "YulFunctionCall", - "src": "6821:22:2" + "src": "6817:22:2" }, "variableNames": [ { "name": "asset", "nodeType": "YulIdentifier", - "src": "6812:5:2" + "src": "6808:5:2" } ] } @@ -18386,23 +18699,23 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 950, + "declaration": 958, "isOffset": false, "isSlot": false, - "src": "6812:5:2", + "src": "6808:5:2", "valueSize": 1 }, { - "declaration": 953, + "declaration": 961, "isOffset": false, "isSlot": false, - "src": "6682:11:2", + "src": "6678:11:2", "valueSize": 1 } ], - "id": 959, + "id": 967, "nodeType": "InlineAssembly", - "src": "6503:350:2" + "src": "6499:350:2" }, { "expression": { @@ -18410,12 +18723,12 @@ "arguments": [ { "argumentTypes": null, - "id": 964, + "id": 972, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, - "src": "6922:11:2", + "referencedDeclaration": 953, + "src": "6918:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -18423,12 +18736,12 @@ }, { "argumentTypes": null, - "id": 965, + "id": 973, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 947, - "src": "6935:13:2", + "referencedDeclaration": 955, + "src": "6931:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18451,12 +18764,12 @@ "arguments": [ { "argumentTypes": null, - "id": 961, + "id": 969, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "6904:5:2", + "referencedDeclaration": 958, + "src": "6900:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18470,18 +18783,18 @@ "typeString": "address" } ], - "id": 960, + "id": 968, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "6891:12:2", + "referencedDeclaration": 1736, + "src": "6887:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 962, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, @@ -18489,28 +18802,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6891:19:2", + "src": "6887:19:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", + "typeIdentifier": "t_contract$_WrappedAsset_$1736", "typeString": "contract WrappedAsset" } }, - "id": 963, + "id": 971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "initialize", "nodeType": "MemberAccess", - "referencedDeclaration": 1245, - "src": "6891:30:2", + "referencedDeclaration": 1253, + "src": "6887:30:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$returns$__$", "typeString": "function (uint8,bytes32) external" } }, - "id": 966, + "id": 974, "isConstant": false, "isLValue": false, "isPure": false, @@ -18518,21 +18831,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6891:58:2", + "src": "6887:58:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 967, + "id": 975, "nodeType": "ExpressionStatement", - "src": "6891:58:2" + "src": "6887:58:2" }, { "expression": { "argumentTypes": null, - "id": 972, + "id": 980, "isConstant": false, "isLValue": false, "isPure": false, @@ -18541,26 +18854,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 968, + "id": 976, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "6985:13:2", + "referencedDeclaration": 522, + "src": "6981:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 970, + "id": 978, "indexExpression": { "argumentTypes": null, - "id": 969, + "id": 977, "name": "seed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "6999:4:2", + "referencedDeclaration": 951, + "src": "6995:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18571,7 +18884,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6985:19:2", + "src": "6981:19:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18581,31 +18894,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 971, + "id": 979, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "7007:5:2", + "referencedDeclaration": 958, + "src": "7003:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6985:27:2", + "src": "6981:27:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 973, + "id": 981, "nodeType": "ExpressionStatement", - "src": "6985:27:2" + "src": "6981:27:2" }, { "expression": { "argumentTypes": null, - "id": 978, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -18614,26 +18927,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 974, + "id": 982, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 536, - "src": "7022:14:2", + "referencedDeclaration": 526, + "src": "7018:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 976, + "id": 984, "indexExpression": { "argumentTypes": null, - "id": 975, + "id": 983, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 950, - "src": "7037:5:2", + "referencedDeclaration": 958, + "src": "7033:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18644,7 +18957,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7022:21:2", + "src": "7018:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18655,14 +18968,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 977, + "id": 985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7046:4:2", + "src": "7042:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -18670,20 +18983,20 @@ }, "value": "true" }, - "src": "7022:28:2", + "src": "7018:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 979, + "id": 987, "nodeType": "ExpressionStatement", - "src": "7022:28:2" + "src": "7018:28:2" } ] }, "documentation": null, - "id": 981, + "id": 989, "implemented": true, "kind": "function", "modifiers": [], @@ -18691,18 +19004,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 948, + "id": 956, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 943, + "id": 951, "mutability": "mutable", "name": "seed", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 981, - "src": "6179:12:2", + "scope": 989, + "src": "6175:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18710,10 +19023,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 942, + "id": 950, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6179:7:2", + "src": "6175:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18724,13 +19037,13 @@ }, { "constant": false, - "id": 945, + "id": 953, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 981, - "src": "6193:17:2", + "scope": 989, + "src": "6189:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18738,10 +19051,10 @@ "typeString": "uint8" }, "typeName": { - "id": 944, + "id": 952, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6193:5:2", + "src": "6189:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -18752,13 +19065,13 @@ }, { "constant": false, - "id": 947, + "id": 955, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 981, - "src": "6212:21:2", + "scope": 989, + "src": "6208:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18766,10 +19079,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 946, + "id": 954, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6212:7:2", + "src": "6208:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18779,21 +19092,21 @@ "visibility": "internal" } ], - "src": "6178:56:2" + "src": "6174:56:2" }, "returnParameters": { - "id": 951, + "id": 959, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 950, + "id": 958, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 981, - "src": "6252:13:2", + "scope": 989, + "src": "6248:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18801,10 +19114,10 @@ "typeString": "address" }, "typeName": { - "id": 949, + "id": 957, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6252:7:2", + "src": "6248:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18815,19 +19128,19 @@ "visibility": "internal" } ], - "src": "6251:15:2" + "src": "6247:15:2" }, - "scope": 1173, - "src": "6151:906:2", + "scope": 1181, + "src": "6147:906:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 1107, + "id": 1115, "nodeType": "Block", - "src": "7198:1027:2", + "src": "7194:1027:2", "statements": [ { "expression": { @@ -18839,19 +19152,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 995, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 993, + "id": 1001, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "7216:6:2", + "referencedDeclaration": 993, + "src": "7212:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18862,14 +19175,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 994, + "id": 1002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7226:1:2", + "src": "7222:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18877,7 +19190,7 @@ }, "value": "0" }, - "src": "7216:11:2", + "src": "7212:11:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18886,14 +19199,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 996, + "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7229:22:2", + "src": "7225:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -18913,7 +19226,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 992, + "id": 1000, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -18921,13 +19234,13 @@ -18 ], "referencedDeclaration": -18, - "src": "7208:7:2", + "src": "7204:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 997, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, @@ -18935,31 +19248,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7208:44:2", + "src": "7204:44:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 998, + "id": 1006, "nodeType": "ExpressionStatement", - "src": "7208:44:2" + "src": "7204:44:2" }, { "assignments": [ - 1000 + 1008 ], "declarations": [ { "constant": false, - "id": 1000, + "id": 1008, "mutability": "mutable", "name": "asset_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1107, - "src": "7263:17:2", + "scope": 1115, + "src": "7259:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18967,10 +19280,10 @@ "typeString": "uint8" }, "typeName": { - "id": 999, + "id": 1007, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7263:5:2", + "src": "7259:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -18980,37 +19293,37 @@ "visibility": "internal" } ], - "id": 1002, + "id": 1010, "initialValue": { "argumentTypes": null, - "id": 1001, + "id": 1009, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 476, - "src": "7283:8:2", + "src": "7279:8:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "7263:28:2" + "src": "7259:28:2" }, { "assignments": [ - 1004 + 1012 ], "declarations": [ { "constant": false, - "id": 1004, + "id": 1012, "mutability": "mutable", "name": "asset_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1107, - "src": "7301:21:2", + "scope": 1115, + "src": "7297:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19018,10 +19331,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1003, + "id": 1011, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7301:7:2", + "src": "7297:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19031,36 +19344,36 @@ "visibility": "internal" } ], - "id": 1005, + "id": 1013, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "7301:21:2" + "src": "7297:21:2" }, { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1006, + "id": 1014, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 536, - "src": "7336:14:2", + "referencedDeclaration": 526, + "src": "7332:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1008, + "id": 1016, "indexExpression": { "argumentTypes": null, - "id": 1007, + "id": 1015, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7351:5:2", + "referencedDeclaration": 991, + "src": "7347:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19071,31 +19384,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7336:21:2", + "src": "7332:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1089, + "id": 1097, "nodeType": "Block", - "src": "7558:539:2", + "src": "7554:539:2", "statements": [ { "assignments": [ - 1036 + 1044 ], "declarations": [ { "constant": false, - "id": 1036, + "id": 1044, "mutability": "mutable", "name": "balanceBefore", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1089, - "src": "7572:21:2", + "scope": 1097, + "src": "7568:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19103,10 +19416,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1035, + "id": 1043, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7572:7:2", + "src": "7568:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19116,7 +19429,7 @@ "visibility": "internal" } ], - "id": 1046, + "id": 1054, "initialValue": { "argumentTypes": null, "arguments": [ @@ -19125,14 +19438,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1043, + "id": 1051, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "7628:4:2", + "src": "7624:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1173", + "typeIdentifier": "t_contract$_Wormhole_$1181", "typeString": "contract Wormhole" } } @@ -19140,33 +19453,33 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1173", + "typeIdentifier": "t_contract$_Wormhole_$1181", "typeString": "contract Wormhole" } ], - "id": 1042, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7620:7:2", + "src": "7616:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1041, + "id": 1049, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7620:7:2", + "src": "7616:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1044, + "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, @@ -19174,7 +19487,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7620:13:2", + "src": "7616:13:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -19194,12 +19507,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1038, + "id": 1046, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7603:5:2", + "referencedDeclaration": 991, + "src": "7599:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19213,18 +19526,18 @@ "typeString": "address" } ], - "id": 1037, + "id": 1045, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2025, - "src": "7596:6:2", + "referencedDeclaration": 2033, + "src": "7592:6:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2025_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", "typeString": "type(contract IERC20)" } }, - "id": 1039, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -19232,28 +19545,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7596:13:2", + "src": "7592:13:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } }, - "id": 1040, + "id": 1048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1964, - "src": "7596:23:2", + "referencedDeclaration": 1972, + "src": "7592:23:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1045, + "id": 1053, "isConstant": false, "isLValue": false, "isPure": false, @@ -19261,7 +19574,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7596:38:2", + "src": "7592:38:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19269,7 +19582,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7572:62:2" + "src": "7568:62:2" }, { "expression": { @@ -19279,18 +19592,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1051, + "id": 1059, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7679:3:2", + "src": "7675:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1052, + "id": 1060, "isConstant": false, "isLValue": false, "isPure": false, @@ -19298,325 +19611,56 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7679:10:2", + "src": "7675:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1055, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7699:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1173", - "typeString": "contract Wormhole" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Wormhole_$1173", - "typeString": "contract Wormhole" - } - ], - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7691:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1053, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7691:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7691:13:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1057, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "7706:6:2", - "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": 1048, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7655:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1047, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2025, - "src": "7648:6:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2025_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7648:13:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", - "typeString": "contract IERC20" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 2084, - "src": "7648:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2025_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2025_$", - "typeString": "function (contract IERC20,address,address,uint256)" - } - }, - "id": 1058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7648:65:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1059, - "nodeType": "ExpressionStatement", - "src": "7648:65:2" - }, - { - "assignments": [ - 1061 - ], - "declarations": [ - { - "constant": false, - "id": 1061, - "mutability": "mutable", - "name": "balanceAfter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1089, - "src": "7727:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1060, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7727:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1071, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1068, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7782:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1173", - "typeString": "contract Wormhole" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Wormhole_$1173", - "typeString": "contract Wormhole" - } - ], - "id": 1067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7774:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1066, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7774:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7774:13:2", - "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": 1063, - "name": "asset", + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7757:5:2", + "referencedDeclaration": -28, + "src": "7695:4:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeString": "contract Wormhole" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeString": "contract Wormhole" } ], "id": 1062, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2025, - "src": "7750:6:2", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7687:7:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2025_$", - "typeString": "type(contract IERC20)" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7687:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } } }, "id": 1064, @@ -19627,28 +19671,107 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7750:13:2", + "src": "7687:13:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1065, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 993, + "src": "7702:6:2", + "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": 1056, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "7651:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1055, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "7644:6:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7644:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } }, - "id": 1065, + "id": 1058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "balanceOf", + "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 1964, - "src": "7750:23:2", + "referencedDeclaration": 2092, + "src": "7644:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2033_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2033_$", + "typeString": "function (contract IERC20,address,address,uint256)" } }, - "id": 1070, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": false, @@ -19656,7 +19779,197 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7750:38:2", + "src": "7644:65:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1067, + "nodeType": "ExpressionStatement", + "src": "7644:65:2" + }, + { + "assignments": [ + 1069 + ], + "declarations": [ + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "balanceAfter", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1097, + "src": "7723:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7723:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1079, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1076, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7778:4:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeString": "contract Wormhole" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeString": "contract Wormhole" + } + ], + "id": 1075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7770:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1074, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7770:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7770:13:2", + "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": 1071, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "7753:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1070, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "7746:6:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7746:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$2033", + "typeString": "contract IERC20" + } + }, + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1972, + "src": "7746:23:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7746:38:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19664,24 +19977,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7727:61:2" + "src": "7723:61:2" }, { "expression": { "argumentTypes": null, - "id": 1077, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1072, + "id": 1080, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "7993:6:2", + "referencedDeclaration": 993, + "src": "7989:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19694,12 +20007,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1075, + "id": 1083, "name": "balanceBefore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "8019:13:2", + "referencedDeclaration": 1044, + "src": "8015:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19715,32 +20028,32 @@ ], "expression": { "argumentTypes": null, - "id": 1073, + "id": 1081, "name": "balanceAfter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "8002:12:2", + "referencedDeclaration": 1069, + "src": "7998:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1074, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1797, - "src": "8002:16:2", + "referencedDeclaration": 1805, + "src": "7998: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": 1076, + "id": 1084, "isConstant": false, "isLValue": false, "isPure": false, @@ -19748,39 +20061,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8002:31:2", + "src": "7998:31:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7993:40:2", + "src": "7989:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1078, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "7993:40:2" + "src": "7989:40:2" }, { "expression": { "argumentTypes": null, - "id": 1087, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1079, + "id": 1087, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1004, - "src": "8047:13:2", + "referencedDeclaration": 1012, + "src": "8043:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19796,12 +20109,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1084, + "id": 1092, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "8079:5:2", + "referencedDeclaration": 991, + "src": "8075:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19815,29 +20128,29 @@ "typeString": "address" } ], - "id": 1083, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8071:7:2", + "src": "8067:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1082, + "id": 1090, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8071:7:2", + "src": "8067:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1085, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, @@ -19845,7 +20158,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8071:14:2", + "src": "8067:14:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19860,29 +20173,29 @@ "typeString": "uint256" } ], - "id": 1081, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8063:7:2", + "src": "8059:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1080, + "id": 1088, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8063:7:2", + "src": "8059:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1086, + "id": 1094, "isConstant": false, "isLValue": false, "isPure": false, @@ -19890,32 +20203,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8063:23:2", + "src": "8059:23:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8047:39:2", + "src": "8043:39:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1088, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "8047:39:2" + "src": "8043:39:2" } ] }, - "id": 1090, + "id": 1098, "nodeType": "IfStatement", - "src": "7332:765:2", + "src": "7328:765:2", "trueBody": { - "id": 1034, + "id": 1042, "nodeType": "Block", - "src": "7359:193:2", + "src": "7355:193:2", "statements": [ { "expression": { @@ -19925,18 +20238,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1013, + "id": 1021, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7398:3:2", + "src": "7394:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1014, + "id": 1022, "isConstant": false, "isLValue": false, "isPure": false, @@ -19944,7 +20257,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7398:10:2", + "src": "7394:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -19952,12 +20265,12 @@ }, { "argumentTypes": null, - "id": 1015, + "id": 1023, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "7410:6:2", + "referencedDeclaration": 993, + "src": "7406:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19980,12 +20293,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1010, + "id": 1018, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7386:5:2", + "referencedDeclaration": 991, + "src": "7382:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19999,18 +20312,18 @@ "typeString": "address" } ], - "id": 1009, + "id": 1017, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7373:12:2", + "referencedDeclaration": 1736, + "src": "7369:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1011, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -20018,28 +20331,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7373:19:2", + "src": "7369:19:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", + "typeIdentifier": "t_contract$_WrappedAsset_$1736", "typeString": "contract WrappedAsset" } }, - "id": 1012, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "burn", "nodeType": "MemberAccess", - "referencedDeclaration": 1287, - "src": "7373:24:2", + "referencedDeclaration": 1295, + "src": "7369:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 1016, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, @@ -20047,133 +20360,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7373:44:2", + "src": "7369:44:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1017, - "nodeType": "ExpressionStatement", - "src": "7373:44:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1018, - "name": "asset_chain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "7431:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1020, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7458:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1019, - "name": "WrappedAsset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7445:12:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", - "typeString": "type(contract WrappedAsset)" - } - }, - "id": 1021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7445:19:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", - "typeString": "contract WrappedAsset" - } - }, - "id": 1022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "assetChain", - "nodeType": "MemberAccess", - "referencedDeclaration": 1196, - "src": "7445:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 1023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7445:32:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "7431:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, "id": 1025, "nodeType": "ExpressionStatement", - "src": "7431:46:2" + "src": "7369:44:2" }, { "expression": { @@ -20186,14 +20382,14 @@ "leftHandSide": { "argumentTypes": null, "id": 1026, - "name": "asset_address", + "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1004, - "src": "7491:13:2", + "referencedDeclaration": 1008, + "src": "7427:11:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "nodeType": "Assignment", @@ -20212,8 +20408,8 @@ "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "7520:5:2", + "referencedDeclaration": 991, + "src": "7454:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20231,10 +20427,10 @@ "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "7507:12:2", + "referencedDeclaration": 1736, + "src": "7441:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1728_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", "typeString": "type(contract WrappedAsset)" } }, @@ -20246,10 +20442,10 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7507:19:2", + "src": "7441:19:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1728", + "typeIdentifier": "t_contract$_WrappedAsset_$1736", "typeString": "contract WrappedAsset" } }, @@ -20258,13 +20454,13 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "assetAddress", + "memberName": "assetChain", "nodeType": "MemberAccess", - "referencedDeclaration": 1198, - "src": "7507:32:2", + "referencedDeclaration": 1204, + "src": "7441:30:2", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", - "typeString": "function () view external returns (bytes32)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, "id": 1031, @@ -20275,22 +20471,139 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7507:34:2", + "src": "7441:32:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7427:46:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1033, + "nodeType": "ExpressionStatement", + "src": "7427:46:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1034, + "name": "asset_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1012, + "src": "7487:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1036, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 991, + "src": "7516:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1035, + "name": "WrappedAsset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "7503:12:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeString": "type(contract WrappedAsset)" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7503:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeString": "contract WrappedAsset" + } + }, + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "assetAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1206, + "src": "7503:32:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", + "typeString": "function () view external returns (bytes32)" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7503:34:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7491:50:2", + "src": "7487:50:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1033, + "id": 1041, "nodeType": "ExpressionStatement", - "src": "7491:50:2" + "src": "7487:50:2" } ] } @@ -20301,12 +20614,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1092, + "id": 1100, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "8128:12:2", + "referencedDeclaration": 997, + "src": "8124:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20314,12 +20627,12 @@ }, { "argumentTypes": null, - "id": 1093, + "id": 1101, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "8142:11:2", + "referencedDeclaration": 1008, + "src": "8138:11:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20327,25 +20640,12 @@ }, { "argumentTypes": null, - "id": 1094, + "id": 1102, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1004, - "src": "8155:13:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1095, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "8170:9:2", + "referencedDeclaration": 1012, + "src": "8151:13:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20361,18 +20661,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1100, + "id": 1107, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8197:3:2", + "src": "8182:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1101, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": false, @@ -20380,7 +20680,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8197:10:2", + "src": "8182:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -20394,29 +20694,29 @@ "typeString": "address payable" } ], - "id": 1099, + "id": 1106, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8189:7:2", + "src": "8174:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1098, + "id": 1105, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8189:7:2", + "src": "8174:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1102, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, @@ -20424,7 +20724,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8189:19:2", + "src": "8174:19:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20439,29 +20739,29 @@ "typeString": "uint256" } ], - "id": 1097, + "id": 1104, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8181:7:2", + "src": "8166:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1096, + "id": 1103, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8181:7:2", + "src": "8166:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1103, + "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, @@ -20469,7 +20769,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8181:28:2", + "src": "8166:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -20478,12 +20778,25 @@ }, { "argumentTypes": null, - "id": 1104, + "id": 1111, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 995, + "src": "8196:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1112, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "8211:6:2", + "referencedDeclaration": 993, + "src": "8207:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20517,18 +20830,18 @@ "typeString": "uint256" } ], - "id": 1091, + "id": 1099, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 506, - "src": "8112:15:2", + "src": "8108:15:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256)" } }, - "id": 1105, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, @@ -20536,22 +20849,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8112:106:2", + "src": "8108:106:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1106, + "id": 1114, "nodeType": "EmitStatement", - "src": "8107:111:2" + "src": "8103:111:2" } ] }, "documentation": null, "functionSelector": "e66fd373", - "id": 1108, + "id": 1116, "implemented": true, "kind": "function", "modifiers": [], @@ -20559,18 +20872,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 990, + "id": 998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 983, + "id": 991, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1108, - "src": "7092:13:2", + "scope": 1116, + "src": "7088:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20578,10 +20891,10 @@ "typeString": "address" }, "typeName": { - "id": 982, + "id": 990, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7092:7:2", + "src": "7088:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20593,13 +20906,13 @@ }, { "constant": false, - "id": 985, + "id": 993, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1108, - "src": "7115:14:2", + "scope": 1116, + "src": "7111:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20607,10 +20920,10 @@ "typeString": "uint256" }, "typeName": { - "id": 984, + "id": 992, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7115:7:2", + "src": "7111:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20621,13 +20934,13 @@ }, { "constant": false, - "id": 987, + "id": 995, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1108, - "src": "7139:17:2", + "scope": 1116, + "src": "7135:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20635,10 +20948,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 986, + "id": 994, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7139:7:2", + "src": "7135:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20649,13 +20962,13 @@ }, { "constant": false, - "id": 989, + "id": 997, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1108, - "src": "7166:18:2", + "scope": 1116, + "src": "7162:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20663,10 +20976,10 @@ "typeString": "uint8" }, "typeName": { - "id": 988, + "id": 996, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7166:5:2", + "src": "7162:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20676,25 +20989,25 @@ "visibility": "internal" } ], - "src": "7082:108:2" + "src": "7078:108:2" }, "returnParameters": { - "id": 991, + "id": 999, "nodeType": "ParameterList", "parameters": [], - "src": "7198:0:2" + "src": "7194:0:2" }, - "scope": 1173, - "src": "7063:1162:2", + "scope": 1181, + "src": "7059:1162:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1155, + "id": 1163, "nodeType": "Block", - "src": "8324:323:2", + "src": "8320:323:2", "statements": [ { "expression": { @@ -20706,7 +21019,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1119, + "id": 1127, "isConstant": false, "isLValue": false, "isPure": false, @@ -20715,18 +21028,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1116, + "id": 1124, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8342:3:2", + "src": "8338:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1117, + "id": 1125, "isConstant": false, "isLValue": false, "isPure": false, @@ -20734,7 +21047,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8342:9:2", + "src": "8338:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20745,14 +21058,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1118, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8355:1:2", + "src": "8351:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -20760,7 +21073,7 @@ }, "value": "0" }, - "src": "8342:14:2", + "src": "8338:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20769,14 +21082,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 1120, + "id": 1128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8358:22:2", + "src": "8354:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -20796,7 +21109,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 1115, + "id": 1123, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -20804,13 +21117,13 @@ -18 ], "referencedDeclaration": -18, - "src": "8334:7:2", + "src": "8330:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1121, + "id": 1129, "isConstant": false, "isLValue": false, "isPure": false, @@ -20818,16 +21131,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8334:47:2", + "src": "8330:47:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1122, + "id": 1130, "nodeType": "ExpressionStatement", - "src": "8334:47:2" + "src": "8330:47:2" }, { "expression": { @@ -20842,12 +21155,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1124, + "id": 1132, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 479, - "src": "8430:11:2", + "src": "8426:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20861,18 +21174,18 @@ "typeString": "address" } ], - "id": 1123, + "id": 1131, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1184, - "src": "8425:4:2", + "referencedDeclaration": 1192, + "src": "8421:4:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WETH_$1184_$", + "typeIdentifier": "t_type$_t_contract$_WETH_$1192_$", "typeString": "type(contract WETH)" } }, - "id": 1125, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": true, @@ -20880,28 +21193,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8425:17:2", + "src": "8421:17:2", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WETH_$1184", + "typeIdentifier": "t_contract$_WETH_$1192", "typeString": "contract WETH" } }, - "id": 1126, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": 1178, - "src": "8425:25:2", + "referencedDeclaration": 1186, + "src": "8421:25:2", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, - "id": 1129, + "id": 1137, "isConstant": false, "isLValue": false, "isPure": false, @@ -20915,18 +21228,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1127, + "id": 1135, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8459:3:2", + "src": "8455:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1128, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, @@ -20934,20 +21247,20 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8459:9:2", + "src": "8455:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "8425:44:2", + "src": "8421:44:2", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 1130, + "id": 1138, "isConstant": false, "isLValue": false, "isPure": false, @@ -20955,16 +21268,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8425:46:2", + "src": "8421:46:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1131, + "id": 1139, "nodeType": "ExpressionStatement", - "src": "8425:46:2" + "src": "8421:46:2" }, { "eventCall": { @@ -20972,150 +21285,28 @@ "arguments": [ { "argumentTypes": null, - "id": 1133, + "id": 1141, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "8534:12:2", + "referencedDeclaration": 1120, + "src": "8530:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - { - "argumentTypes": null, - "id": 1134, - "name": "CHAIN_ID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "8548:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1139, - "name": "WETHAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 479, - "src": "8574:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8566:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1137, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8566:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8566:20:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8558:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 1135, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8558:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8558:29:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, { "argumentTypes": null, "id": 1142, - "name": "recipient", + "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "8589:9:2", + "referencedDeclaration": 476, + "src": "8544:8:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, { @@ -21126,39 +21317,23 @@ "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1147, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8616:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8616:10:2", + "id": 1147, + "name": "WETHAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "8570:11:2", "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" + "typeIdentifier": "t_address", + "typeString": "address" } ], "id": 1146, @@ -21167,7 +21342,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8608:7:2", + "src": "8562:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" @@ -21176,22 +21351,22 @@ "id": 1145, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8608:7:2", + "src": "8562:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1149, + "id": 1148, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8608:19:2", + "src": "8562:20:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21212,7 +21387,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8600:7:2", + "src": "8554:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" @@ -21221,14 +21396,139 @@ "id": 1143, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8600:7:2", + "src": "8554:7:2", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1150, + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8554:29:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1154, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8601:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8601:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8593:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8593:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8593:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8585:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1150, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8585:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": false, @@ -21236,29 +21536,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8600:28:2", + "src": "8585:28:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, + { + "argumentTypes": null, + "id": 1158, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "8615:9:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1151, + "id": 1159, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8630:3:2", + "src": "8626:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1152, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -21266,7 +21579,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8630:9:2", + "src": "8626:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21300,172 +21613,17 @@ "typeString": "uint256" } ], - "id": 1132, + "id": 1140, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 506, - "src": "8518:15:2", + "src": "8514:15:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256)" } }, - "id": 1153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8518:122:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1154, - "nodeType": "EmitStatement", - "src": "8513:127:2" - } - ] - }, - "documentation": null, - "functionSelector": "780e2183", - "id": 1156, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "lockETH", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1113, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1110, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1156, - "src": "8257:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1109, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8257:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1112, - "mutability": "mutable", - "name": "target_chain", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1156, - "src": "8284:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1111, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "8284:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8247:61:2" - }, - "returnParameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [], - "src": "8324:0:2" - }, - "scope": 1173, - "src": "8231:416:2", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1163, - "nodeType": "Block", - "src": "8678:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1160, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8686:46:2", - "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": 1159, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -19, - -19 - ], - "referencedDeclaration": -19, - "src": "8679:6:2", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, "id": 1161, "isConstant": false, "isLValue": false, @@ -21474,7 +21632,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8679:54:2", + "src": "8514:122:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -21482,42 +21640,100 @@ } }, "id": 1162, - "nodeType": "ExpressionStatement", - "src": "8679:54:2" + "nodeType": "EmitStatement", + "src": "8509:127:2" } ] }, "documentation": null, + "functionSelector": "780e2183", "id": 1164, "implemented": true, - "kind": "fallback", + "kind": "function", "modifiers": [], - "name": "", + "name": "lockETH", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1157, + "id": 1121, "nodeType": "ParameterList", - "parameters": [], - "src": "8658:2:2" + "parameters": [ + { + "constant": false, + "id": 1118, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1164, + "src": "8253:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8253:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "target_chain", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1164, + "src": "8280:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1119, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "8280:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8243:61:2" }, "returnParameters": { - "id": 1158, + "id": 1122, "nodeType": "ParameterList", "parameters": [], - "src": "8678:0:2" + "src": "8320:0:2" }, - "scope": 1173, - "src": "8650:85:2", + "scope": 1181, + "src": "8227:416:2", "stateMutability": "payable", "virtual": false, - "visibility": "external" + "visibility": "public" }, { "body": { "id": 1171, "nodeType": "Block", - "src": "8763:57:2", + "src": "8674:57:2", "statements": [ { "expression": { @@ -21533,7 +21749,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8771:46:2", + "src": "8682:46:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -21557,7 +21773,7 @@ -19 ], "referencedDeclaration": -19, - "src": "8764:6:2", + "src": "8675:6:2", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" @@ -21571,7 +21787,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8764:54:2", + "src": "8675:54:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -21580,14 +21796,14 @@ }, "id": 1170, "nodeType": "ExpressionStatement", - "src": "8764:54:2" + "src": "8675:54:2" } ] }, "documentation": null, "id": 1172, "implemented": true, - "kind": "receive", + "kind": "fallback", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", @@ -21596,23 +21812,120 @@ "id": 1165, "nodeType": "ParameterList", "parameters": [], - "src": "8743:2:2" + "src": "8654:2:2" }, "returnParameters": { "id": 1166, "nodeType": "ParameterList", "parameters": [], - "src": "8763:0:2" + "src": "8674:0:2" }, - "scope": 1173, - "src": "8736:84:2", + "scope": 1181, + "src": "8646:85:2", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1179, + "nodeType": "Block", + "src": "8759:57:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8767:46:2", + "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": 1175, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "8760:6:2", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8760:54:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1178, + "nodeType": "ExpressionStatement", + "src": "8760:54:2" + } + ] + }, + "documentation": null, + "id": 1180, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1173, + "nodeType": "ParameterList", + "parameters": [], + "src": "8739:2:2" + }, + "returnParameters": { + "id": 1174, + "nodeType": "ParameterList", + "parameters": [], + "src": "8759:0:2" + }, + "scope": 1181, + "src": "8732:84:2", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 1185, - "src": "380:8442:2" + "scope": 1193, + "src": "380:8438:2" }, { "abstract": false, @@ -21621,31 +21934,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1174, + "id": 1182, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2025, - "src": "8843:6:2", + "referencedDeclaration": 2033, + "src": "8839:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2025", + "typeIdentifier": "t_contract$_IERC20_$2033", "typeString": "contract IERC20" } }, - "id": 1175, + "id": 1183, "nodeType": "InheritanceSpecifier", - "src": "8843:6:2" + "src": "8839:6:2" } ], "contractDependencies": [ - 2025 + 2033 ], "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 1184, + "id": 1192, "linearizedBaseContracts": [ - 1184, - 2025 + 1192, + 2033 ], "name": "WETH", "nodeType": "ContractDefinition", @@ -21654,7 +21967,7 @@ "body": null, "documentation": null, "functionSelector": "d0e30db0", - "id": 1178, + "id": 1186, "implemented": false, "kind": "function", "modifiers": [], @@ -21662,19 +21975,19 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1176, + "id": 1184, "nodeType": "ParameterList", "parameters": [], - "src": "8868:2:2" + "src": "8864:2:2" }, "returnParameters": { - "id": 1177, + "id": 1185, "nodeType": "ParameterList", "parameters": [], - "src": "8887:0:2" + "src": "8883:0:2" }, - "scope": 1184, - "src": "8852:36:2", + "scope": 1192, + "src": "8848:36:2", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -21683,7 +21996,7 @@ "body": null, "documentation": null, "functionSelector": "2e1a7d4d", - "id": 1183, + "id": 1191, "implemented": false, "kind": "function", "modifiers": [], @@ -21691,18 +22004,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1181, + "id": 1189, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1180, + "id": 1188, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1183, - "src": "8908:14:2", + "scope": 1191, + "src": "8904:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21710,10 +22023,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1179, + "id": 1187, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8908:7:2", + "src": "8904:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21723,26 +22036,26 @@ "visibility": "internal" } ], - "src": "8907:16:2" + "src": "8903:16:2" }, "returnParameters": { - "id": 1182, + "id": 1190, "nodeType": "ParameterList", "parameters": [], - "src": "8932:0:2" + "src": "8928:0:2" }, - "scope": 1184, - "src": "8890:43:2", + "scope": 1192, + "src": "8886:43:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1185, - "src": "8825:110:2" + "scope": 1193, + "src": "8821:110:2" } ], - "src": "64:8872:2" + "src": "64:8868:2" }, "compiler": { "name": "solc", @@ -21750,7 +22063,7 @@ }, "networks": {}, "schemaVersion": "3.2.3", - "updatedAt": "2020-08-06T18:00:08.723Z", + "updatedAt": "2020-08-09T18:58:34.074Z", "devdoc": { "kind": "dev", "methods": {}, diff --git a/web/src/contracts/Wormhole.d.ts b/web/src/contracts/Wormhole.d.ts index ddf6b4f4c..aaa2d85f9 100644 --- a/web/src/contracts/Wormhole.d.ts +++ b/web/src/contracts/Wormhole.d.ts @@ -14,10 +14,18 @@ interface WormholeInterface extends Interface { functions: { guardian_set_index: TypedFunctionDescription<{ encode([]: []): string }>; + guardian_sets: TypedFunctionDescription<{ + encode([]: [BigNumberish]): string; + }>; + + isWrappedAsset: TypedFunctionDescription<{ encode([]: [string]): string }>; + vaa_expiry: TypedFunctionDescription<{ encode([]: []): string }>; wrappedAssetMaster: TypedFunctionDescription<{ encode([]: []): string }>; + wrappedAssets: TypedFunctionDescription<{ encode([]: [Arrayish]): string }>; + submitVAA: TypedFunctionDescription<{ encode([vaa]: [Arrayish]): string }>; lockAssets: TypedFunctionDescription<{ @@ -60,15 +68,6 @@ interface WormholeInterface extends Interface { amount ]: [null, null, Arrayish | null, Arrayish | null, null, null]): string[]; }>; - - LogTokensUnlocked: TypedEventDescription<{ - encodeTopics([token, sender, recipient, amount]: [ - string | null, - Arrayish | null, - null, - null - ]): string[]; - }>; }; } @@ -90,6 +89,40 @@ export class Wormhole extends Contract { "guardian_set_index()"(overrides?: TransactionOverrides): Promise; + guardian_sets( + arg0: BigNumberish, + overrides?: TransactionOverrides + ): Promise<{ + x: BigNumber; + parity: number; + expiration_time: number; + 0: BigNumber; + 1: number; + 2: number; + }>; + + "guardian_sets(uint32)"( + arg0: BigNumberish, + overrides?: TransactionOverrides + ): Promise<{ + x: BigNumber; + parity: number; + expiration_time: number; + 0: BigNumber; + 1: number; + 2: number; + }>; + + isWrappedAsset( + arg0: string, + overrides?: TransactionOverrides + ): Promise; + + "isWrappedAsset(address)"( + arg0: string, + overrides?: TransactionOverrides + ): Promise; + vaa_expiry(overrides?: TransactionOverrides): Promise; "vaa_expiry()"(overrides?: TransactionOverrides): Promise; @@ -98,6 +131,16 @@ export class Wormhole extends Contract { "wrappedAssetMaster()"(overrides?: TransactionOverrides): Promise; + wrappedAssets( + arg0: Arrayish, + overrides?: TransactionOverrides + ): Promise; + + "wrappedAssets(bytes32)"( + arg0: Arrayish, + overrides?: TransactionOverrides + ): Promise; + submitVAA( vaa: Arrayish, overrides?: TransactionOverrides @@ -141,6 +184,40 @@ export class Wormhole extends Contract { "guardian_set_index()"(overrides?: TransactionOverrides): Promise; + guardian_sets( + arg0: BigNumberish, + overrides?: TransactionOverrides + ): Promise<{ + x: BigNumber; + parity: number; + expiration_time: number; + 0: BigNumber; + 1: number; + 2: number; + }>; + + "guardian_sets(uint32)"( + arg0: BigNumberish, + overrides?: TransactionOverrides + ): Promise<{ + x: BigNumber; + parity: number; + expiration_time: number; + 0: BigNumber; + 1: number; + 2: number; + }>; + + isWrappedAsset( + arg0: string, + overrides?: TransactionOverrides + ): Promise; + + "isWrappedAsset(address)"( + arg0: string, + overrides?: TransactionOverrides + ): Promise; + vaa_expiry(overrides?: TransactionOverrides): Promise; "vaa_expiry()"(overrides?: TransactionOverrides): Promise; @@ -149,6 +226,16 @@ export class Wormhole extends Contract { "wrappedAssetMaster()"(overrides?: TransactionOverrides): Promise; + wrappedAssets( + arg0: Arrayish, + overrides?: TransactionOverrides + ): Promise; + + "wrappedAssets(bytes32)"( + arg0: Arrayish, + overrides?: TransactionOverrides + ): Promise; + submitVAA( vaa: Arrayish, overrides?: TransactionOverrides @@ -209,13 +296,6 @@ export class Wormhole extends Contract { recipient: null, amount: null ): EventFilter; - - LogTokensUnlocked( - token: string | null, - sender: Arrayish | null, - recipient: null, - amount: null - ): EventFilter; }; estimate: { @@ -225,6 +305,26 @@ export class Wormhole extends Contract { 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; + vaa_expiry(overrides?: TransactionOverrides): Promise; "vaa_expiry()"(overrides?: TransactionOverrides): Promise; @@ -235,6 +335,16 @@ export class Wormhole extends Contract { overrides?: TransactionOverrides ): Promise; + wrappedAssets( + arg0: Arrayish, + overrides?: TransactionOverrides + ): Promise; + + "wrappedAssets(bytes32)"( + arg0: Arrayish, + overrides?: TransactionOverrides + ): Promise; + submitVAA( vaa: Arrayish, overrides?: TransactionOverrides diff --git a/web/src/contracts/WormholeFactory.ts b/web/src/contracts/WormholeFactory.ts index 365608088..58af8bc4a 100644 --- a/web/src/contracts/WormholeFactory.ts +++ b/web/src/contracts/WormholeFactory.ts @@ -34,11 +34,13 @@ export class WormholeFactory extends ContractFactory { expiration_time: BigNumberish; }, wrapped_asset_master: string, + _vaa_expiry: BigNumberish, overrides?: TransactionOverrides ): Promise { return super.deploy( initial_guardian_set, wrapped_asset_master, + _vaa_expiry, overrides ) as Promise; } @@ -49,11 +51,13 @@ export class WormholeFactory extends ContractFactory { expiration_time: BigNumberish; }, wrapped_asset_master: string, + _vaa_expiry: BigNumberish, overrides?: TransactionOverrides ): UnsignedTransaction { return super.getDeployTransaction( initial_guardian_set, wrapped_asset_master, + _vaa_expiry, overrides ); } @@ -100,6 +104,11 @@ const _abi = [ internalType: "address", name: "wrapped_asset_master", type: "address" + }, + { + internalType: "uint32", + name: "_vaa_expiry", + type: "uint32" } ], stateMutability: "nonpayable", @@ -201,37 +210,6 @@ const _abi = [ name: "LogTokensLocked", type: "event" }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address" - }, - { - indexed: true, - internalType: "bytes32", - name: "sender", - type: "bytes32" - }, - { - indexed: false, - internalType: "address", - name: "recipient", - type: "address" - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256" - } - ], - name: "LogTokensUnlocked", - type: "event" - }, { stateMutability: "payable", type: "fallback" @@ -249,6 +227,54 @@ const _abi = [ stateMutability: "view", type: "function" }, + { + inputs: [ + { + internalType: "uint32", + name: "", + type: "uint32" + } + ], + name: "guardian_sets", + outputs: [ + { + internalType: "uint256", + name: "x", + type: "uint256" + }, + { + internalType: "uint8", + name: "parity", + type: "uint8" + }, + { + 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: "vaa_expiry", @@ -275,6 +301,25 @@ const _abi = [ 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" @@ -341,7 +386,7 @@ const _abi = [ ]; const _bytecode = - "0x60806040526002600060146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b5060405162002f0438038062002f048339818101604052810190620000539190620001f1565b81600160008063ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff1602179055509050506000600260006101000a81548163ffffffff021916908363ffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000323565b6000815190506200013d81620002bb565b92915050565b6000606082840312156200015657600080fd5b62000162606062000232565b905060006200017484828501620001ac565b60008301525060206200018a84828501620001da565b6020830152506040620001a084828501620001c3565b60408301525092915050565b600081519050620001bd81620002d5565b92915050565b600081519050620001d481620002ef565b92915050565b600081519050620001eb8162000309565b92915050565b600080608083850312156200020557600080fd5b6000620002158582860162000143565b925050606062000228858286016200012c565b9150509250929050565b6000604051905081810181811067ffffffffffffffff821117156200025657600080fd5b8060405250919050565b60006200026d8262000274565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b620002c68162000260565b8114620002d257600080fd5b50565b620002e08162000294565b8114620002ec57600080fd5b50565b620002fa816200029e565b81146200030657600080fd5b50565b6200031481620002ae565b81146200032057600080fd5b50565b612bd180620003336000396000f3fe6080604052600436106100595760003560e01c80633bc0aee6146100d4578063780e2183146100fd5780637f04d9e614610119578063822d82b31461014457806399da1d3c1461016f578063e66fd3731461019a57610099565b36610099576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610090906126d9565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cb906126d9565b60405180910390fd5b3480156100e057600080fd5b506100fb60048036038101906100f69190611dfc565b6101c3565b005b61011760048036038101906101129190611dc0565b61087a565b005b34801561012557600080fd5b5061012e6109cb565b60405161013b91906128cc565b60405180910390f35b34801561015057600080fd5b506101596109e1565b60405161016691906128cc565b60405180910390f35b34801561017b57600080fd5b506101846109f7565b60405161019191906125b8565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611d0b565b610a1b565b005b600061021d600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e1390919063ffffffff16565b905060018160ff1614610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c90612719565b60405180910390fd5b60006102bf600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e7190919063ffffffff16565b9050600061031b600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ecf90919063ffffffff16565b90506000610377602587878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f2d90919063ffffffff16565b905060006103d3603988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e7190919063ffffffff16565b905042600260049054906101000a900463ffffffff16820163ffffffff1610610431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042890612739565b60405180910390fd5b60006104926039808a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f9a9092919063ffffffff16565b8051906020012090506003600082815260200190815260200160002060009054906101000a900460ff16156104fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f3906126b9565b60405180910390fd5b610504611bef565b600160008763ffffffff1663ffffffff168152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816040015163ffffffff16148061059f575042816040015163ffffffff16115b6105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d5906127f9565b60405180910390fd5b73__Schnorr_______________________________63ff51dff282600001518360200151888660001c896040518663ffffffff1660e01b8152600401610628959493929190612879565b60206040518083038186803b15801561064057600080fd5b505af4158015610654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106789190611d6e565b6106b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ae90612759565b60405180910390fd5b6000610711603d8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e1390919063ffffffff16565b9050600061076d603e8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610e1390919063ffffffff16565b905060606107ce603f8360ff168e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f9a9092919063ffffffff16565b905060018360ff1614156107ea576107e58161105c565b610840565b60108360ff161415610804576107ff81611337565b61083f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083690612699565b60405180910390fd5b5b60016003600087815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505050505050565b60003414156108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b5906127b9565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561091a57600080fd5b505af115801561092e573d6000803e3d6000fd5b50505050508173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b83600060149054906101000a900460ff163373ffffffffffffffffffffffffffffffffffffffff1660001b346040516109bf9493929190612910565b60405180910390a35050565b600260049054906101000a900463ffffffff1681565b600260009054906101000a900463ffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000831415610a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a56906127b9565b60405180910390fd5b60008060149054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610c38578573ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401610b019291906125ee565b600060405180830381600087803b158015610b1b57600080fd5b505af1158015610b2f573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb19190611e6a565b91508573ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bf957600080fd5b505afa158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c319190611d97565b9050610db3565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c7391906125d3565b60206040518083038186803b158015610c8b57600080fd5b505afa158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc39190611e41565b9050610cf23330888a73ffffffffffffffffffffffffffffffffffffffff166115ed909392919063ffffffff16565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d2d91906125d3565b60206040518083038186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d9190611e41565b9050610d92828261167690919063ffffffff16565b96508773ffffffffffffffffffffffffffffffffffffffff1660001b925050505b83817f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b85853373ffffffffffffffffffffffffffffffffffffffff1660001b8a604051610e039493929190612910565b60405180910390a3505050505050565b60006001820183511015610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906126f9565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb1906126f9565b60405180910390fd5b60008260048501015190508091505092915050565b60006020820183511015610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f906126f9565b60405180910390fd5b60008260208501015190508091505092915050565b60006014820183511015610f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6d906126f9565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b606081830184511015610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd9906126f9565b60405180910390fd5b6060821560008114610fff57604051915060208201604052611050565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561103d5780518352602083019250602081019050611020565b50868552601f19601f8301166040525050505b50809150509392505050565b6000611072600083610ecf90919063ffffffff16565b9050600061108a602084610ecf90919063ffffffff16565b905060006110a2604085610e7190919063ffffffff16565b9050600260009054906101000a900463ffffffff1663ffffffff168163ffffffff1611611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90612779565b60405180910390fd5b6001807ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141901c01831061116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390612799565b60405180910390fd5b6000600260009054906101000a900463ffffffff16905081600260006101000a81548163ffffffff021916908363ffffffff1602179055506111ac611bef565b6040518060600160405280868152602001600286816111c757fe5b0660ff168152602001600063ffffffff1681525090508060016000600260009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff160217905550905050600260049054906101000a900463ffffffff164201600160008463ffffffff1663ffffffff16815260200190815260200160002060010160016101000a81548163ffffffff021916908363ffffffff160217905550806040516112c79190612556565b6040518091039020600160008463ffffffff1663ffffffff1681526020019081526020016000206040516112fb9190612571565b60405180910390207f776a7721d091beb15fb219d7be3c92b83fa7c10428af15a7312461bc3bc52e0b60405160405180910390a3505050505050565b600061134d600483610e1390919063ffffffff16565b90506000611365600584610e1390919063ffffffff16565b9050600061137d603285610f2d90919063ffffffff16565b90506000611395604686610e1390919063ffffffff16565b905060006113ad606787610ecf90919063ffffffff16565b90508360ff168560ff1614156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612859565b60405180910390fd5b600060149054906101000a900460ff1660ff168460ff161461144f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611446906127d9565b60405180910390fd5b600060149054906101000a900460ff1660ff168260ff16146115a05760006114816047886116c090919063ffffffff16565b90506000838260405160200161149892919061258c565b60405160208183030381529060405280519060200120905060006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561152b5761152882868561171e565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b815260040161156692919061264e565b600060405180830381600087803b15801561158057600080fd5b505af1158015611594573d6000803e3d6000fd5b505050505050506115e5565b60006115b6605388610f2d90919063ffffffff16565b90506115e384838373ffffffffffffffffffffffffffffffffffffffff166118c19092919063ffffffff16565b505b505050505050565b611670846323b872dd60e01b85858560405160240161160e93929190612617565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611947565b50505050565b60006116b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a0e565b905092915050565b60006020820183511015611709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611700906126f9565b60405180910390fd5b60008260208501015190508091505092915050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b81526004016117dd9291906128e7565b600060405180830381600087803b1580156117f757600080fd5b505af115801561180b573d6000803e3d6000fd5b50505050816004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b6119428363a9059cbb60e01b84846040516024016118e092919061264e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611947565b505050565b60606119a9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611a699092919063ffffffff16565b9050600081511115611a0957808060200190518101906119c99190611d6e565b611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ff90612839565b60405180910390fd5b5b505050565b6000838311158290611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d9190612677565b60405180910390fd5b5060008385039050809150509392505050565b6060611a788484600085611a81565b90509392505050565b6060611a8c85611ba4565b611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac290612819565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611af5919061253f565b60006040518083038185875af1925050503d8060008114611b32576040519150601f19603f3d011682016040523d82523d6000602084013e611b37565b606091505b50915091508115611b4c578092505050611b9c565b600081511115611b5f5780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b939190612677565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611be657506000801b8214155b92505050919050565b604051806060016040528060008152602001600060ff168152602001600063ffffffff1681525090565b600081359050611c2881612b28565b92915050565b600081519050611c3d81612b3f565b92915050565b600081359050611c5281612b56565b92915050565b600081519050611c6781612b56565b92915050565b60008083601f840112611c7f57600080fd5b8235905067ffffffffffffffff811115611c9857600080fd5b602083019150836001820283011115611cb057600080fd5b9250929050565b600081359050611cc681612b6d565b92915050565b600081519050611cdb81612b6d565b92915050565b600081359050611cf081612b84565b92915050565b600081519050611d0581612b84565b92915050565b60008060008060808587031215611d2157600080fd5b6000611d2f87828801611c19565b9450506020611d4087828801611cb7565b9350506040611d5187828801611c43565b9250506060611d6287828801611ce1565b91505092959194509250565b600060208284031215611d8057600080fd5b6000611d8e84828501611c2e565b91505092915050565b600060208284031215611da957600080fd5b6000611db784828501611c58565b91505092915050565b60008060408385031215611dd357600080fd5b6000611de185828601611c43565b9250506020611df285828601611ce1565b9150509250929050565b60008060208385031215611e0f57600080fd5b600083013567ffffffffffffffff811115611e2957600080fd5b611e3585828601611c6d565b92509250509250929050565b600060208284031215611e5357600080fd5b6000611e6184828501611ccc565b91505092915050565b600060208284031215611e7c57600080fd5b6000611e8a84828501611cf6565b91505092915050565b6000611e9f83836124ce565b60208301905092915050565b6000611eb783836124ec565b60208301905092915050565b6000611ecf8383612519565b60208301905092915050565b611ee481612a1d565b82525050565b611ef3816129ae565b82525050565b611f02816129ae565b82525050565b611f11816129cc565b82525050565b611f28611f23826129cc565b612ad4565b82525050565b6000611f3982612955565b611f43818561296b565b9350611f53818560208601612a53565b80840191505092915050565b6000611f6a82612960565b611f748185612976565b9350611f84818560208601612a53565b611f8d81612af0565b840191505092915050565b6000611fa5601283612976565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000611fe5601883612976565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612025602c83612976565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b600061208b601283612976565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b60006120cb601883612976565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b600061210b600f83612976565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b600061214b601583612976565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061218b602b83612976565b91507f696e646578206f66206e657720677561726469616e20736574206d757374206260008301527f65203e2063757272656e740000000000000000000000000000000000000000006020830152604082019050919050565b60006121f1602983612976565b91507f696e76616c6964206b657920666f722066617374205363686e6f72722076657260008301527f696669636174696f6e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612257601483612976565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b6000612297601983612976565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006122d7601883612976565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612317601d83612976565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612357602a83612976565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b60006123bd602683612976565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000820160008201516124298482611e93565b935050602082015161243b8482611ec3565b935050604082015161244d8482611eab565b935050505050565b60008201600080830154905061246a81612a86565b6124748582611e93565b9450506001830154905061248781612aa0565b6124918582611ec3565b94505061249d81612aba565b6124a78582611eab565b94505050505050565b6124b9816129f6565b82525050565b6124c8816129f6565b82525050565b6124d7816129f6565b82525050565b6124e681612a00565b82525050565b6124f581612a00565b82525050565b61250481612a10565b82525050565b61251381612a10565b82525050565b61252281612a10565b82525050565b61253961253482612a10565b612ade565b82525050565b600061254b8284611f2e565b915081905092915050565b60006125628284612416565b60608201915081905092915050565b600061257d8284612455565b60608201915081905092915050565b60006125988285612528565b6001820191506125a88284611f17565b6020820191508190509392505050565b60006020820190506125cd6000830184611eea565b92915050565b60006020820190506125e86000830184611edb565b92915050565b60006040820190506126036000830185611edb565b61261060208301846124b0565b9392505050565b600060608201905061262c6000830186611eea565b6126396020830185611eea565b61264660408301846124b0565b949350505050565b60006040820190506126636000830185611eea565b61267060208301846124b0565b9392505050565b600060208201905081810360008301526126918184611f5f565b905092915050565b600060208201905081810360008301526126b281611f98565b9050919050565b600060208201905081810360008301526126d281611fd8565b9050919050565b600060208201905081810360008301526126f281612018565b9050919050565b600060208201905081810360008301526127128161207e565b9050919050565b60006020820190508181036000830152612732816120be565b9050919050565b60006020820190508181036000830152612752816120fe565b9050919050565b600060208201905081810360008301526127728161213e565b9050919050565b600060208201905081810360008301526127928161217e565b9050919050565b600060208201905081810360008301526127b2816121e4565b9050919050565b600060208201905081810360008301526127d28161224a565b9050919050565b600060208201905081810360008301526127f28161228a565b9050919050565b60006020820190508181036000830152612812816122ca565b9050919050565b600060208201905081810360008301526128328161230a565b9050919050565b600060208201905081810360008301526128528161234a565b9050919050565b60006020820190508181036000830152612872816123b0565b9050919050565b600060a08201905061288e60008301886124bf565b61289b602083018761250a565b6128a860408301866124bf565b6128b560608301856124bf565b6128c26080830184611ef9565b9695505050505050565b60006020820190506128e160008301846124dd565b92915050565b60006040820190506128fc60008301856124fb565b6129096020830184611f08565b9392505050565b600060808201905061292560008301876124fb565b61293260208301866124fb565b61293f6040830185611f08565b61294c60608301846124b0565b95945050505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006129b9826129d6565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612a2882612a2f565b9050919050565b6000612a3a82612a41565b9050919050565b6000612a4c826129d6565b9050919050565b60005b83811015612a71578082015181840152602081019050612a56565b83811115612a80576000848401525b50505050565b6000612a99612a9483612b0e565b612987565b9050919050565b6000612ab3612aae83612b0e565b6129a1565b9050919050565b6000612acd612ac883612b1b565b612991565b9050919050565b6000819050919050565b6000612ae982612b01565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160001c9050919050565b60008160081c9050919050565b612b31816129ae565b8114612b3c57600080fd5b50565b612b48816129c0565b8114612b5357600080fd5b50565b612b5f816129cc565b8114612b6a57600080fd5b50565b612b76816129f6565b8114612b8157600080fd5b50565b612b8d81612a10565b8114612b9857600080fd5b5056fea264697066735822122033713fbc06fc98ebfb1480eb1fb0380c4ff666a6ec58c529f5305334818eb30164736f6c634300060c0033"; + "0x60806040526002600060146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b506040516200334a3803806200334a833981810160405281019062000053919062000213565b82600160008063ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff1602179055509050506000600260006101000a81548163ffffffff021916908363ffffffff16021790555080600260046101000a81548163ffffffff021916908363ffffffff160217905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200035a565b6000815190506200015f81620002f2565b92915050565b6000606082840312156200017857600080fd5b62000184606062000269565b905060006200019684828501620001ce565b6000830152506020620001ac84828501620001fc565b6020830152506040620001c284828501620001e5565b60408301525092915050565b600081519050620001df816200030c565b92915050565b600081519050620001f68162000326565b92915050565b6000815190506200020d8162000340565b92915050565b600080600060a084860312156200022957600080fd5b6000620002398682870162000165565b93505060606200024c868287016200014e565b92505060806200025f86828701620001e5565b9150509250925092565b6000604051905081810181811067ffffffffffffffff821117156200028d57600080fd5b8060405250919050565b6000620002a482620002ab565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b620002fd8162000297565b81146200030957600080fd5b50565b6200031781620002cb565b81146200032357600080fd5b50565b6200033181620002d5565b81146200033d57600080fd5b50565b6200034b81620002e5565b81146200035757600080fd5b50565b612fe0806200036a6000396000f3fe60806040526004361061008a5760003560e01c80637f04d9e6116100595780637f04d9e6146101c6578063822d82b3146101f157806399da1d3c1461021c578063b6694c2a14610247578063e66fd37314610284576100ca565b80631a2be4da146101055780633bc0aee61461014257806342b0aefa1461016b578063780e2183146101aa576100ca565b366100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c190612a5a565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100fc90612a5a565b60405180910390fd5b34801561011157600080fd5b5061012c60048036038101906101279190611f41565b6102ad565b60405161013991906129dd565b60405180910390f35b34801561014e57600080fd5b5061016960048036038101906101649190612084565b6102cd565b005b34801561017757600080fd5b50610192600480360381019061018d91906120f2565b6109e4565b6040516101a193929190612c8d565b60405180910390f35b6101c460048036038101906101bf9190612048565b610a2b565b005b3480156101d257600080fd5b506101db610b7c565b6040516101e89190612cc4565b60405180910390f35b3480156101fd57600080fd5b50610206610b92565b6040516102139190612cc4565b60405180910390f35b34801561022857600080fd5b50610231610ba8565b60405161023e919061291e565b60405180910390f35b34801561025357600080fd5b5061026e60048036038101906102699190611ff6565b610bcc565b60405161027b919061291e565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a69190611f6a565b610bff565b005b60056020528060005260406000206000915054906101000a900460ff1681565b6000610327600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b905060018160ff161461036f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036690612ada565b60405180910390fd5b60006103c9600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061105590919063ffffffff16565b90506000610425600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110b390919063ffffffff16565b90506000610481602587878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061111190919063ffffffff16565b905060006104dd603988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061105590919063ffffffff16565b905042600260049054906101000a900463ffffffff16820163ffffffff161161053b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053290612afa565b60405180910390fd5b600061059c6039808a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061117e9092919063ffffffff16565b8051906020012090506003600082815260200190815260200160002060009054906101000a900460ff1615610606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fd90612a3a565b60405180910390fd5b61060e611e10565b600160008763ffffffff1663ffffffff168152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816040015163ffffffff1614806106a9575042816040015163ffffffff16115b6106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90612bba565b60405180910390fd5b73__Schnorr_______________________________63ff51dff282600001518360200151888660001c896040518663ffffffff1660e01b8152600401610732959493929190612c3a565b60206040518083038186803b15801561074a57600080fd5b505af415801561075e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107829190611fcd565b6107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b890612b1a565b60405180910390fd5b600061081b603d8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b90506000610877603e8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b905060606108d8603f8360ff168e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061117e9092919063ffffffff16565b905060018360ff16141561095457600260009054906101000a900463ffffffff1663ffffffff168963ffffffff1614610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d90612a9a565b60405180910390fd5b61094f81611240565b6109aa565b60108360ff16141561096e5761096981611558565b6109a9565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090612a1a565b60405180910390fd5b5b60016003600087815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505050505050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900463ffffffff16905083565b6000341415610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6690612b7a565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b83600060149054906101000a900460ff168634604051610b709493929190612d08565b60405180910390a35050565b600260049054906101000a900463ffffffff1681565b600260009054906101000a900463ffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000831415610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a90612b7a565b60405180910390fd5b60008060149054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e1c578573ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401610ce5929190612954565b600060405180830381600087803b158015610cff57600080fd5b505af1158015610d13573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5d57600080fd5b505afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d95919061211b565b91508573ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ddd57600080fd5b505afa158015610df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e15919061201f565b9050610f97565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e579190612939565b60206040518083038186803b158015610e6f57600080fd5b505afa158015610e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea791906120c9565b9050610ed63330888a73ffffffffffffffffffffffffffffffffffffffff1661180e909392919063ffffffff16565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f119190612939565b60206040518083038186803b158015610f2957600080fd5b505afa158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6191906120c9565b9050610f76828261189790919063ffffffff16565b96508773ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b8585888a604051610fe79493929190612d08565b60405180910390a3505050505050565b60006001820183511015611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612aba565b60405180910390fd5b60008260018501015190508091505092915050565b6000600482018351101561109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109590612aba565b60405180910390fd5b60008260048501015190508091505092915050565b600060208201835110156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612aba565b60405180910390fd5b60008260208501015190508091505092915050565b6000601482018351101561115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612aba565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b6060818301845110156111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90612aba565b60405180910390fd5b60608215600081146111e357604051915060208201604052611234565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156112215780518352602083019250602081019050611204565b50868552601f19601f8301166040525050505b50809150509392505050565b60006112566000836110b390919063ffffffff16565b9050600061126e602084610ff790919063ffffffff16565b60ff169050600061128960218561105590919063ffffffff16565b9050600260009054906101000a900463ffffffff1663ffffffff168163ffffffff16116112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e290612b3a565b60405180910390fd5b6001807ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141901c018310611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134a90612b5a565b60405180910390fd5b6001821115611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90612a7a565b60405180910390fd5b6000600260009054906101000a900463ffffffff16905081600260006101000a81548163ffffffff021916908363ffffffff1602179055506113d7611e10565b60405180606001604052808681526020018560ff168152602001600063ffffffff1681525090508060016000600260009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff160217905550905050600260049054906101000a900463ffffffff164201600160008463ffffffff1663ffffffff16815260200190815260200160002060010160016101000a81548163ffffffff021916908363ffffffff160217905550806040516114e891906128bc565b6040518091039020600160008463ffffffff1663ffffffff16815260200190815260200160002060405161151c91906128d7565b60405180910390207f776a7721d091beb15fb219d7be3c92b83fa7c10428af15a7312461bc3bc52e0b60405160405180910390a3505050505050565b600061156e600483610ff790919063ffffffff16565b90506000611586600584610ff790919063ffffffff16565b9050600061159e60328561111190919063ffffffff16565b905060006115b6604686610ff790919063ffffffff16565b905060006115ce6067876110b390919063ffffffff16565b90508360ff168560ff161415611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090612c1a565b60405180910390fd5b600060149054906101000a900460ff1660ff168460ff1614611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612b9a565b60405180910390fd5b600060149054906101000a900460ff1660ff168260ff16146117c15760006116a26047886118e190919063ffffffff16565b9050600083826040516020016116b99291906128f2565b60405160208183030381529060405280519060200120905060006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561174c5761174982868561193f565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b81526004016117879291906129b4565b600060405180830381600087803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b50505050505050611806565b60006117d760538861111190919063ffffffff16565b905061180484838373ffffffffffffffffffffffffffffffffffffffff16611ae29092919063ffffffff16565b505b505050505050565b611891846323b872dd60e01b85858560405160240161182f9392919061297d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b68565b50505050565b60006118d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2f565b905092915050565b6000602082018351101561192a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192190612aba565b60405180910390fd5b60008260208501015190508091505092915050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b81526004016119fe929190612cdf565b600060405180830381600087803b158015611a1857600080fd5b505af1158015611a2c573d6000803e3d6000fd5b50505050816004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b611b638363a9059cbb60e01b8484604051602401611b019291906129b4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b68565b505050565b6060611bca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c8a9092919063ffffffff16565b9050600081511115611c2a5780806020019051810190611bea9190611fcd565b611c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2090612bfa565b60405180910390fd5b5b505050565b6000838311158290611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e91906129f8565b60405180910390fd5b5060008385039050809150509392505050565b6060611c998484600085611ca2565b90509392505050565b6060611cad85611dc5565b611cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce390612bda565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611d1691906128a5565b60006040518083038185875af1925050503d8060008114611d53576040519150601f19603f3d011682016040523d82523d6000602084013e611d58565b606091505b50915091508115611d6d578092505050611dbd565b600081511115611d805780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db491906129f8565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611e0757506000801b8214155b92505050919050565b604051806060016040528060008152602001600060ff168152602001600063ffffffff1681525090565b600081359050611e4981612f20565b92915050565b600081519050611e5e81612f37565b92915050565b600081359050611e7381612f4e565b92915050565b600081519050611e8881612f4e565b92915050565b60008083601f840112611ea057600080fd5b8235905067ffffffffffffffff811115611eb957600080fd5b602083019150836001820283011115611ed157600080fd5b9250929050565b600081359050611ee781612f65565b92915050565b600081519050611efc81612f65565b92915050565b600081359050611f1181612f7c565b92915050565b600081359050611f2681612f93565b92915050565b600081519050611f3b81612f93565b92915050565b600060208284031215611f5357600080fd5b6000611f6184828501611e3a565b91505092915050565b60008060008060808587031215611f8057600080fd5b6000611f8e87828801611e3a565b9450506020611f9f87828801611ed8565b9350506040611fb087828801611e64565b9250506060611fc187828801611f17565b91505092959194509250565b600060208284031215611fdf57600080fd5b6000611fed84828501611e4f565b91505092915050565b60006020828403121561200857600080fd5b600061201684828501611e64565b91505092915050565b60006020828403121561203157600080fd5b600061203f84828501611e79565b91505092915050565b6000806040838503121561205b57600080fd5b600061206985828601611e64565b925050602061207a85828601611f17565b9150509250929050565b6000806020838503121561209757600080fd5b600083013567ffffffffffffffff8111156120b157600080fd5b6120bd85828601611e8e565b92509250509250929050565b6000602082840312156120db57600080fd5b60006120e984828501611eed565b91505092915050565b60006020828403121561210457600080fd5b600061211284828501611f02565b91505092915050565b60006020828403121561212d57600080fd5b600061213b84828501611f2c565b91505092915050565b60006121508383612834565b60208301905092915050565b60006121688383612852565b60208301905092915050565b6000612180838361287f565b60208301905092915050565b61219581612e15565b82525050565b6121a481612da6565b82525050565b6121b381612da6565b82525050565b6121c281612db8565b82525050565b6121d181612dc4565b82525050565b6121e86121e382612dc4565b612ecc565b82525050565b60006121f982612d4d565b6122038185612d63565b9350612213818560208601612e4b565b80840191505092915050565b600061222a82612d58565b6122348185612d6e565b9350612244818560208601612e4b565b61224d81612ee8565b840191505092915050565b6000612265601283612d6e565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b60006122a5601883612d6e565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b60006122e5602c83612d6e565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b600061234b601083612d6e565b91507f696e76616c6964207920706172697479000000000000000000000000000000006000830152602082019050919050565b600061238b603983612d6e565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b60006123f1601283612d6e565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000612431601883612d6e565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000612471600f83612d6e565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b60006124b1601583612d6e565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b60006124f1602b83612d6e565b91507f696e646578206f66206e657720677561726469616e20736574206d757374206260008301527f65203e2063757272656e740000000000000000000000000000000000000000006020830152604082019050919050565b6000612557602983612d6e565b91507f696e76616c6964206b657920666f722066617374205363686e6f72722076657260008301527f696669636174696f6e00000000000000000000000000000000000000000000006020830152604082019050919050565b60006125bd601483612d6e565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b60006125fd601983612d6e565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b600061263d601883612d6e565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b600061267d601d83612d6e565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b60006126bd602a83612d6e565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612723602683612d6e565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60008201600082015161278f8482612144565b93505060208201516127a18482612174565b93505060408201516127b3848261215c565b935050505050565b6000820160008083015490506127d081612e7e565b6127da8582612144565b945050600183015490506127ed81612e98565b6127f78582612174565b94505061280381612eb2565b61280d858261215c565b94505050505050565b61281f81612dee565b82525050565b61282e81612dee565b82525050565b61283d81612dee565b82525050565b61284c81612df8565b82525050565b61285b81612df8565b82525050565b61286a81612e08565b82525050565b61287981612e08565b82525050565b61288881612e08565b82525050565b61289f61289a82612e08565b612ed6565b82525050565b60006128b182846121ee565b915081905092915050565b60006128c8828461277c565b60608201915081905092915050565b60006128e382846127bb565b60608201915081905092915050565b60006128fe828561288e565b60018201915061290e82846121d7565b6020820191508190509392505050565b6000602082019050612933600083018461219b565b92915050565b600060208201905061294e600083018461218c565b92915050565b6000604082019050612969600083018561218c565b6129766020830184612816565b9392505050565b6000606082019050612992600083018661219b565b61299f602083018561219b565b6129ac6040830184612816565b949350505050565b60006040820190506129c9600083018561219b565b6129d66020830184612816565b9392505050565b60006020820190506129f260008301846121b9565b92915050565b60006020820190508181036000830152612a12818461221f565b905092915050565b60006020820190508181036000830152612a3381612258565b9050919050565b60006020820190508181036000830152612a5381612298565b9050919050565b60006020820190508181036000830152612a73816122d8565b9050919050565b60006020820190508181036000830152612a938161233e565b9050919050565b60006020820190508181036000830152612ab38161237e565b9050919050565b60006020820190508181036000830152612ad3816123e4565b9050919050565b60006020820190508181036000830152612af381612424565b9050919050565b60006020820190508181036000830152612b1381612464565b9050919050565b60006020820190508181036000830152612b33816124a4565b9050919050565b60006020820190508181036000830152612b53816124e4565b9050919050565b60006020820190508181036000830152612b738161254a565b9050919050565b60006020820190508181036000830152612b93816125b0565b9050919050565b60006020820190508181036000830152612bb3816125f0565b9050919050565b60006020820190508181036000830152612bd381612630565b9050919050565b60006020820190508181036000830152612bf381612670565b9050919050565b60006020820190508181036000830152612c13816126b0565b9050919050565b60006020820190508181036000830152612c3381612716565b9050919050565b600060a082019050612c4f6000830188612825565b612c5c6020830187612870565b612c696040830186612825565b612c766060830185612825565b612c8360808301846121aa565b9695505050505050565b6000606082019050612ca26000830186612816565b612caf6020830185612861565b612cbc6040830184612843565b949350505050565b6000602082019050612cd96000830184612843565b92915050565b6000604082019050612cf46000830185612861565b612d0160208301846121c8565b9392505050565b6000608082019050612d1d6000830187612861565b612d2a6020830186612861565b612d3760408301856121c8565b612d446060830184612816565b95945050505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612db182612dce565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612e2082612e27565b9050919050565b6000612e3282612e39565b9050919050565b6000612e4482612dce565b9050919050565b60005b83811015612e69578082015181840152602081019050612e4e565b83811115612e78576000848401525b50505050565b6000612e91612e8c83612f06565b612d7f565b9050919050565b6000612eab612ea683612f06565b612d99565b9050919050565b6000612ec5612ec083612f13565b612d89565b9050919050565b6000819050919050565b6000612ee182612ef9565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160001c9050919050565b60008160081c9050919050565b612f2981612da6565b8114612f3457600080fd5b50565b612f4081612db8565b8114612f4b57600080fd5b50565b612f5781612dc4565b8114612f6257600080fd5b50565b612f6e81612dee565b8114612f7957600080fd5b50565b612f8581612df8565b8114612f9057600080fd5b50565b612f9c81612e08565b8114612fa757600080fd5b5056fea264697066735822122047d9c8466a232ae962552bd67dd62980ed6d384b15b4bbc45385e966dcc4ef8d64736f6c634300060c0033"; export interface WormholeLibraryAddresses { ["__Schnorr_______________________________"]: string;