From 8d4927cb4a7d30bb702522c41b455f5bedbfa136 Mon Sep 17 00:00:00 2001 From: Hendrik Hofstadt Date: Fri, 21 Aug 2020 12:45:24 +0200 Subject: [PATCH] web: working transfers --- web/contracts/Wormhole.json | 17002 +++++++++++++++---------- web/contracts/WrappedAsset.json | 2 +- web/src/components/SplBalances.tsx | 15 +- web/src/config.ts | 2 +- web/src/contracts/Wormhole.d.ts | 165 +- web/src/contracts/WormholeFactory.ts | 153 +- web/src/pages/Transfer.tsx | 27 +- web/src/pages/TransferSolana.tsx | 2 +- 8 files changed, 10162 insertions(+), 7206 deletions(-) diff --git a/web/contracts/Wormhole.json b/web/contracts/Wormhole.json index 69c91ad3..c50a7fd2 100644 --- a/web/contracts/Wormhole.json +++ b/web/contracts/Wormhole.json @@ -6,14 +6,9 @@ { "components": [ { - "internalType": "uint256", - "name": "x", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "parity", - "type": "uint8" + "internalType": "address[]", + "name": "keys", + "type": "address[]" }, { "internalType": "uint32", @@ -43,50 +38,16 @@ "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" + "indexed": false, + "internalType": "uint32", + "name": "oldGuardianIndex", + "type": "uint32" }, { - "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" + "indexed": false, + "internalType": "uint32", + "name": "newGuardianIndex", + "type": "uint32" } ], "name": "LogGuardianSetChanged", @@ -130,6 +91,12 @@ "internalType": "uint256", "name": "amount", "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint32", + "name": "nonce", + "type": "uint32" } ], "name": "LogTokensLocked", @@ -162,16 +129,6 @@ ], "name": "guardian_sets", "outputs": [ - { - "internalType": "uint256", - "name": "x", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "parity", - "type": "uint8" - }, { "internalType": "uint32", "name": "expiration_time", @@ -249,6 +206,37 @@ "stateMutability": "payable", "type": "receive" }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "idx", + "type": "uint32" + } + ], + "name": "getGuardianSet", + "outputs": [ + { + "components": [ + { + "internalType": "address[]", + "name": "keys", + "type": "address[]" + }, + { + "internalType": "uint32", + "name": "expiration_time", + "type": "uint32" + } + ], + "internalType": "struct Wormhole.GuardianSet", + "name": "gs", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -283,6 +271,11 @@ "internalType": "uint8", "name": "target_chain", "type": "uint8" + }, + { + "internalType": "uint32", + "name": "nonce", + "type": "uint32" } ], "name": "lockAssets", @@ -301,6 +294,11 @@ "internalType": "uint8", "name": "target_chain", "type": "uint8" + }, + { + "internalType": "uint32", + "name": "nonce", + "type": "uint32" } ], "name": "lockETH", @@ -309,30 +307,30 @@ "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\"},{\"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", + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"initial_guardian_set\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"wrapped_asset_master\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_vaa_expiry\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"oldGuardianIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newGuardianIndex\",\"type\":\"uint32\"}],\"name\":\"LogGuardianSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"token_chain\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"LogTokensLocked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"idx\",\"type\":\"uint32\"}],\"name\":\"getGuardianSet\",\"outputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"gs\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian_set_index\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"guardian_sets\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isWrappedAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"lockAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"lockETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"vaa\",\"type\":\"bytes\"}],\"name\":\"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/Wormhole.sol\":{\"keccak256\":\"0x94eedbafd3d2acad7a8a0092fd889d97c2b51ef9950fd7bdd5c0da2d15c741d5\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://8e4320749035e719bd8f833b062e4548d829182118f126b80c0cbc482bb1d41d\",\"dweb:/ipfs/QmYubVxQafG6YCQS25ZMnTcqo8EGBCQVx5Kuq1VJLmfzkb\"]},\"/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\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x7ff0067f2d7df4187eaa1cb4800949b929602c9d9cb20fcaee6922a7613ef2fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78aa63fd7fbb8df2942b6c6e7bd89349507e306edbd5909ee8d9575c31be57e5\",\"dweb:/ipfs/Qmf6z9KWKCJCfEVokgTBhBVq5yHtE6is31N8AV5BHdMkqQ\"]}},\"version\":1}", + "bytecode": "0x60806040526002600160146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b506040516200370b3803806200370b83398181016040528101906200005391906200033e565b600160008190555082600260008063ffffffff1681526020019081526020016000206000820151816000019080519060200190620000939291906200014b565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055509050506000600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200047c565b828054828255906000526020600020908101928215620001c7579160200282015b82811115620001c65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200016c565b5b509050620001d69190620001da565b5090565b5b808211156200021357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620001db565b5090565b600081519050620002288162000448565b92915050565b600082601f8301126200024057600080fd5b8151620002576200025182620003db565b620003ad565b915081818352602084019350602081019050838560208402820111156200027d57600080fd5b60005b83811015620002b1578162000296888262000217565b84526020840193506020830192505060018101905062000280565b5050505092915050565b600060408284031215620002ce57600080fd5b620002da6040620003ad565b9050600082015167ffffffffffffffff811115620002f757600080fd5b62000305848285016200022e565b60008301525060206200031b8482850162000327565b60208301525092915050565b600081519050620003388162000462565b92915050565b6000806000606084860312156200035457600080fd5b600084015167ffffffffffffffff8111156200036f57600080fd5b6200037d86828701620002bb565b9350506020620003908682870162000217565b9250506040620003a38682870162000327565b9150509250925092565b6000604051905081810181811067ffffffffffffffff82111715620003d157600080fd5b8060405250919050565b600067ffffffffffffffff821115620003f357600080fd5b602082029050602081019050919050565b6000620004118262000418565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600063ffffffff82169050919050565b620004538162000404565b81146200045f57600080fd5b50565b6200046d8162000438565b81146200047957600080fd5b50565b61327f806200048c6000396000f3fe6080604052600436106100955760003560e01c80637f04d9e6116100595780637f04d9e6146101f8578063822d82b31461022357806399da1d3c1461024e578063b6694c2a14610279578063f951975a146102b6576100d5565b806313cca1a9146101105780631a2be4da146101395780633bc0aee61461017657806342b0aefa1461019f57806358d62e46146101dc576100d5565b366100d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90612da0565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790612da0565b60405180910390fd5b34801561011c57600080fd5b5061013760048036038101906101329190612371565b6102f3565b005b34801561014557600080fd5b50610160600480360381019061015b9190612348565b610745565b60405161016d9190612cde565b60405180910390f35b34801561018257600080fd5b5061019d600480360381019061019891906124b2565b610765565b005b3480156101ab57600080fd5b506101c660048036038101906101c19190612520565b611091565b6040516101d39190612f82565b60405180910390f35b6101f660048036038101906101f19190612463565b6110bf565b005b34801561020457600080fd5b5061020d611269565b60405161021a9190612f82565b60405180910390f35b34801561022f57600080fd5b5061023861127f565b6040516102459190612f82565b60405180910390f35b34801561025a57600080fd5b50610263611295565b6040516102709190612c1f565b60405180910390f35b34801561028557600080fd5b506102a0600480360381019061029b9190612411565b6112bb565b6040516102ad9190612c1f565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190612520565b6112ee565b6040516102ea9190612f60565b60405180910390f35b60026000541415610339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033090612f40565b60405180910390fd5b60026000819055506000841415610385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037c90612e80565b60405180910390fd5b6000600160149054906101000a900460ff1690506000600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561055f578673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33886040518363ffffffff1660e01b8152600401610428929190612c55565b600060405180830381600087803b15801561044257600080fd5b505af1158015610456573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a057600080fd5b505afa1580156104b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d89190612549565b91508673ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052057600080fd5b505afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610558919061243a565b90506106da565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161059a9190612c3a565b60206040518083038186803b1580156105b257600080fd5b505afa1580156105c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ea91906124f7565b90506106193330898b73ffffffffffffffffffffffffffffffffffffffff166113db909392919063ffffffff16565b60008873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106549190612c3a565b60206040518083038186803b15801561066c57600080fd5b505afa158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a491906124f7565b90506106b9828261146490919063ffffffff16565b97508873ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f5742f26a345471409566883d5cac5a7d295eee7092e5be3a7d6c60bc2a3e24208685898b8960405161072c959493929190612fef565b60405180910390a3505060016000819055505050505050565b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a290612f40565b60405180910390fd5b6002600081905550600061080d600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b905060018160ff1614610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c90612e00565b60405180910390fd5b60006108af600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061150c90919063ffffffff16565b9050600061090b600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b60ff169050600081604202600601905060006109748288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061150c90919063ffffffff16565b905042600360049054906101000a900463ffffffff16820163ffffffff16116109d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c990612e20565b60405180910390fd5b6000610a3283848a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156a9092919063ffffffff16565b8051906020012090506004600082815260200190815260200160002060009054906101000a900460ff1615610a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9390612d80565b60405180910390fd5b610aa461215c565b600260008763ffffffff1663ffffffff16815260200190815260200160002060405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610b5357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b09575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816020015163ffffffff161480610ba6575042816020015163ffffffff16115b610be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdc90612ec0565b60405180910390fd5b846001600460038460000151510281610bfa57fe5b04011115610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490612e60565b60405180910390fd5b60005b85811015610eb9576000610ca7604283026006018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b90506000610d08604284026007018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061162c90919063ffffffff16565b90506000610d69604285026027018e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061162c90919063ffffffff16565b90506000610dca604286026047018f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b9050601b8101905085600001518460ff1681518110610de557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660018883868660405160008152602001604052604051610e269493929190612cf9565b6020604051602081039080840390855afa158015610e48573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f90612e40565b60405180910390fd5b505050508080600101915050610c40565b506000610f16600486018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b90506060610f7e60058701600588018d8d9050038d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156a9092919063ffffffff16565b905060018260ff161415610ffa57600360009054906101000a900463ffffffff1663ffffffff168863ffffffff1614610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390612dc0565b60405180910390fd5b610ff58161168a565b611050565b60108260ff1614156110145761100f81611908565b61104f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690612d60565b60405180910390fd5b5b60016004600086815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050505050505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b60026000541415611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc90612f40565b60405180910390fd5b60026000819055506000341415611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114890612e80565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156111ad57600080fd5b505af11580156111c1573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f5742f26a345471409566883d5cac5a7d295eee7092e5be3a7d6c60bc2a3e242084600160149054906101000a900460ff16873487604051611254959493929190612fef565b60405180910390a36001600081905550505050565b600360049054906101000a900463ffffffff1681565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112f661215c565b600260008363ffffffff1663ffffffff168152602001908152602001600020604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156113a557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161135b575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b61145e846323b872dd60e01b8585856040516024016113fc93929190612c7e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611bbe565b50505050565b60006114a683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c85565b905092915050565b600060018201835110156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90612de0565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612de0565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612de0565b60405180910390fd5b60608215600081146115cf57604051915060208201604052611620565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561160d57805183526020830192506020810190506115f0565b50868552601f19601f8301166040525050505b50809150509392505050565b60006020820183511015611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c90612de0565b60405180910390fd5b60008260208501015190508091505092915050565b60006116a060008361150c90919063ffffffff16565b905060006116b86004846114ae90919063ffffffff16565b905060608160ff1667ffffffffffffffff811180156116d657600080fd5b506040519080825280602002602001820160405280156117055781602001602082028036833780820191505090505b50905060005b8260ff168110156117885760006117316014830260050187611ce090919063ffffffff16565b90508083838151811061174057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061170b565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff1602179055506117c961215c565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020600082015181600001908051906020019061183592919061217c565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff166040516118f8929190612f9d565b60405180910390a1505050505050565b600061191e6004836114ae90919063ffffffff16565b905060006119366005846114ae90919063ffffffff16565b9050600061194e603285611ce090919063ffffffff16565b905060006119666046866114ae90919063ffffffff16565b9050600061197e606787611d4d90919063ffffffff16565b90508360ff168560ff1614156119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090612f20565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1790612ea0565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611b71576000611a5260478861162c90919063ffffffff16565b905060008382604051602001611a69929190612bf3565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afc57611af9828685611dab565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611b37929190612cb5565b600060405180830381600087803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050505050611bb6565b6000611b87605388611ce090919063ffffffff16565b9050611bb484838373ffffffffffffffffffffffffffffffffffffffff16611f509092919063ffffffff16565b505b505050505050565b6060611c20826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611fd69092919063ffffffff16565b9050600081511115611c805780806020019051810190611c4091906123e8565b611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f00565b60405180910390fd5b5b505050565b6000838311158290611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc49190612d3e565b60405180910390fd5b5060008385039050809150509392505050565b60006014820183511015611d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2090612de0565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b60006020820183511015611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90612de0565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b8152600401611e6c929190612fc6565b600060405180830381600087803b158015611e8657600080fd5b505af1158015611e9a573d6000803e3d6000fd5b50505050816005600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b611fd18363a9059cbb60e01b8484604051602401611f6f929190612cb5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611bbe565b505050565b6060611fe58484600085611fee565b90509392505050565b6060611ff985612111565b612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90612ee0565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516120629190612bdc565b60006040518083038185875af1925050503d806000811461209f576040519150601f19603f3d011682016040523d82523d6000602084013e6120a4565b606091505b509150915081156120b9578092505050612109565b6000815111156120cc5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121009190612d3e565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561215357506000801b8214155b92505050919050565b604051806040016040528060608152602001600063ffffffff1681525090565b8280548282559060005260206000209081019282156121f5579160200282015b828111156121f45782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061219c565b5b5090506122029190612206565b5090565b5b8082111561223d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612207565b5090565b600081359050612250816131bf565b92915050565b600081519050612265816131d6565b92915050565b60008135905061227a816131ed565b92915050565b60008151905061228f816131ed565b92915050565b60008083601f8401126122a757600080fd5b8235905067ffffffffffffffff8111156122c057600080fd5b6020830191508360018202830111156122d857600080fd5b9250929050565b6000813590506122ee81613204565b92915050565b60008151905061230381613204565b92915050565b6000813590506123188161321b565b92915050565b60008135905061232d81613232565b92915050565b60008151905061234281613232565b92915050565b60006020828403121561235a57600080fd5b600061236884828501612241565b91505092915050565b600080600080600060a0868803121561238957600080fd5b600061239788828901612241565b95505060206123a8888289016122df565b94505060406123b98882890161226b565b93505060606123ca8882890161231e565b92505060806123db88828901612309565b9150509295509295909350565b6000602082840312156123fa57600080fd5b600061240884828501612256565b91505092915050565b60006020828403121561242357600080fd5b60006124318482850161226b565b91505092915050565b60006020828403121561244c57600080fd5b600061245a84828501612280565b91505092915050565b60008060006060848603121561247857600080fd5b60006124868682870161226b565b93505060206124978682870161231e565b92505060406124a886828701612309565b9150509250925092565b600080602083850312156124c557600080fd5b600083013567ffffffffffffffff8111156124df57600080fd5b6124eb85828601612295565b92509250509250929050565b60006020828403121561250957600080fd5b6000612517848285016122f4565b91505092915050565b60006020828403121561253257600080fd5b600061254084828501612309565b91505092915050565b60006020828403121561255b57600080fd5b600061256984828501612333565b91505092915050565b600061257e8383612599565b60208301905092915050565b6125938161311c565b82525050565b6125a2816130ad565b82525050565b6125b1816130ad565b82525050565b60006125c282613052565b6125cc8185613080565b93506125d783613042565b8060005b838110156126085781516125ef8882612572565b97506125fa83613073565b9250506001810190506125db565b5085935050505092915050565b61261e816130bf565b82525050565b61262d816130cb565b82525050565b61264461263f826130cb565b613185565b82525050565b60006126558261305d565b61265f8185613091565b935061266f818560208601613152565b80840191505092915050565b600061268682613068565b612690818561309c565b93506126a0818560208601613152565b6126a9816131a1565b840191505092915050565b60006126c160128361309c565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b600061270160188361309c565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612741602c8361309c565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b60006127a760398361309c565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b600061280d60128361309c565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b600061284d60188361309c565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b600061288d600f8361309c565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b60006128cd60158361309c565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061290d60098361309c565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b600061294d60148361309c565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b600061298d60198361309c565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006129cd60188361309c565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612a0d601d8361309c565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612a4d602a8361309c565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ab360268361309c565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b19601f8361309c565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006040830160008301518482036000860152612b6982826125b7565b9150506020830151612b7e6020860182612b98565b508091505092915050565b612b92816130f5565b82525050565b612ba1816130ff565b82525050565b612bb0816130ff565b82525050565b612bbf8161310f565b82525050565b612bd6612bd18261310f565b61318f565b82525050565b6000612be8828461264a565b915081905092915050565b6000612bff8285612bc5565b600182019150612c0f8284612633565b6020820191508190509392505050565b6000602082019050612c3460008301846125a8565b92915050565b6000602082019050612c4f600083018461258a565b92915050565b6000604082019050612c6a600083018561258a565b612c776020830184612b89565b9392505050565b6000606082019050612c9360008301866125a8565b612ca060208301856125a8565b612cad6040830184612b89565b949350505050565b6000604082019050612cca60008301856125a8565b612cd76020830184612b89565b9392505050565b6000602082019050612cf36000830184612615565b92915050565b6000608082019050612d0e6000830187612624565b612d1b6020830186612bb6565b612d286040830185612624565b612d356060830184612624565b95945050505050565b60006020820190508181036000830152612d58818461267b565b905092915050565b60006020820190508181036000830152612d79816126b4565b9050919050565b60006020820190508181036000830152612d99816126f4565b9050919050565b60006020820190508181036000830152612db981612734565b9050919050565b60006020820190508181036000830152612dd98161279a565b9050919050565b60006020820190508181036000830152612df981612800565b9050919050565b60006020820190508181036000830152612e1981612840565b9050919050565b60006020820190508181036000830152612e3981612880565b9050919050565b60006020820190508181036000830152612e59816128c0565b9050919050565b60006020820190508181036000830152612e7981612900565b9050919050565b60006020820190508181036000830152612e9981612940565b9050919050565b60006020820190508181036000830152612eb981612980565b9050919050565b60006020820190508181036000830152612ed9816129c0565b9050919050565b60006020820190508181036000830152612ef981612a00565b9050919050565b60006020820190508181036000830152612f1981612a40565b9050919050565b60006020820190508181036000830152612f3981612aa6565b9050919050565b60006020820190508181036000830152612f5981612b0c565b9050919050565b60006020820190508181036000830152612f7a8184612b4c565b905092915050565b6000602082019050612f976000830184612ba7565b92915050565b6000604082019050612fb26000830185612ba7565b612fbf6020830184612ba7565b9392505050565b6000604082019050612fdb6000830185612bb6565b612fe86020830184612624565b9392505050565b600060a0820190506130046000830188612bb6565b6130116020830187612bb6565b61301e6040830186612624565b61302b6060830185612b89565b6130386080830184612ba7565b9695505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006130b8826130d5565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006131278261312e565b9050919050565b600061313982613140565b9050919050565b600061314b826130d5565b9050919050565b60005b83811015613170578082015181840152602081019050613155565b8381111561317f576000848401525b50505050565b6000819050919050565b600061319a826131b2565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b6131c8816130ad565b81146131d357600080fd5b50565b6131df816130bf565b81146131ea57600080fd5b50565b6131f6816130cb565b811461320157600080fd5b50565b61320d816130f5565b811461321857600080fd5b50565b613224816130ff565b811461322f57600080fd5b50565b61323b8161310f565b811461324657600080fd5b5056fea2646970667358221220093e64f2de68a8ba56b15335745c5182b42d2cffc846382a42044fbb6a6793ec64736f6c634300060c0033", + "deployedBytecode": "0x6080604052600436106100955760003560e01c80637f04d9e6116100595780637f04d9e6146101f8578063822d82b31461022357806399da1d3c1461024e578063b6694c2a14610279578063f951975a146102b6576100d5565b806313cca1a9146101105780631a2be4da146101395780633bc0aee61461017657806342b0aefa1461019f57806358d62e46146101dc576100d5565b366100d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90612da0565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790612da0565b60405180910390fd5b34801561011c57600080fd5b5061013760048036038101906101329190612371565b6102f3565b005b34801561014557600080fd5b50610160600480360381019061015b9190612348565b610745565b60405161016d9190612cde565b60405180910390f35b34801561018257600080fd5b5061019d600480360381019061019891906124b2565b610765565b005b3480156101ab57600080fd5b506101c660048036038101906101c19190612520565b611091565b6040516101d39190612f82565b60405180910390f35b6101f660048036038101906101f19190612463565b6110bf565b005b34801561020457600080fd5b5061020d611269565b60405161021a9190612f82565b60405180910390f35b34801561022f57600080fd5b5061023861127f565b6040516102459190612f82565b60405180910390f35b34801561025a57600080fd5b50610263611295565b6040516102709190612c1f565b60405180910390f35b34801561028557600080fd5b506102a0600480360381019061029b9190612411565b6112bb565b6040516102ad9190612c1f565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190612520565b6112ee565b6040516102ea9190612f60565b60405180910390f35b60026000541415610339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033090612f40565b60405180910390fd5b60026000819055506000841415610385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037c90612e80565b60405180910390fd5b6000600160149054906101000a900460ff1690506000600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561055f578673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33886040518363ffffffff1660e01b8152600401610428929190612c55565b600060405180830381600087803b15801561044257600080fd5b505af1158015610456573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a057600080fd5b505afa1580156104b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d89190612549565b91508673ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052057600080fd5b505afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610558919061243a565b90506106da565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161059a9190612c3a565b60206040518083038186803b1580156105b257600080fd5b505afa1580156105c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ea91906124f7565b90506106193330898b73ffffffffffffffffffffffffffffffffffffffff166113db909392919063ffffffff16565b60008873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106549190612c3a565b60206040518083038186803b15801561066c57600080fd5b505afa158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a491906124f7565b90506106b9828261146490919063ffffffff16565b97508873ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f5742f26a345471409566883d5cac5a7d295eee7092e5be3a7d6c60bc2a3e24208685898b8960405161072c959493929190612fef565b60405180910390a3505060016000819055505050505050565b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a290612f40565b60405180910390fd5b6002600081905550600061080d600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b905060018160ff1614610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c90612e00565b60405180910390fd5b60006108af600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061150c90919063ffffffff16565b9050600061090b600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b60ff169050600081604202600601905060006109748288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061150c90919063ffffffff16565b905042600360049054906101000a900463ffffffff16820163ffffffff16116109d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c990612e20565b60405180910390fd5b6000610a3283848a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156a9092919063ffffffff16565b8051906020012090506004600082815260200190815260200160002060009054906101000a900460ff1615610a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9390612d80565b60405180910390fd5b610aa461215c565b600260008763ffffffff1663ffffffff16815260200190815260200160002060405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610b5357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b09575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816020015163ffffffff161480610ba6575042816020015163ffffffff16115b610be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdc90612ec0565b60405180910390fd5b846001600460038460000151510281610bfa57fe5b04011115610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490612e60565b60405180910390fd5b60005b85811015610eb9576000610ca7604283026006018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b90506000610d08604284026007018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061162c90919063ffffffff16565b90506000610d69604285026027018e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061162c90919063ffffffff16565b90506000610dca604286026047018f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b9050601b8101905085600001518460ff1681518110610de557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660018883868660405160008152602001604052604051610e269493929190612cf9565b6020604051602081039080840390855afa158015610e48573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f90612e40565b60405180910390fd5b505050508080600101915050610c40565b506000610f16600486018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b90506060610f7e60058701600588018d8d9050038d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156a9092919063ffffffff16565b905060018260ff161415610ffa57600360009054906101000a900463ffffffff1663ffffffff168863ffffffff1614610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390612dc0565b60405180910390fd5b610ff58161168a565b611050565b60108260ff1614156110145761100f81611908565b61104f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690612d60565b60405180910390fd5b5b60016004600086815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050505050505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b60026000541415611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc90612f40565b60405180910390fd5b60026000819055506000341415611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114890612e80565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156111ad57600080fd5b505af11580156111c1573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f5742f26a345471409566883d5cac5a7d295eee7092e5be3a7d6c60bc2a3e242084600160149054906101000a900460ff16873487604051611254959493929190612fef565b60405180910390a36001600081905550505050565b600360049054906101000a900463ffffffff1681565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112f661215c565b600260008363ffffffff1663ffffffff168152602001908152602001600020604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156113a557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161135b575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b61145e846323b872dd60e01b8585856040516024016113fc93929190612c7e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611bbe565b50505050565b60006114a683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c85565b905092915050565b600060018201835110156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90612de0565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612de0565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612de0565b60405180910390fd5b60608215600081146115cf57604051915060208201604052611620565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561160d57805183526020830192506020810190506115f0565b50868552601f19601f8301166040525050505b50809150509392505050565b60006020820183511015611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c90612de0565b60405180910390fd5b60008260208501015190508091505092915050565b60006116a060008361150c90919063ffffffff16565b905060006116b86004846114ae90919063ffffffff16565b905060608160ff1667ffffffffffffffff811180156116d657600080fd5b506040519080825280602002602001820160405280156117055781602001602082028036833780820191505090505b50905060005b8260ff168110156117885760006117316014830260050187611ce090919063ffffffff16565b90508083838151811061174057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061170b565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff1602179055506117c961215c565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020600082015181600001908051906020019061183592919061217c565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff166040516118f8929190612f9d565b60405180910390a1505050505050565b600061191e6004836114ae90919063ffffffff16565b905060006119366005846114ae90919063ffffffff16565b9050600061194e603285611ce090919063ffffffff16565b905060006119666046866114ae90919063ffffffff16565b9050600061197e606787611d4d90919063ffffffff16565b90508360ff168560ff1614156119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090612f20565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1790612ea0565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611b71576000611a5260478861162c90919063ffffffff16565b905060008382604051602001611a69929190612bf3565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afc57611af9828685611dab565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611b37929190612cb5565b600060405180830381600087803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050505050611bb6565b6000611b87605388611ce090919063ffffffff16565b9050611bb484838373ffffffffffffffffffffffffffffffffffffffff16611f509092919063ffffffff16565b505b505050505050565b6060611c20826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611fd69092919063ffffffff16565b9050600081511115611c805780806020019051810190611c4091906123e8565b611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f00565b60405180910390fd5b5b505050565b6000838311158290611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc49190612d3e565b60405180910390fd5b5060008385039050809150509392505050565b60006014820183511015611d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2090612de0565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b60006020820183511015611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90612de0565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b8152600401611e6c929190612fc6565b600060405180830381600087803b158015611e8657600080fd5b505af1158015611e9a573d6000803e3d6000fd5b50505050816005600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b611fd18363a9059cbb60e01b8484604051602401611f6f929190612cb5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611bbe565b505050565b6060611fe58484600085611fee565b90509392505050565b6060611ff985612111565b612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90612ee0565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516120629190612bdc565b60006040518083038185875af1925050503d806000811461209f576040519150601f19603f3d011682016040523d82523d6000602084013e6120a4565b606091505b509150915081156120b9578092505050612109565b6000815111156120cc5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121009190612d3e565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561215357506000801b8214155b92505050919050565b604051806040016040528060608152602001600063ffffffff1681525090565b8280548282559060005260206000209081019282156121f5579160200282015b828111156121f45782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061219c565b5b5090506122029190612206565b5090565b5b8082111561223d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612207565b5090565b600081359050612250816131bf565b92915050565b600081519050612265816131d6565b92915050565b60008135905061227a816131ed565b92915050565b60008151905061228f816131ed565b92915050565b60008083601f8401126122a757600080fd5b8235905067ffffffffffffffff8111156122c057600080fd5b6020830191508360018202830111156122d857600080fd5b9250929050565b6000813590506122ee81613204565b92915050565b60008151905061230381613204565b92915050565b6000813590506123188161321b565b92915050565b60008135905061232d81613232565b92915050565b60008151905061234281613232565b92915050565b60006020828403121561235a57600080fd5b600061236884828501612241565b91505092915050565b600080600080600060a0868803121561238957600080fd5b600061239788828901612241565b95505060206123a8888289016122df565b94505060406123b98882890161226b565b93505060606123ca8882890161231e565b92505060806123db88828901612309565b9150509295509295909350565b6000602082840312156123fa57600080fd5b600061240884828501612256565b91505092915050565b60006020828403121561242357600080fd5b60006124318482850161226b565b91505092915050565b60006020828403121561244c57600080fd5b600061245a84828501612280565b91505092915050565b60008060006060848603121561247857600080fd5b60006124868682870161226b565b93505060206124978682870161231e565b92505060406124a886828701612309565b9150509250925092565b600080602083850312156124c557600080fd5b600083013567ffffffffffffffff8111156124df57600080fd5b6124eb85828601612295565b92509250509250929050565b60006020828403121561250957600080fd5b6000612517848285016122f4565b91505092915050565b60006020828403121561253257600080fd5b600061254084828501612309565b91505092915050565b60006020828403121561255b57600080fd5b600061256984828501612333565b91505092915050565b600061257e8383612599565b60208301905092915050565b6125938161311c565b82525050565b6125a2816130ad565b82525050565b6125b1816130ad565b82525050565b60006125c282613052565b6125cc8185613080565b93506125d783613042565b8060005b838110156126085781516125ef8882612572565b97506125fa83613073565b9250506001810190506125db565b5085935050505092915050565b61261e816130bf565b82525050565b61262d816130cb565b82525050565b61264461263f826130cb565b613185565b82525050565b60006126558261305d565b61265f8185613091565b935061266f818560208601613152565b80840191505092915050565b600061268682613068565b612690818561309c565b93506126a0818560208601613152565b6126a9816131a1565b840191505092915050565b60006126c160128361309c565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b600061270160188361309c565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612741602c8361309c565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b60006127a760398361309c565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b600061280d60128361309c565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b600061284d60188361309c565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b600061288d600f8361309c565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b60006128cd60158361309c565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061290d60098361309c565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b600061294d60148361309c565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b600061298d60198361309c565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006129cd60188361309c565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612a0d601d8361309c565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612a4d602a8361309c565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ab360268361309c565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b19601f8361309c565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006040830160008301518482036000860152612b6982826125b7565b9150506020830151612b7e6020860182612b98565b508091505092915050565b612b92816130f5565b82525050565b612ba1816130ff565b82525050565b612bb0816130ff565b82525050565b612bbf8161310f565b82525050565b612bd6612bd18261310f565b61318f565b82525050565b6000612be8828461264a565b915081905092915050565b6000612bff8285612bc5565b600182019150612c0f8284612633565b6020820191508190509392505050565b6000602082019050612c3460008301846125a8565b92915050565b6000602082019050612c4f600083018461258a565b92915050565b6000604082019050612c6a600083018561258a565b612c776020830184612b89565b9392505050565b6000606082019050612c9360008301866125a8565b612ca060208301856125a8565b612cad6040830184612b89565b949350505050565b6000604082019050612cca60008301856125a8565b612cd76020830184612b89565b9392505050565b6000602082019050612cf36000830184612615565b92915050565b6000608082019050612d0e6000830187612624565b612d1b6020830186612bb6565b612d286040830185612624565b612d356060830184612624565b95945050505050565b60006020820190508181036000830152612d58818461267b565b905092915050565b60006020820190508181036000830152612d79816126b4565b9050919050565b60006020820190508181036000830152612d99816126f4565b9050919050565b60006020820190508181036000830152612db981612734565b9050919050565b60006020820190508181036000830152612dd98161279a565b9050919050565b60006020820190508181036000830152612df981612800565b9050919050565b60006020820190508181036000830152612e1981612840565b9050919050565b60006020820190508181036000830152612e3981612880565b9050919050565b60006020820190508181036000830152612e59816128c0565b9050919050565b60006020820190508181036000830152612e7981612900565b9050919050565b60006020820190508181036000830152612e9981612940565b9050919050565b60006020820190508181036000830152612eb981612980565b9050919050565b60006020820190508181036000830152612ed9816129c0565b9050919050565b60006020820190508181036000830152612ef981612a00565b9050919050565b60006020820190508181036000830152612f1981612a40565b9050919050565b60006020820190508181036000830152612f3981612aa6565b9050919050565b60006020820190508181036000830152612f5981612b0c565b9050919050565b60006020820190508181036000830152612f7a8184612b4c565b905092915050565b6000602082019050612f976000830184612ba7565b92915050565b6000604082019050612fb26000830185612ba7565b612fbf6020830184612ba7565b9392505050565b6000604082019050612fdb6000830185612bb6565b612fe86020830184612624565b9392505050565b600060a0820190506130046000830188612bb6565b6130116020830187612bb6565b61301e6040830186612624565b61302b6060830185612b89565b6130386080830184612ba7565b9695505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006130b8826130d5565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006131278261312e565b9050919050565b600061313982613140565b9050919050565b600061314b826130d5565b9050919050565b60005b83811015613170578082015181840152602081019050613155565b8381111561317f576000848401525b50505050565b6000819050919050565b600061319a826131b2565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b6131c8816130ad565b81146131d357600080fd5b50565b6131df816130bf565b81146131ea57600080fd5b50565b6131f6816130cb565b811461320157600080fd5b50565b61320d816130f5565b811461321857600080fd5b50565b613224816130ff565b811461322f57600080fd5b50565b61323b8161310f565b811461324657600080fd5b5056fea2646970667358221220093e64f2de68a8ba56b15335745c5182b42d2cffc846382a42044fbb6a6793ec64736f6c634300060c0033", "immutableReferences": {}, - "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", + "sourceMap": "446:8753:1:-:0;;;714:1;697:18;;;;;;;;;;;;;;;;;;;;1770:327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1628:1:8;1743:7;:22;;;;1909:20:1;1890:13;:16;1904:1;1890:16;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2003:1;1982:18;;:22;;;;;;;;;;;;;;;;;;2027:11;2014:10;;:24;;;;;;;;;;;;;;;;;;2070:20;2049:18;;:41;;;;;;;;;;;;;;;;;;1770:327;;;446:8753;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:134:-1:-;;89:6;83:13;74:22;;101:33;128:5;101:33;:::i;:::-;68:71;;;;:::o;164:722::-;;292:3;285:4;277:6;273:17;269:27;259:2;;310:1;307;300:12;259:2;340:6;334:13;362:80;377:64;434:6;377:64;:::i;:::-;362:80;:::i;:::-;353:89;;459:5;484:6;477:5;470:21;514:4;506:6;502:17;492:27;;536:4;531:3;527:14;520:21;;589:6;636:3;628:4;620:6;616:17;611:3;607:27;604:36;601:2;;;653:1;650;643:12;601:2;678:1;663:217;688:6;685:1;682:13;663:217;;;746:3;768:48;812:3;800:10;768:48;:::i;:::-;763:3;756:61;840:4;835:3;831:14;824:21;;868:4;863:3;859:14;852:21;;720:160;710:1;707;703:9;698:14;;663:217;;;667:14;252:634;;;;;;;:::o;928:617::-;;1056:4;1044:9;1039:3;1035:19;1031:30;1028:2;;;1074:1;1071;1064:12;1028:2;1092:20;1107:4;1092:20;:::i;:::-;1083:29;;1183:1;1172:9;1168:17;1162:24;1206:18;1198:6;1195:30;1192:2;;;1238:1;1235;1228:12;1192:2;1273:85;1354:3;1345:6;1334:9;1330:22;1273:85;:::i;:::-;1266:4;1259:5;1255:16;1248:111;1122:248;1431:2;1464:59;1519:3;1510:6;1499:9;1495:22;1464:59;:::i;:::-;1457:4;1450:5;1446:16;1439:85;1380:155;1022:523;;;;:::o;1552:132::-;;1635:6;1629:13;1620:22;;1647:32;1673:5;1647:32;:::i;:::-;1614:70;;;;:::o;1691:668::-;;;;1867:2;1855:9;1846:7;1842:23;1838:32;1835:2;;;1883:1;1880;1873:12;1835:2;1939:1;1928:9;1924:17;1918:24;1962:18;1954:6;1951:30;1948:2;;;1994:1;1991;1984:12;1948:2;2014:92;2098:7;2089:6;2078:9;2074:22;2014:92;:::i;:::-;2004:102;;1897:215;2143:2;2161:64;2217:7;2208:6;2197:9;2193:22;2161:64;:::i;:::-;2151:74;;2122:109;2262:2;2280:63;2335:7;2326:6;2315:9;2311:22;2280:63;:::i;:::-;2270:73;;2241:108;1829:530;;;;;:::o;2366:256::-;;2428:2;2422:9;2412:19;;2466:4;2458:6;2454:17;2565:6;2553:10;2550:22;2529:18;2517:10;2514:34;2511:62;2508:2;;;2586:1;2583;2576:12;2508:2;2606:10;2602:2;2595:22;2406:216;;;;:::o;2629:304::-;;2788:18;2780:6;2777:30;2774:2;;;2820:1;2817;2810:12;2774:2;2855:4;2847:6;2843:17;2835:25;;2918:4;2912;2908:15;2900:23;;2711:222;;;:::o;2940:91::-;;3002:24;3020:5;3002:24;:::i;:::-;2991:35;;2985:46;;;:::o;3038:121::-;;3111:42;3104:5;3100:54;3089:65;;3083:76;;;:::o;3166:88::-;;3238:10;3231:5;3227:22;3216:33;;3210:44;;;:::o;3261:117::-;3330:24;3348:5;3330:24;:::i;:::-;3323:5;3320:35;3310:2;;3369:1;3366;3359:12;3310:2;3304:74;:::o;3385:115::-;3453:23;3470:5;3453:23;:::i;:::-;3446:5;3443:34;3433:2;;3491:1;3488;3481:12;3433:2;3427:73;:::o;446:8753:1:-;;;;;;;", + "deployedSourceMap": "446:8753:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9141:54;;;;;;;;;;:::i;:::-;;;;;;;;446:8753;9056:54;;;;;;;;;;:::i;:::-;;;;;;;;7356:1204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1717:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2231:1993;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1319:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8566:458;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1501:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1411:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;629:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1663:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2103:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7356:1204;1671:1:8;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;7554:1:1::1;7544:6;:11;;7536:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7591:17;7611:8;;;;;;;;;;;7591:28;;7629:21;7664:14;:21;7679:5;7664:21;;;;;;;;;;;;;;;;;;;;;;;;;7660:765;;;7714:5;7701:24;;;7726:10;7738:6;7701:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7786:5;7773:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7759:46;;7848:5;7835:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7819:50;;7660:765;;;7900:21;7931:5;7924:23;;;7956:4;7924:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7900:62;;7976:65;8007:10;8027:4;8034:6;7983:5;7976:30;;;;:65;;;;;;:::i;:::-;8055:20;8085:5;8078:23;;;8110:4;8078:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8055:61;;8330:31;8347:13;8330:12;:16;;:31;;;;:::i;:::-;8321:40;;8407:5;8399:14;;8391:23;;8375:39;;7660:765;;;8514:10;8506:19;;8498:28;;8483:13;8440:113;8456:12;8470:11;8528:9;8539:6;8547:5;8440:113;;;;;;;;;;:::i;:::-;;;;;;;;2419:1:8;;1628::::0;2563:7;:22;;;;7356:1204:1;;;;;:::o;1717:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;2231:1993::-;1671:1:8;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;2314:13:1::1;2330:14;2342:1;2330:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2314:30;;2373:1;2362:7;:12;;;2354:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2460:29;2492:15;2505:1;2492:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;2460:47;;2518:19;2540:14;2552:1;2540:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2518:36;;;;2564:11;2587;2582:2;:16;2578:1;:20;2564:34;;2643:16;2662:20;2675:6;2662:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;2643:39;;2772:15;2759:10;;;;;;;;;;;2747:9;:22;:40;;;2739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2843:12;2868:38;2878:6;2899;2886:3;;:10;;:19;2868:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;:::i;:::-;2858:49;;;;;;2843:64;;2926:12;:18;2939:4;2926:18;;;;;;;;;;;;;;;;;;;;;2925:19;2917:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2984:31;;:::i;:::-;3018:13;:37;3032:22;3018:37;;;;;;;;;;;;;;;2984:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;3105:1;3073:12;:28;;;:33;;;:83;;;;3141:15;3110:12;:28;;;:46;;;3073:83;3065:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3243:11;3238:1;3234;3230;3203:12;:17;;;:24;:28;:32;;;;;;:36;:51;;3195:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3284:6;3279:373;3300:11;3296:1;:15;3279:373;;;3332:11;3346:23;3366:2;3362:1;:6;3358:1;:10;3346:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;3332:37;;3383:9;3395:25;3417:2;3413:1;:6;3409:1;:10;3395:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;3383:37;;3434:9;3446:26;3469:2;3465:1;:6;3460:2;:11;3446:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;3434:38;;3486:7;3496:24;3517:2;3513:1;:6;3508:2;:11;3496:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;3486:34;;3539:2;3534:7;;;;3591:12;:17;;;3609:5;3591:24;;;;;;;;;;;;;;;;3563:52;;:24;3573:4;3579:1;3582;3585;3563:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;:52;;;3555:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;3279:373;;;;3313:3;;;;;;;3279:373;;;;3662:12;3677:23;3698:1;3689:6;:10;3677:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;3662:38;;3710:20;3733:48;3752:1;3743:6;:10;3778:1;3769:6;:10;3755:3;;:10;;:25;3733:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;:::i;:::-;3710:71;;3829:4;3819:6;:14;;;3815:332;;;3883:18;;;;;;;;;;;3857:44;;:22;:44;;;3849:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;3977:29;3998:7;3977:20;:29::i;:::-;3815:332;;;4037:4;4027:6;:14;;;4023:124;;;4057:20;4069:7;4057:11;:20::i;:::-;4023:124;;;4108:28;;;;;;;;;;:::i;:::-;;;;;;;;4023:124;3815:332;4213:4;4192:12;:18;4205:4;4192:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;2419:1:8;;;;;;;;;1628::::0;2563:7;:22;;;;2231:1993:1;;:::o;1319:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8566:458::-;1671:1:8;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;8725:1:1::1;8712:9;:14;;8704:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;798:42;8795:25;;;8829:9;8795:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;8975:10;8967:19;;8959:28;;798:42;8936:20;;8928:29;;8888:129;8904:12;8918:8;;;;;;;;;;;8989:9;9000;9011:5;8888:129;;;;;;;;;;:::i;:::-;;;;;;;;1628:1:8::0;2563:7;:22;;;;8566:458:1;;;:::o;1501:24::-;;;;;;;;;;;;;:::o;1411:32::-;;;;;;;;;;;;;:::o;629:33::-;;;;;;;;;;;;;:::o;1663:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2103:122::-;2160:21;;:::i;:::-;2200:13;:18;2214:3;2200:18;;;;;;;;;;;;;;;2193:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2103:122;;;:::o;877:203:6:-;977:96;997:5;1027:27;;;1056:4;1062:2;1066:5;1004:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;977:19;:96::i;:::-;877:203;;;;:::o;1321:134:4:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;;1321:134;;;;:::o;11710:302:0:-;11787:5;11839:1;11830:6;:10;11812:6;:13;:29;;11804:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11874:14;11962:6;11956:3;11948:6;11944:16;11940:29;11934:36;11922:48;;11997:8;11990:15;;;11710:302;;;;:::o;12329:305::-;12407:6;12460:1;12451:6;:10;12433:6;:13;:29;;12425:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12495:15;12584:6;12578:3;12570:6;12566:16;12562:29;12556:36;12544:48;;12619:8;12612:15;;;12329:305;;;;:::o;8865:2480::-;8999:12;9062:7;9053:6;:16;9035:6;:13;:35;;9027:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;9104:22;9174:7;9167:15;9200:1;9195:1895;;;;11231:4;11225:11;11212:24;;11282:4;11271:9;11267:20;11261:4;11254:34;9160:2142;;9195:1895;9369:4;9363:11;9350:24;;9996:2;9987:7;9983:16;10362:9;10355:17;10349:4;10345:28;10333:9;10322;10318:25;10314:60;10410:7;10406:2;10402:16;10654:6;10640:9;10633:17;10627:4;10623:28;10611:9;10603:6;10599:22;10595:57;10591:70;10436:417;10687:3;10683:2;10680:11;10436:417;;;10831:2;10825:9;10821:2;10814:21;10728:4;10724:2;10720:13;10714:19;;10768:4;10764:2;10760:13;10754:19;;10436:417;;;10440:239;10889:7;10878:9;10871:26;11071:2;11067:7;11062:2;11058;11054:11;11050:25;11044:4;11037:39;9202:1888;;;9160:2142;;11329:9;11322:16;;;8865:2480;;;;;:::o;13895:319::-;13974:7;14028:2;14019:6;:11;14001:6;:13;:30;;13993:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;14064:19;14161:6;14154:4;14146:6;14142:17;14138:30;14132:37;14117:52;;14196:11;14189:18;;;13895:319;;;;:::o;4230:801:1:-;4297:29;4329:16;4343:1;4329:4;:13;;:16;;;;:::i;:::-;4297:48;;4355:9;4367:15;4380:1;4367:4;:12;;:15;;;;:::i;:::-;4355:27;;4393:30;4440:3;4426:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4393:51;;4459:6;4454:134;4475:3;4471:7;;:1;:7;4454:134;;;4499:12;4514:26;4537:2;4533:1;:6;4529:1;:10;4514:4;:14;;:26;;;;:::i;:::-;4499:41;;4573:4;4554:13;4568:1;4554:16;;;;;;;;;;;;;:23;;;;;;;;;;;4454:134;4480:3;;;;;;;4454:134;;;;4598:29;4630:18;;;;;;;;;;;4598:50;;4679:22;4658:18;;:43;;;;;;;;;;;;;;;;;;4712:35;;:::i;:::-;4750:29;;;;;;;;4762:13;4750:29;;;;4777:1;4750:29;;;;;4712:67;;4825:16;4789:13;:33;4803:18;;;;;;;;;;;4789:33;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4933:10;;;;;;;;;;;4914:15;4907:36;4851:13;:37;4865:22;4851:37;;;;;;;;;;;;;;;:53;;;:92;;;;;;;;;;;;;;;;;;4959:65;4981:22;5005:18;;;;;;;;;;;4959:65;;;;;;;:::i;:::-;;;;;;;;4230:801;;;;;;:::o;5037:1373::-;5138:18;5159:15;5172:1;5159:4;:12;;:15;;;;:::i;:::-;5138:36;;5185:18;5206:15;5219:1;5206:4;:12;;:15;;;;:::i;:::-;5185:36;;5340:22;5365:23;5380:7;5365:4;:14;;:23;;;;:::i;:::-;5340:48;;5399:17;5419:16;5432:2;5419:4;:12;;:16;;;;:::i;:::-;5399:36;;5499:14;5516:19;5531:3;5516:4;:14;;:19;;;;:::i;:::-;5499:36;;5570:12;5554:28;;:12;:28;;;;5546:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5659:8;;;;;;;;;;;5643:24;;:12;:24;;;5635:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5727:8;;;;;;;;;;;5712:23;;:11;:23;;;5708:696;;5751:21;5775:18;5790:2;5775:4;:14;;:18;;;;:::i;:::-;5751:42;;5807:16;5853:11;5866:13;5836:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5826:55;;;;;;5807:74;;5973:21;5997:13;:23;6011:8;5997:23;;;;;;;;;;;;;;;;;;;;;5973:47;;6063:1;6038:27;;:13;:27;;;6034:138;;;6101:56;6120:8;6130:11;6143:13;6101:18;:56::i;:::-;6085:72;;6034:138;6199:13;6186:32;;;6219:14;6235:6;6186:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5708:696;;;;;;6273:21;6297:23;6312:7;6297:4;:14;;:23;;;;:::i;:::-;6273:47;;6335:58;6370:14;6386:6;6342:13;6335:34;;;;:58;;;;;:::i;:::-;5708:696;;5037:1373;;;;;;:::o;2959:751:6:-;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:4:-;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;11351:353:0:-;11430:7;11484:2;11475:6;:11;11457:6;:13;:30;;11449:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11520:19;11631:27;11621:6;11614:4;11606:6;11602:17;11598:30;11592:37;11588:71;11573:86;;11686:11;11679:18;;;11351:353;;;;:::o;13579:310::-;13658:7;13712:2;13703:6;:11;13685:6;:13;:30;;13677:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13748:16;13839:6;13832:4;13824:6;13820:17;13816:30;13810:37;13798:49;;13874:8;13867:15;;;13579:310;;;;:::o;6416:906:1:-;6517:13;6709:19;6739:18;;;;;;;;;;;6731:27;;6709:49;;6810:4;6804:11;6842:66;6835:5;6828:81;6947:11;6940:4;6933:5;6929:16;6922:37;6997:66;6990:4;6983:5;6979:16;6972:92;7103:4;7096:5;7093:1;7086:22;7077:31;;6777:341;7169:5;7156:30;;;7187:11;7200:13;7156:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7272:5;7250:13;:19;7264:4;7250:19;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7311:4;7287:14;:21;7302:5;7287:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6416:906;;;;;;:::o;696:175:6:-;778:86;798:5;828:23;;;853:2;857:5;805:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;778:19;:86::i;:::-;696:175;;;:::o;3770:194:7:-;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;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:737::-;;;;;;2013:3;2001:9;1992:7;1988:23;1984:33;1981:2;;;2030:1;2027;2020:12;1981:2;2065:1;2082:53;2127:7;2118:6;2107:9;2103:22;2082:53;:::i;:::-;2072:63;;2044:97;2172:2;2190:53;2235:7;2226:6;2215:9;2211:22;2190:53;:::i;:::-;2180:63;;2151:98;2280:2;2298:53;2343:7;2334:6;2323:9;2319:22;2298:53;:::i;:::-;2288:63;;2259:98;2388:2;2406:51;2449:7;2440:6;2429:9;2425:22;2406:51;:::i;:::-;2396:61;;2367:96;2494:3;2513:52;2557:7;2548:6;2537:9;2533:22;2513:52;:::i;:::-;2503:62;;2473:98;1975:606;;;;;;;;:::o;2588:257::-;;2700:2;2688:9;2679:7;2675:23;2671:32;2668:2;;;2716:1;2713;2706:12;2668:2;2751:1;2768:61;2821:7;2812:6;2801:9;2797:22;2768:61;:::i;:::-;2758:71;;2730:105;2662:183;;;;:::o;2852:241::-;;2956:2;2944:9;2935:7;2931:23;2927:32;2924:2;;;2972:1;2969;2962:12;2924:2;3007:1;3024:53;3069:7;3060:6;3049:9;3045:22;3024:53;:::i;:::-;3014:63;;2986:97;2918:175;;;;:::o;3100:263::-;;3215:2;3203:9;3194:7;3190:23;3186:32;3183:2;;;3231:1;3228;3221:12;3183:2;3266:1;3283:64;3339:7;3330:6;3319:9;3315:22;3283:64;:::i;:::-;3273:74;;3245:108;3177:186;;;;:::o;3370:485::-;;;;3505:2;3493:9;3484:7;3480:23;3476:32;3473:2;;;3521:1;3518;3511:12;3473:2;3556:1;3573:53;3618:7;3609:6;3598:9;3594:22;3573:53;:::i;:::-;3563:63;;3535:97;3663:2;3681:51;3724:7;3715:6;3704:9;3700:22;3681:51;:::i;:::-;3671:61;;3642:96;3769:2;3787:52;3831:7;3822:6;3811:9;3807:22;3787:52;:::i;:::-;3777:62;;3748:97;3467:388;;;;;:::o;3862:365::-;;;3985:2;3973:9;3964:7;3960:23;3956:32;3953:2;;;4001:1;3998;3991:12;3953:2;4064:1;4053:9;4049:17;4036:31;4087:18;4079:6;4076:30;4073:2;;;4119:1;4116;4109:12;4073:2;4147:64;4203:7;4194:6;4183:9;4179:22;4147:64;:::i;:::-;4129:82;;;;4015:202;3947:280;;;;;:::o;4234:263::-;;4349:2;4337:9;4328:7;4324:23;4320:32;4317:2;;;4365:1;4362;4355:12;4317:2;4400:1;4417:64;4473:7;4464:6;4453:9;4449:22;4417:64;:::i;:::-;4407:74;;4379:108;4311:186;;;;:::o;4504:239::-;;4607:2;4595:9;4586:7;4582:23;4578:32;4575:2;;;4623:1;4620;4613:12;4575:2;4658:1;4675:52;4719:7;4710:6;4699:9;4695:22;4675:52;:::i;:::-;4665:62;;4637:96;4569:174;;;;:::o;4750:259::-;;4863:2;4851:9;4842:7;4838:23;4834:32;4831:2;;;4879:1;4876;4869:12;4831:2;4914:1;4931:62;4985:7;4976:6;4965:9;4961:22;4931:62;:::i;:::-;4921:72;;4893:106;4825:184;;;;:::o;5017:173::-;;5104:46;5146:3;5138:6;5104:46;:::i;:::-;5179:4;5174:3;5170:14;5156:28;;5097:93;;;;:::o;5198:142::-;5289:45;5328:5;5289:45;:::i;:::-;5284:3;5277:58;5271:69;;:::o;5347:103::-;5420:24;5438:5;5420:24;:::i;:::-;5415:3;5408:37;5402:48;;:::o;5457:113::-;5540:24;5558:5;5540:24;:::i;:::-;5535:3;5528:37;5522:48;;:::o;5608:670::-;;5743:54;5791:5;5743:54;:::i;:::-;5810:76;5879:6;5874:3;5810:76;:::i;:::-;5803:83;;5907:56;5957:5;5907:56;:::i;:::-;5983:7;6011:1;5996:260;6021:6;6018:1;6015:13;5996:260;;;6088:6;6082:13;6109:63;6168:3;6153:13;6109:63;:::i;:::-;6102:70;;6189:60;6242:6;6189:60;:::i;:::-;6179:70;;6053:203;6043:1;6040;6036:9;6031:14;;5996:260;;;6000:14;6269:3;6262:10;;5722:556;;;;;;;:::o;6286:104::-;6363:21;6378:5;6363:21;:::i;:::-;6358:3;6351:34;6345:45;;:::o;6397:113::-;6480:24;6498:5;6480:24;:::i;:::-;6475:3;6468:37;6462:48;;:::o;6517:152::-;6618:45;6638:24;6656:5;6638:24;:::i;:::-;6618:45;:::i;:::-;6613:3;6606:58;6600:69;;:::o;6676:356::-;;6804:38;6836:5;6804:38;:::i;:::-;6854:88;6935:6;6930:3;6854:88;:::i;:::-;6847:95;;6947:52;6992:6;6987:3;6980:4;6973:5;6969:16;6947:52;:::i;:::-;7020:6;7015:3;7011:16;7004:23;;6784:248;;;;;:::o;7039:347::-;;7151:39;7184:5;7151:39;:::i;:::-;7202:71;7266:6;7261:3;7202:71;:::i;:::-;7195:78;;7278:52;7323:6;7318:3;7311:4;7304:5;7300:16;7278:52;:::i;:::-;7351:29;7373:6;7351:29;:::i;:::-;7346:3;7342:39;7335:46;;7131:255;;;;;:::o;7394:318::-;;7554:67;7618:2;7613:3;7554:67;:::i;:::-;7547:74;;7654:20;7650:1;7645:3;7641:11;7634:41;7703:2;7698:3;7694:12;7687:19;;7540:172;;;:::o;7721:324::-;;7881:67;7945:2;7940:3;7881:67;:::i;:::-;7874:74;;7981:26;7977:1;7972:3;7968:11;7961:47;8036:2;8031:3;8027:12;8020:19;;7867:178;;;:::o;8054:381::-;;8214:67;8278:2;8273:3;8214:67;:::i;:::-;8207:74;;8314:34;8310:1;8305:3;8301:11;8294:55;8383:14;8378:2;8373:3;8369:12;8362:36;8426:2;8421:3;8417:12;8410:19;;8200:235;;;:::o;8444:394::-;;8604:67;8668:2;8663:3;8604:67;:::i;:::-;8597:74;;8704:34;8700:1;8695:3;8691:11;8684:55;8773:27;8768:2;8763:3;8759:12;8752:49;8829:2;8824:3;8820:12;8813:19;;8590:248;;;:::o;8847:318::-;;9007:67;9071:2;9066:3;9007:67;:::i;:::-;9000:74;;9107:20;9103:1;9098:3;9094:11;9087:41;9156:2;9151:3;9147:12;9140:19;;8993:172;;;:::o;9174:324::-;;9334:67;9398:2;9393:3;9334:67;:::i;:::-;9327:74;;9434:26;9430:1;9425:3;9421:11;9414:47;9489:2;9484:3;9480:12;9473:19;;9320:178;;;:::o;9507:315::-;;9667:67;9731:2;9726:3;9667:67;:::i;:::-;9660:74;;9767:17;9763:1;9758:3;9754:11;9747:38;9813:2;9808:3;9804:12;9797:19;;9653:169;;;:::o;9831:321::-;;9991:67;10055:2;10050:3;9991:67;:::i;:::-;9984:74;;10091:23;10087:1;10082:3;10078:11;10071:44;10143:2;10138:3;10134:12;10127:19;;9977:175;;;:::o;10161:308::-;;10321:66;10385:1;10380:3;10321:66;:::i;:::-;10314:73;;10420:11;10416:1;10411:3;10407:11;10400:32;10460:2;10455:3;10451:12;10444:19;;10307:162;;;:::o;10478:320::-;;10638:67;10702:2;10697:3;10638:67;:::i;:::-;10631:74;;10738:22;10734:1;10729:3;10725:11;10718:43;10789:2;10784:3;10780:12;10773:19;;10624:174;;;:::o;10807:325::-;;10967:67;11031:2;11026:3;10967:67;:::i;:::-;10960:74;;11067:27;11063:1;11058:3;11054:11;11047:48;11123:2;11118:3;11114:12;11107:19;;10953:179;;;:::o;11141:324::-;;11301:67;11365:2;11360:3;11301:67;:::i;:::-;11294:74;;11401:26;11397:1;11392:3;11388:11;11381:47;11456:2;11451:3;11447:12;11440:19;;11287:178;;;:::o;11474:329::-;;11634:67;11698:2;11693:3;11634:67;:::i;:::-;11627:74;;11734:31;11730:1;11725:3;11721:11;11714:52;11794:2;11789:3;11785:12;11778:19;;11620:183;;;:::o;11812:379::-;;11972:67;12036:2;12031:3;11972:67;:::i;:::-;11965:74;;12072:34;12068:1;12063:3;12059:11;12052:55;12141:12;12136:2;12131:3;12127:12;12120:34;12182:2;12177:3;12173:12;12166:19;;11958:233;;;:::o;12200:375::-;;12360:67;12424:2;12419:3;12360:67;:::i;:::-;12353:74;;12460:34;12456:1;12451:3;12447:11;12440:55;12529:8;12524:2;12519:3;12515:12;12508:30;12566:2;12561:3;12557:12;12550:19;;12346:229;;;:::o;12584:331::-;;12744:67;12808:2;12803:3;12744:67;:::i;:::-;12737:74;;12844:33;12840:1;12835:3;12831:11;12824:54;12906:2;12901:3;12897:12;12890:19;;12730:185;;;:::o;12988:616::-;;13145:4;13140:3;13136:14;13228:4;13221:5;13217:16;13211:23;13280:3;13274:4;13270:14;13263:4;13258:3;13254:14;13247:38;13300:103;13398:4;13384:12;13300:103;:::i;:::-;13292:111;;13165:250;13499:4;13492:5;13488:16;13482:23;13511:61;13566:4;13561:3;13557:14;13543:12;13511:61;:::i;:::-;13425:153;13595:4;13588:11;;13118:486;;;;;:::o;13611:113::-;13694:24;13712:5;13694:24;:::i;:::-;13689:3;13682:37;13676:48;;:::o;13731:100::-;13802:23;13819:5;13802:23;:::i;:::-;13797:3;13790:36;13784:47;;:::o;13838:110::-;13919:23;13936:5;13919:23;:::i;:::-;13914:3;13907:36;13901:47;;:::o;13955:107::-;14034:22;14050:5;14034:22;:::i;:::-;14029:3;14022:35;14016:46;;:::o;14069:144::-;14166:41;14184:22;14200:5;14184:22;:::i;:::-;14166:41;:::i;:::-;14161:3;14154:54;14148:65;;:::o;14220:271::-;;14373:93;14462:3;14453:6;14373:93;:::i;:::-;14366:100;;14483:3;14476:10;;14354:137;;;;:::o;14498:383::-;;14650:71;14717:3;14708:6;14650:71;:::i;:::-;14743:1;14738:3;14734:11;14727:18;;14756:75;14827:3;14818:6;14756:75;:::i;:::-;14853:2;14848:3;14844:12;14837:19;;14873:3;14866:10;;14638:243;;;;;:::o;14888:222::-;;15015:2;15004:9;15000:18;14992:26;;15029:71;15097:1;15086:9;15082:17;15073:6;15029:71;:::i;:::-;14986:124;;;;:::o;15117:238::-;;15252:2;15241:9;15237:18;15229:26;;15266:79;15342:1;15331:9;15327:17;15318:6;15266:79;:::i;:::-;15223:132;;;;:::o;15362:349::-;;15525:2;15514:9;15510:18;15502:26;;15539:79;15615:1;15604:9;15600:17;15591:6;15539:79;:::i;:::-;15629:72;15697:2;15686:9;15682:18;15673:6;15629:72;:::i;:::-;15496:215;;;;;:::o;15718:444::-;;15901:2;15890:9;15886:18;15878:26;;15915:71;15983:1;15972:9;15968:17;15959:6;15915:71;:::i;:::-;15997:72;16065:2;16054:9;16050:18;16041:6;15997:72;:::i;:::-;16080;16148:2;16137:9;16133:18;16124:6;16080:72;:::i;:::-;15872:290;;;;;;:::o;16169:333::-;;16324:2;16313:9;16309:18;16301:26;;16338:71;16406:1;16395:9;16391:17;16382:6;16338:71;:::i;:::-;16420:72;16488:2;16477:9;16473:18;16464:6;16420:72;:::i;:::-;16295:207;;;;;:::o;16509:210::-;;16630:2;16619:9;16615:18;16607:26;;16644:65;16706:1;16695:9;16691:17;16682:6;16644:65;:::i;:::-;16601:118;;;;:::o;16726:548::-;;16933:3;16922:9;16918:19;16910:27;;16948:71;17016:1;17005:9;17001:17;16992:6;16948:71;:::i;:::-;17030:68;17094:2;17083:9;17079:18;17070:6;17030:68;:::i;:::-;17109:72;17177:2;17166:9;17162:18;17153:6;17109:72;:::i;:::-;17192;17260:2;17249:9;17245:18;17236:6;17192:72;:::i;:::-;16904:370;;;;;;;:::o;17281:310::-;;17428:2;17417:9;17413:18;17405:26;;17478:9;17472:4;17468:20;17464:1;17453:9;17449:17;17442:47;17503:78;17576:4;17567:6;17503:78;:::i;:::-;17495:86;;17399:192;;;;:::o;17598:416::-;;17798:2;17787:9;17783:18;17775:26;;17848:9;17842:4;17838:20;17834:1;17823:9;17819:17;17812:47;17873:131;17999:4;17873:131;:::i;:::-;17865:139;;17769:245;;;:::o;18021:416::-;;18221:2;18210:9;18206:18;18198:26;;18271:9;18265:4;18261:20;18257:1;18246:9;18242:17;18235:47;18296:131;18422:4;18296:131;:::i;:::-;18288:139;;18192:245;;;:::o;18444:416::-;;18644:2;18633:9;18629:18;18621:26;;18694:9;18688:4;18684:20;18680:1;18669:9;18665:17;18658:47;18719:131;18845:4;18719:131;:::i;:::-;18711:139;;18615:245;;;:::o;18867:416::-;;19067:2;19056:9;19052:18;19044:26;;19117:9;19111:4;19107:20;19103:1;19092:9;19088:17;19081:47;19142:131;19268:4;19142:131;:::i;:::-;19134:139;;19038:245;;;:::o;19290:416::-;;19490:2;19479:9;19475:18;19467:26;;19540:9;19534:4;19530:20;19526:1;19515:9;19511:17;19504:47;19565:131;19691:4;19565:131;:::i;:::-;19557:139;;19461:245;;;:::o;19713:416::-;;19913:2;19902:9;19898:18;19890:26;;19963:9;19957:4;19953:20;19949:1;19938:9;19934:17;19927:47;19988:131;20114:4;19988:131;:::i;:::-;19980:139;;19884:245;;;:::o;20136:416::-;;20336:2;20325:9;20321:18;20313:26;;20386:9;20380:4;20376:20;20372:1;20361:9;20357:17;20350:47;20411:131;20537:4;20411:131;:::i;:::-;20403:139;;20307:245;;;:::o;20559:416::-;;20759:2;20748:9;20744:18;20736:26;;20809:9;20803:4;20799:20;20795:1;20784:9;20780:17;20773:47;20834:131;20960:4;20834:131;:::i;:::-;20826:139;;20730:245;;;:::o;20982:416::-;;21182:2;21171:9;21167:18;21159:26;;21232:9;21226:4;21222:20;21218:1;21207:9;21203:17;21196:47;21257:131;21383:4;21257:131;:::i;:::-;21249:139;;21153:245;;;:::o;21405:416::-;;21605:2;21594:9;21590:18;21582:26;;21655:9;21649:4;21645:20;21641:1;21630:9;21626:17;21619:47;21680:131;21806:4;21680:131;:::i;:::-;21672:139;;21576:245;;;:::o;21828:416::-;;22028:2;22017:9;22013:18;22005:26;;22078:9;22072:4;22068:20;22064:1;22053:9;22049:17;22042:47;22103:131;22229:4;22103:131;:::i;:::-;22095:139;;21999:245;;;:::o;22251:416::-;;22451:2;22440:9;22436:18;22428:26;;22501:9;22495:4;22491:20;22487:1;22476:9;22472:17;22465:47;22526:131;22652:4;22526:131;:::i;:::-;22518:139;;22422:245;;;:::o;22674:416::-;;22874:2;22863:9;22859:18;22851:26;;22924:9;22918:4;22914:20;22910:1;22899:9;22895:17;22888:47;22949:131;23075:4;22949:131;:::i;:::-;22941:139;;22845:245;;;:::o;23097:416::-;;23297:2;23286:9;23282:18;23274:26;;23347:9;23341:4;23337:20;23333:1;23322:9;23318:17;23311:47;23372:131;23498:4;23372:131;:::i;:::-;23364:139;;23268:245;;;:::o;23520:416::-;;23720:2;23709:9;23705:18;23697:26;;23770:9;23764:4;23760:20;23756:1;23745:9;23741:17;23734:47;23795:131;23921:4;23795:131;:::i;:::-;23787:139;;23691:245;;;:::o;23943:416::-;;24143:2;24132:9;24128:18;24120:26;;24193:9;24187:4;24183:20;24179:1;24168:9;24164:17;24157:47;24218:131;24344:4;24218:131;:::i;:::-;24210:139;;24114:245;;;:::o;24366:382::-;;24549:2;24538:9;24534:18;24526:26;;24599:9;24593:4;24589:20;24585:1;24574:9;24570:17;24563:47;24624:114;24733:4;24724:6;24624:114;:::i;:::-;24616:122;;24520:228;;;;:::o;24755:218::-;;24880:2;24869:9;24865:18;24857:26;;24894:69;24960:1;24949:9;24945:17;24936:6;24894:69;:::i;:::-;24851:122;;;;:::o;24980:325::-;;25131:2;25120:9;25116:18;25108:26;;25145:69;25211:1;25200:9;25196:17;25187:6;25145:69;:::i;:::-;25225:70;25291:2;25280:9;25276:18;25267:6;25225:70;:::i;:::-;25102:203;;;;;:::o;25312:325::-;;25463:2;25452:9;25448:18;25440:26;;25477:67;25541:1;25530:9;25526:17;25517:6;25477:67;:::i;:::-;25555:72;25623:2;25612:9;25608:18;25599:6;25555:72;:::i;:::-;25434:203;;;;;:::o;25644:648::-;;25873:3;25862:9;25858:19;25850:27;;25888:67;25952:1;25941:9;25937:17;25928:6;25888:67;:::i;:::-;25966:68;26030:2;26019:9;26015:18;26006:6;25966:68;:::i;:::-;26045:72;26113:2;26102:9;26098:18;26089:6;26045:72;:::i;:::-;26128;26196:2;26185:9;26181:18;26172:6;26128:72;:::i;:::-;26211:71;26277:3;26266:9;26262:19;26253:6;26211:71;:::i;:::-;25844:448;;;;;;;;:::o;26299:151::-;;26385:3;26377:11;;26423:4;26418:3;26414:14;26406:22;;26371:79;;;:::o;26457:137::-;;26566:5;26560:12;26550:22;;26531:63;;;:::o;26601:121::-;;26694:5;26688:12;26678:22;;26659:63;;;:::o;26729:122::-;;26823:5;26817:12;26807:22;;26788:63;;;:::o;26858:108::-;;26956:4;26951:3;26947:14;26939:22;;26933:33;;;:::o;26974:168::-;;27094:6;27089:3;27082:19;27131:4;27126:3;27122:14;27107:29;;27075:67;;;;:::o;27151:144::-;;27286:3;27271:18;;27264:31;;;;:::o;27304:163::-;;27419:6;27414:3;27407:19;27456:4;27451:3;27447:14;27432:29;;27400:67;;;;:::o;27475:91::-;;27537:24;27555:5;27537:24;:::i;:::-;27526:35;;27520:46;;;:::o;27573:85::-;;27646:5;27639:13;27632:21;27621:32;;27615:43;;;:::o;27665:72::-;;27727:5;27716:16;;27710:27;;;:::o;27744:121::-;;27817:42;27810:5;27806:54;27795:65;;27789:76;;;:::o;27872:72::-;;27934:5;27923:16;;27917:27;;;:::o;27951:88::-;;28023:10;28016:5;28012:22;28001:33;;27995:44;;;:::o;28046:81::-;;28117:4;28110:5;28106:16;28095:27;;28089:38;;;:::o;28134:129::-;;28221:37;28252:5;28221:37;:::i;:::-;28208:50;;28202:61;;;:::o;28270:121::-;;28349:37;28380:5;28349:37;:::i;:::-;28336:50;;28330:61;;;:::o;28398:108::-;;28477:24;28495:5;28477:24;:::i;:::-;28464:37;;28458:48;;;:::o;28514:268::-;28579:1;28586:101;28600:6;28597:1;28594:13;28586:101;;;28676:1;28671:3;28667:11;28661:18;28657:1;28652:3;28648:11;28641:39;28622:2;28619:1;28615:10;28610:15;;28586:101;;;28702:6;28699:1;28696:13;28693:2;;;28767:1;28758:6;28753:3;28749:16;28742:27;28693:2;28563:219;;;;:::o;28790:74::-;;28854:5;28843:16;;28837:27;;;:::o;28871:88::-;;28933:21;28948:5;28933:21;:::i;:::-;28922:32;;28916:43;;;:::o;28966:97::-;;29054:2;29050:7;29045:2;29038:5;29034:14;29030:28;29020:38;;29014:49;;;:::o;29071:96::-;;29151:5;29146:3;29142:15;29120:37;;29114:53;;;:::o;29175:117::-;29244:24;29262:5;29244:24;:::i;:::-;29237:5;29234:35;29224:2;;29283:1;29280;29273:12;29224:2;29218:74;:::o;29299:111::-;29365:21;29380:5;29365:21;:::i;:::-;29358:5;29355:32;29345:2;;29401:1;29398;29391:12;29345:2;29339:71;:::o;29417:117::-;29486:24;29504:5;29486:24;:::i;:::-;29479:5;29476:35;29466:2;;29525:1;29522;29515:12;29466:2;29460:74;:::o;29541:117::-;29610:24;29628:5;29610:24;:::i;:::-;29603:5;29600:35;29590:2;;29649:1;29646;29639:12;29590:2;29584:74;:::o;29665:115::-;29733:23;29750:5;29733:23;:::i;:::-;29726:5;29723:34;29713:2;;29771:1;29768;29761:12;29713:2;29707:73;:::o;29787:113::-;29854:22;29870:5;29854:22;:::i;:::-;29847:5;29844:33;29834:2;;29891:1;29888;29881:12;29834:2;29828:72;:::o", + "source": "// contracts/Wormhole.sol\n// SPDX-License-Identifier: Apache 2\n\n// TODO(hendrik): switch-over feature\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 \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\nimport \"./BytesLib.sol\";\nimport \"./WrappedAsset.sol\";\n\ncontract Wormhole is ReentrancyGuard {\n using SafeERC20 for IERC20;\n using BytesLib for bytes;\n using SafeMath for uint256;\n\n // Address of the Wrapped asset template\n address public wrappedAssetMaster;\n\n // Chain ID of Ethereum\n uint8 CHAIN_ID = 2;\n\n // Address of the official WETH contract\n address constant WETHAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n\n struct GuardianSet {\n address[] keys;\n uint32 expiration_time;\n }\n\n event LogGuardianSetChanged(\n uint32 oldGuardianIndex,\n uint32 newGuardianIndex\n );\n\n event LogTokensLocked(\n uint8 target_chain,\n uint8 token_chain,\n bytes32 indexed token,\n bytes32 indexed sender,\n bytes32 recipient,\n uint256 amount,\n uint32 nonce\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 getGuardianSet(uint32 idx) view public returns (GuardianSet memory gs) {\n return guardian_sets[idx];\n }\n\n function submitVAA(\n bytes calldata vaa\n ) public nonReentrant {\n 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 len_signers = vaa.toUint8(5);\n uint offset = 6 + 66 * len_signers;\n\n // Load 4 bytes timestamp\n uint32 timestamp = vaa.toUint32(offset);\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(offset, vaa.length - offset));\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(guardian_set.keys.length * 3 / 4 + 1 <= len_signers, \"no quorum\");\n\n for (uint i = 0; i < len_signers; i++) {\n uint8 index = vaa.toUint8(6 + i * 66);\n bytes32 r = vaa.toBytes32(7 + i * 66);\n bytes32 s = vaa.toBytes32(39 + i * 66);\n uint8 v = vaa.toUint8(71 + i * 66);\n v += 27;\n require(ecrecover(hash, v, r, s) == guardian_set.keys[index], \"VAA signature invalid\");\n }\n\n uint8 action = vaa.toUint8(offset + 4);\n bytes memory payload = vaa.slice(offset + 5, vaa.length - (offset + 5));\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 uint32 new_guardian_set_index = data.toUint32(0);\n uint8 len = data.toUint8(4);\n\n address[] memory new_guardians = new address[](len);\n for (uint i = 0; i < len; i++) {\n address addr = data.toAddress(5 + i * 20);\n new_guardians[i] = addr;\n }\n\n uint32 old_guardian_set_index = guardian_set_index;\n guardian_set_index = new_guardian_set_index;\n\n GuardianSet memory new_guardian_set = GuardianSet(new_guardians, 0);\n guardian_sets[guardian_set_index] = new_guardian_set;\n guardian_sets[old_guardian_set_index].expiration_time = uint32(block.timestamp) + vaa_expiry;\n\n emit LogGuardianSetChanged(old_guardian_set_index, guardian_set_index);\n }\n\n function vaaTransfer(bytes memory data) private {\n //uint32 nonce = data.toUint64(0);\n uint8 source_chain = data.toUint8(4);\n\n uint8 target_chain = data.toUint8(5);\n //bytes32 source_address = data.toBytes32(6);\n //bytes32 target_address = data.toBytes32(38);\n address target_address = data.toAddress(38 + 12);\n\n uint8 token_chain = data.toUint8(70);\n //bytes32 token_address = data.toBytes32(71);\n uint256 amount = data.toUint256(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 // TODO(hendrik): nonce\n function lockAssets(\n address asset,\n uint256 amount,\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce\n ) public nonReentrant {\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, nonce);\n }\n\n function lockETH(\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce\n ) public payable nonReentrant {\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, nonce);\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": [ - 1192 + 1181 ], "Wormhole": [ - 1181 + 1170 ] }, - "id": 1193, + "id": 1182, "license": "Apache 2", "nodeType": "SourceUnit", "nodes": [ { - "id": 455, + "id": 335, "literals": [ "solidity", "^", @@ -340,147 +338,169 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "64:23:2" + "src": "103:23:1" }, { - "id": 456, + "id": 336, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", - "src": "88:33:2" + "src": "127:33:1" }, { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 457, + "id": 337, "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 2034, - "src": "123:56:2", + "scope": 1182, + "sourceUnit": 2023, + "src": "162:56:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol", - "id": 458, + "id": 338, "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 2247, - "src": "180:59:2", + "scope": 1182, + "sourceUnit": 2236, + "src": "219:59:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "@openzeppelin/contracts/math/SafeMath.sol", - "id": 459, + "id": 339, "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 1956, - "src": "240:51:2", + "scope": 1182, + "sourceUnit": 1945, + "src": "279:51:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", + "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", + "id": 340, + "nodeType": "ImportDirective", + "scope": 1182, + "sourceUnit": 2480, + "src": "331:59:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/BytesLib.sol", "file": "./BytesLib.sol", - "id": 460, + "id": 341, "nodeType": "ImportDirective", - "scope": 1193, + "scope": 1182, "sourceUnit": 334, - "src": "292:24:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/SchnorrSECP256K1.sol", - "file": "./SchnorrSECP256K1.sol", - "id": 461, - "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 454, - "src": "317:32:2", + "src": "391:24:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/WrappedAsset.sol", "file": "./WrappedAsset.sol", - "id": 462, + "id": 342, "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 1737, - "src": "350:28:2", + "scope": 1182, + "sourceUnit": 1726, + "src": "416:28:1", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, - "baseContracts": [], - "contractDependencies": [], + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 343, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2479, + "src": "467:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$2479", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 344, + "nodeType": "InheritanceSpecifier", + "src": "467:15:1" + } + ], + "contractDependencies": [ + 2479 + ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1181, + "id": 1170, "linearizedBaseContracts": [ - 1181 + 1170, + 2479 ], "name": "Wormhole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 465, + "id": 347, "libraryName": { "contractScope": null, - "id": 463, + "id": 345, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2246, - "src": "410:9:2", + "referencedDeclaration": 2235, + "src": "495:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$2246", + "typeIdentifier": "t_contract$_SafeERC20_$2235", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", - "src": "404:27:2", + "src": "489:27:1", "typeName": { "contractScope": null, - "id": 464, + "id": 346, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2033, - "src": "424:6:2", + "referencedDeclaration": 2022, + "src": "509:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } } }, { - "id": 468, + "id": 350, "libraryName": { "contractScope": null, - "id": 466, + "id": 348, "name": "BytesLib", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 333, - "src": "442:8:2", + "src": "527:8:1", "typeDescriptions": { "typeIdentifier": "t_contract$_BytesLib_$333", "typeString": "library BytesLib" } }, "nodeType": "UsingForDirective", - "src": "436:25:2", + "src": "521:25:1", "typeName": { - "id": 467, + "id": 349, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "455:5:2", + "src": "540:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -488,26 +508,26 @@ } }, { - "id": 471, + "id": 353, "libraryName": { "contractScope": null, - "id": 469, + "id": 351, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1955, - "src": "472:8:2", + "referencedDeclaration": 1944, + "src": "557:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1955", + "typeIdentifier": "t_contract$_SafeMath_$1944", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "466:27:2", + "src": "551:27:1", "typeName": { - "id": 470, + "id": 352, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "485:7:2", + "src": "570:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -517,13 +537,13 @@ { "constant": false, "functionSelector": "99da1d3c", - "id": 473, + "id": 355, "mutability": "mutable", "name": "wrappedAssetMaster", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "544:33:2", + "scope": 1170, + "src": "629:33:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -531,10 +551,10 @@ "typeString": "address" }, "typeName": { - "id": 472, + "id": 354, "name": "address", "nodeType": "ElementaryTypeName", - "src": "544:7:2", + "src": "629:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -546,13 +566,13 @@ }, { "constant": false, - "id": 476, + "id": 358, "mutability": "mutable", "name": "CHAIN_ID", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "612:18:2", + "scope": 1170, + "src": "697:18:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -560,10 +580,10 @@ "typeString": "uint8" }, "typeName": { - "id": 474, + "id": 356, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "612:5:2", + "src": "697:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -572,14 +592,14 @@ "value": { "argumentTypes": null, "hexValue": "32", - "id": 475, + "id": 357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "629:1:2", + "src": "714:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -591,13 +611,13 @@ }, { "constant": true, - "id": 479, + "id": 361, "mutability": "constant", "name": "WETHAddress", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "682:73:2", + "scope": 1170, + "src": "767:73:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -605,10 +625,10 @@ "typeString": "address" }, "typeName": { - "id": 477, + "id": 359, "name": "address", "nodeType": "ElementaryTypeName", - "src": "682:7:2", + "src": "767:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -618,14 +638,14 @@ "value": { "argumentTypes": null, "hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332", - "id": 478, + "id": 360, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "713:42:2", + "src": "798:42:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -637,31 +657,42 @@ }, { "canonicalName": "Wormhole.GuardianSet", - "id": 486, + "id": 367, "members": [ { "constant": false, - "id": 481, + "id": 364, "mutability": "mutable", - "name": "x", + "name": "keys", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 486, - "src": "791:9:2", + "scope": 367, + "src": "876:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" }, "typeName": { - "id": 480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "791:7:2", + "baseType": { + "id": 362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "876:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 363, + "length": null, + "nodeType": "ArrayTypeName", + "src": "876:9:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, @@ -669,41 +700,13 @@ }, { "constant": false, - "id": 483, - "mutability": "mutable", - "name": "parity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 486, - "src": "810:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 482, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "810:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 485, + "id": 366, "mutability": "mutable", "name": "expiration_time", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 486, - "src": "832:22:2", + "scope": 367, + "src": "900:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -711,10 +714,10 @@ "typeString": "uint32" }, "typeName": { - "id": 484, + "id": 365, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "832:6:2", + "src": "900:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -726,46 +729,44 @@ ], "name": "GuardianSet", "nodeType": "StructDefinition", - "scope": 1181, - "src": "762:99:2", + "scope": 1170, + "src": "847:82:1", "visibility": "public" }, { "anonymous": false, "documentation": null, - "id": 492, + "id": 373, "name": "LogGuardianSetChanged", "nodeType": "EventDefinition", "parameters": { - "id": 491, + "id": 372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 488, - "indexed": true, + "id": 369, + "indexed": false, "mutability": "mutable", - "name": "oldGuardian", + "name": "oldGuardianIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 492, - "src": "904:31:2", + "scope": 373, + "src": "972:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "contractScope": null, - "id": 487, - "name": "GuardianSet", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "904:11:2", + "id": 368, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "972:6:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", - "typeString": "struct Wormhole.GuardianSet" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, @@ -773,60 +774,58 @@ }, { "constant": false, - "id": 490, - "indexed": true, + "id": 371, + "indexed": false, "mutability": "mutable", - "name": "newGuardian", + "name": "newGuardianIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 492, - "src": "945:31:2", + "scope": 373, + "src": "1005:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "contractScope": null, - "id": 489, - "name": "GuardianSet", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "945:11:2", + "id": 370, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1005:6:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", - "typeString": "struct Wormhole.GuardianSet" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, "visibility": "internal" } ], - "src": "894:88:2" + "src": "962:72:1" }, - "src": "867:116:2" + "src": "935:100:1" }, { "anonymous": false, "documentation": null, - "id": 506, + "id": 389, "name": "LogTokensLocked", "nodeType": "EventDefinition", "parameters": { - "id": 505, + "id": 388, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 494, + "id": 375, "indexed": false, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1020:18:2", + "scope": 389, + "src": "1072:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -834,10 +833,10 @@ "typeString": "uint8" }, "typeName": { - "id": 493, + "id": 374, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1020:5:2", + "src": "1072:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -848,14 +847,14 @@ }, { "constant": false, - "id": 496, + "id": 377, "indexed": false, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1048:17:2", + "scope": 389, + "src": "1100:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -863,10 +862,10 @@ "typeString": "uint8" }, "typeName": { - "id": 495, + "id": 376, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1048:5:2", + "src": "1100:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -877,14 +876,14 @@ }, { "constant": false, - "id": 498, + "id": 379, "indexed": true, "mutability": "mutable", "name": "token", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1075:21:2", + "scope": 389, + "src": "1127:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -892,10 +891,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 497, + "id": 378, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1075:7:2", + "src": "1127:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -906,14 +905,14 @@ }, { "constant": false, - "id": 500, + "id": 381, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1106:22:2", + "scope": 389, + "src": "1158:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -921,10 +920,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 499, + "id": 380, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1106:7:2", + "src": "1158:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -935,14 +934,14 @@ }, { "constant": false, - "id": 502, + "id": 383, "indexed": false, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1138:17:2", + "scope": 389, + "src": "1190:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -950,10 +949,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 501, + "id": 382, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1138:7:2", + "src": "1190:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -964,14 +963,14 @@ }, { "constant": false, - "id": 504, + "id": 385, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1165:14:2", + "scope": 389, + "src": "1217:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -979,10 +978,10 @@ "typeString": "uint256" }, "typeName": { - "id": 503, + "id": 384, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1165:7:2", + "src": "1217:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -990,55 +989,84 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 387, + "indexed": false, + "mutability": "mutable", + "name": "nonce", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 389, + "src": "1241:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 386, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1241:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1010:175:2" + "src": "1062:197:1" }, - "src": "989:197:2" + "src": "1041:219:1" }, { "constant": false, "functionSelector": "42b0aefa", - "id": 510, + "id": 393, "mutability": "mutable", "name": "guardian_sets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1245:51:2", + "scope": 1170, + "src": "1319:51:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "typeName": { - "id": 509, + "id": 392, "keyType": { - "id": 507, + "id": 390, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1253:6:2", + "src": "1327:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Mapping", - "src": "1245:30:2", + "src": "1319:30:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "valueType": { "contractScope": null, - "id": 508, + "id": 391, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "1263:11:2", + "referencedDeclaration": 367, + "src": "1337:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } } @@ -1049,13 +1077,13 @@ { "constant": false, "functionSelector": "822d82b3", - "id": 512, + "id": 395, "mutability": "mutable", "name": "guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1337:32:2", + "scope": 1170, + "src": "1411:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1063,10 +1091,10 @@ "typeString": "uint32" }, "typeName": { - "id": 511, + "id": 394, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1337:6:2", + "src": "1411:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1078,13 +1106,13 @@ { "constant": false, "functionSelector": "7f04d9e6", - "id": 514, + "id": 397, "mutability": "mutable", "name": "vaa_expiry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1427:24:2", + "scope": 1170, + "src": "1501:24:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1092,10 +1120,10 @@ "typeString": "uint32" }, "typeName": { - "id": 513, + "id": 396, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1427:6:2", + "src": "1501:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1106,13 +1134,13 @@ }, { "constant": false, - "id": 518, + "id": 401, "mutability": "mutable", "name": "consumedVAAs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1497:37:2", + "scope": 1170, + "src": "1571:37:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1120,28 +1148,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 517, + "id": 400, "keyType": { - "id": 515, + "id": 398, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1505:7:2", + "src": "1579:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1497:24:2", + "src": "1571:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 516, + "id": 399, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1516:4:2", + "src": "1590:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1154,13 +1182,13 @@ { "constant": false, "functionSelector": "b6694c2a", - "id": 522, + "id": 405, "mutability": "mutable", "name": "wrappedAssets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1589:48:2", + "scope": 1170, + "src": "1663:48:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1168,28 +1196,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 521, + "id": 404, "keyType": { - "id": 519, + "id": 402, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1597:7:2", + "src": "1671:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1589:27:2", + "src": "1663:27:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 520, + "id": 403, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1608:7:2", + "src": "1682:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1203,13 +1231,13 @@ { "constant": false, "functionSelector": "1a2be4da", - "id": 526, + "id": 409, "mutability": "mutable", "name": "isWrappedAsset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1643:46:2", + "scope": 1170, + "src": "1717:46:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1217,28 +1245,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 525, + "id": 408, "keyType": { - "id": 523, + "id": 406, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1651:7:2", + "src": "1725:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1643:24:2", + "src": "1717:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 524, + "id": 407, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1662:4:2", + "src": "1736:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1250,14 +1278,14 @@ }, { "body": { - "id": 553, + "id": 436, "nodeType": "Block", - "src": "1806:217:2", + "src": "1880:217:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 539, + "id": 422, "isConstant": false, "isLValue": false, "isPure": false, @@ -1266,29 +1294,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 535, + "id": 418, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "1816:13:2", + "referencedDeclaration": 393, + "src": "1890:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 537, + "id": 420, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 536, + "id": 419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1830:1:2", + "src": "1904:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1301,9 +1329,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1816:16:2", + "src": "1890:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, @@ -1311,43 +1339,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 538, + "id": 421, "name": "initial_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "1835:20:2", + "referencedDeclaration": 411, + "src": "1909:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "1816:39:2", + "src": "1890:39:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 540, + "id": 423, "nodeType": "ExpressionStatement", - "src": "1816:39:2" + "src": "1890:39:1" }, { "expression": { "argumentTypes": null, - "id": 543, + "id": 426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 541, + "id": 424, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "1908:18:2", + "referencedDeclaration": 395, + "src": "1982:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1358,14 +1386,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 542, + "id": 425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1929:1:2", + "src": "2003:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1373,32 +1401,32 @@ }, "value": "0" }, - "src": "1908:22:2", + "src": "1982:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 544, + "id": 427, "nodeType": "ExpressionStatement", - "src": "1908:22:2" + "src": "1982:22:1" }, { "expression": { "argumentTypes": null, - "id": 547, + "id": 430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 545, + "id": 428, "name": "vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "1940:10:2", + "referencedDeclaration": 397, + "src": "2014:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1408,43 +1436,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 546, + "id": 429, "name": "_vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "1953:11:2", + "referencedDeclaration": 415, + "src": "2027:11:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "1940:24:2", + "src": "2014:24:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 548, + "id": 431, "nodeType": "ExpressionStatement", - "src": "1940:24:2" + "src": "2014:24:1" }, { "expression": { "argumentTypes": null, - "id": 551, + "id": 434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 549, + "id": 432, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "1975:18:2", + "referencedDeclaration": 355, + "src": "2049:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1454,31 +1482,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 550, + "id": 433, "name": "wrapped_asset_master", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "1996:20:2", + "referencedDeclaration": 413, + "src": "2070:20:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1975:41:2", + "src": "2049:41:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 552, + "id": 435, "nodeType": "ExpressionStatement", - "src": "1975:41:2" + "src": "2049:41:1" } ] }, "documentation": null, - "id": 554, + "id": 437, "implemented": true, "kind": "constructor", "modifiers": [], @@ -1486,33 +1514,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 533, + "id": 416, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 528, + "id": 411, "mutability": "mutable", "name": "initial_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 554, - "src": "1708:39:2", + "scope": 437, + "src": "1782:39:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 527, + "id": 410, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "1708:11:2", + "referencedDeclaration": 367, + "src": "1782:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -1521,13 +1549,13 @@ }, { "constant": false, - "id": 530, + "id": 413, "mutability": "mutable", "name": "wrapped_asset_master", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 554, - "src": "1749:28:2", + "scope": 437, + "src": "1823:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1535,10 +1563,10 @@ "typeString": "address" }, "typeName": { - "id": 529, + "id": 412, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1749:7:2", + "src": "1823:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1550,13 +1578,13 @@ }, { "constant": false, - "id": 532, + "id": 415, "mutability": "mutable", "name": "_vaa_expiry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 554, - "src": "1779:18:2", + "scope": 437, + "src": "1853:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1564,10 +1592,10 @@ "typeString": "uint32" }, "typeName": { - "id": 531, + "id": 414, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1779:6:2", + "src": "1853:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1577,40 +1605,181 @@ "visibility": "internal" } ], - "src": "1707:91:2" + "src": "1781:91:1" }, "returnParameters": { - "id": 534, + "id": 417, "nodeType": "ParameterList", "parameters": [], - "src": "1806:0:2" + "src": "1880:0:1" }, - "scope": 1181, - "src": "1696:327:2", + "scope": 1170, + "src": "1770:327:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 727, + "id": 448, "nodeType": "Block", - "src": "2089:1737:2", + "src": "2183:42:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 444, + "name": "guardian_sets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 393, + "src": "2200:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", + "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" + } + }, + "id": 446, + "indexExpression": { + "argumentTypes": null, + "id": 445, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "2214:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2200:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", + "typeString": "struct Wormhole.GuardianSet storage ref" + } + }, + "functionReturnParameters": 443, + "id": 447, + "nodeType": "Return", + "src": "2193:25:1" + } + ] + }, + "documentation": null, + "functionSelector": "f951975a", + "id": 449, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getGuardianSet", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 439, + "mutability": "mutable", + "name": "idx", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 449, + "src": "2127:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 438, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2127:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2126:12:1" + }, + "returnParameters": { + "id": 443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 442, + "mutability": "mutable", + "name": "gs", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 449, + "src": "2160:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet" + }, + "typeName": { + "contractScope": null, + "id": 441, + "name": "GuardianSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 367, + "src": "2160:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", + "typeString": "struct Wormhole.GuardianSet" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2159:23:1" + }, + "scope": 1170, + "src": "2103:122:1", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 701, + "nodeType": "Block", + "src": "2304:1920:1", "statements": [ { "assignments": [ - 560 + 457 ], "declarations": [ { "constant": false, - "id": 560, + "id": 457, "mutability": "mutable", "name": "version", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2099:13:2", + "scope": 701, + "src": "2314:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1618,10 +1787,10 @@ "typeString": "uint8" }, "typeName": { - "id": 559, + "id": 456, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2099:5:2", + "src": "2314:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1631,21 +1800,21 @@ "visibility": "internal" } ], - "id": 565, + "id": 462, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 563, + "id": 460, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2127:1:2", + "src": "2342:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1663,18 +1832,18 @@ ], "expression": { "argumentTypes": null, - "id": 561, + "id": 458, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2115:3:2", + "referencedDeclaration": 451, + "src": "2330:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 562, + "id": 459, "isConstant": false, "isLValue": false, "isPure": false, @@ -1682,13 +1851,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "2115:11:2", + "src": "2330:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 564, + "id": 461, "isConstant": false, "isLValue": false, "isPure": false, @@ -1696,7 +1865,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2115:14:2", + "src": "2330:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1704,7 +1873,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2099:30:2" + "src": "2314:30:1" }, { "expression": { @@ -1716,19 +1885,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 569, + "id": 466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 567, + "id": 464, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2147:7:2", + "referencedDeclaration": 457, + "src": "2362:7:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1739,14 +1908,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 568, + "id": 465, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2158:1:2", + "src": "2373:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1754,7 +1923,7 @@ }, "value": "1" }, - "src": "2147:12:2", + "src": "2362:12:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1763,14 +1932,14 @@ { "argumentTypes": null, "hexValue": "5641412076657273696f6e20696e636f6d70617469626c65", - "id": 570, + "id": 467, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2161:26:2", + "src": "2376:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a", @@ -1790,7 +1959,7 @@ "typeString": "literal_string \"VAA version incompatible\"" } ], - "id": 566, + "id": 463, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -1798,13 +1967,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2139:7:2", + "src": "2354:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 571, + "id": 468, "isConstant": false, "isLValue": false, "isPure": false, @@ -1812,31 +1981,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2139:49:2", + "src": "2354:49:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 572, + "id": 469, "nodeType": "ExpressionStatement", - "src": "2139:49:2" + "src": "2354:49:1" }, { "assignments": [ - 574 + 471 ], "declarations": [ { "constant": false, - "id": 574, + "id": 471, "mutability": "mutable", "name": "vaa_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2245:29:2", + "scope": 701, + "src": "2460:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1844,10 +2013,10 @@ "typeString": "uint32" }, "typeName": { - "id": 573, + "id": 470, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2245:6:2", + "src": "2460:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1857,21 +2026,21 @@ "visibility": "internal" } ], - "id": 579, + "id": 476, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "31", - "id": 577, + "id": 474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2290:1:2", + "src": "2505:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1889,18 +2058,18 @@ ], "expression": { "argumentTypes": null, - "id": 575, + "id": 472, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2277:3:2", + "referencedDeclaration": 451, + "src": "2492:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 576, + "id": 473, "isConstant": false, "isLValue": false, "isPure": false, @@ -1908,13 +2077,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2277:12:2", + "src": "2492:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint32)" } }, - "id": 578, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -1922,7 +2091,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2277:15:2", + "src": "2492:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -1930,22 +2099,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2245:47:2" + "src": "2460:47:1" }, { "assignments": [ - 581 + 478 ], "declarations": [ { "constant": false, - "id": 581, + "id": 478, "mutability": "mutable", - "name": "signature", + "name": "len_signers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2303:17:2", + "scope": 701, + "src": "2518:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1953,10 +2122,10 @@ "typeString": "uint256" }, "typeName": { - "id": 580, + "id": 477, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2303:7:2", + "src": "2518:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1966,21 +2135,21 @@ "visibility": "internal" } ], - "id": 586, + "id": 483, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 584, + "id": 481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2337:1:2", + "src": "2552:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -1998,32 +2167,32 @@ ], "expression": { "argumentTypes": null, - "id": 582, + "id": 479, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2323:3:2", + "referencedDeclaration": 451, + "src": "2540:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 583, + "id": 480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "toUint256", + "memberName": "toUint8", "nodeType": "MemberAccess", - "referencedDeclaration": 271, - "src": "2323:13:2", + "referencedDeclaration": 109, + "src": "2540:11:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,uint256) pure returns (uint256)" + "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": 585, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, @@ -2031,140 +2200,155 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2323:16:2", + "src": "2540:14:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "2303:36:2" + "src": "2518:36:1" }, { "assignments": [ - 588 + 485 ], "declarations": [ { "constant": false, - "id": 588, + "id": 485, "mutability": "mutable", - "name": "sig_address", + "name": "offset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2349:19:2", + "scope": 701, + "src": "2564:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 587, - "name": "address", + "id": 484, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2349:7:2", - "stateMutability": "nonpayable", + "src": "2564:4:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "id": 593, + "id": 491, "initialValue": { "argumentTypes": null, - "arguments": [ - { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "36", + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2578:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "hexValue": "3337", - "id": 591, + "hexValue": "3636", + "id": 487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2385:2:2", + "src": "2582:2:1", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_37_by_1", - "typeString": "int_const 37" + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" }, - "value": "37" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_37_by_1", - "typeString": "int_const 37" - } - ], - "expression": { + "value": "66" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { "argumentTypes": null, - "id": 589, - "name": "vaa", + "id": 488, + "name": "len_signers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2371:3:2", + "referencedDeclaration": 478, + "src": "2587:11:1", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 82, - "src": "2371:13:2", + "src": "2582:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,uint256) pure returns (address)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2371:17:2", - "tryCall": false, + "src": "2578:20:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2349:39:2" + "src": "2564:34:1" }, { "assignments": [ - 595 + 493 ], "declarations": [ { "constant": false, - "id": 595, + "id": 493, "mutability": "mutable", "name": "timestamp", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2446:16:2", + "scope": 701, + "src": "2643:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2172,10 +2356,10 @@ "typeString": "uint32" }, "typeName": { - "id": 594, + "id": 492, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2446:6:2", + "src": "2643:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2185,50 +2369,45 @@ "visibility": "internal" } ], - "id": 600, + "id": 498, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "3537", - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2478:2:2", - "subdenomination": null, + "id": 496, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "2675:6:1", "typeDescriptions": { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" - }, - "value": "57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 596, + "id": 494, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2465:3:2", + "referencedDeclaration": 451, + "src": "2662:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 597, + "id": 495, "isConstant": false, "isLValue": false, "isPure": false, @@ -2236,13 +2415,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2465:12:2", + "src": "2662:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint32)" } }, - "id": 599, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -2250,7 +2429,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2465:16:2", + "src": "2662:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -2258,7 +2437,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2446:35:2" + "src": "2643:39:1" }, { "expression": { @@ -2270,7 +2449,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 607, + "id": 505, "isConstant": false, "isLValue": false, "isPure": false, @@ -2281,19 +2460,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 604, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 602, + "id": 500, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, - "src": "2546:9:2", + "referencedDeclaration": 493, + "src": "2747:9:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2303,18 +2482,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 603, + "id": 501, "name": "vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "2558:10:2", + "referencedDeclaration": 397, + "src": "2759:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "2546:22:2", + "src": "2747:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2326,18 +2505,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 605, + "id": 503, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2571:5:2", + "src": "2772:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 606, + "id": 504, "isConstant": false, "isLValue": false, "isPure": false, @@ -2345,13 +2524,13 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2571:15:2", + "src": "2772:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2546:40:2", + "src": "2747:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2360,14 +2539,14 @@ { "argumentTypes": null, "hexValue": "564141206861732065787069726564", - "id": 608, + "id": 506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2588:17:2", + "src": "2789:17:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_716b6a367d262f21a121968c96e61557fe9c6281596966426b955d4c8c65cb86", @@ -2387,7 +2566,7 @@ "typeString": "literal_string \"VAA has expired\"" } ], - "id": 601, + "id": 499, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2395,13 +2574,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2538:7:2", + "src": "2739:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 609, + "id": 507, "isConstant": false, "isLValue": false, "isPure": false, @@ -2409,31 +2588,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2538:68:2", + "src": "2739:68:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 610, + "id": 508, "nodeType": "ExpressionStatement", - "src": "2538:68:2" + "src": "2739:68:1" }, { "assignments": [ - 612 + 510 ], "declarations": [ { "constant": false, - "id": 612, + "id": 510, "mutability": "mutable", "name": "hash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2642:12:2", + "scope": 701, + "src": "2843:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2441,10 +2620,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 611, + "id": 509, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2642:7:2", + "src": "2843:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2454,7 +2633,7 @@ "visibility": "internal" } ], - "id": 623, + "id": 521, "initialValue": { "argumentTypes": null, "arguments": [ @@ -2463,21 +2642,16 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "3537", - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2677:2:2", - "subdenomination": null, + "id": 514, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "2878:6:1", "typeDescriptions": { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" - }, - "value": "57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { "argumentTypes": null, @@ -2485,7 +2659,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 620, + "id": 518, "isConstant": false, "isLValue": false, "isPure": false, @@ -2494,18 +2668,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 617, + "id": 515, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2681:3:2", + "referencedDeclaration": 451, + "src": "2886:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 618, + "id": 516, "isConstant": false, "isLValue": false, "isPure": false, @@ -2513,7 +2687,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2681:10:2", + "src": "2886:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2523,23 +2697,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "hexValue": "3537", - "id": 619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2694:2:2", - "subdenomination": null, + "id": 517, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "2899:6:1", "typeDescriptions": { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" - }, - "value": "57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "2681:15:2", + "src": "2886:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2549,8 +2718,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { "typeIdentifier": "t_uint256", @@ -2559,18 +2728,18 @@ ], "expression": { "argumentTypes": null, - "id": 614, + "id": 512, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2667:3:2", + "referencedDeclaration": 451, + "src": "2868:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 615, + "id": 513, "isConstant": false, "isLValue": false, "isPure": false, @@ -2578,13 +2747,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "2667:9:2", + "src": "2868:9:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" } }, - "id": 621, + "id": 519, "isConstant": false, "isLValue": false, "isPure": false, @@ -2592,7 +2761,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2667:30:2", + "src": "2868:38:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2607,18 +2776,18 @@ "typeString": "bytes memory" } ], - "id": 613, + "id": 511, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "2657:9:2", + "src": "2858:9:1", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 622, + "id": 520, "isConstant": false, "isLValue": false, "isPure": false, @@ -2626,7 +2795,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2657:41:2", + "src": "2858:49:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2634,7 +2803,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2642:56:2" + "src": "2843:64:1" }, { "expression": { @@ -2642,7 +2811,7 @@ "arguments": [ { "argumentTypes": null, - "id": 628, + "id": 526, "isConstant": false, "isLValue": false, "isPure": false, @@ -2650,31 +2819,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2716:19:2", + "src": "2925:19:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 625, + "id": 523, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "2717:12:2", + "referencedDeclaration": 401, + "src": "2926:12:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 627, + "id": 525, "indexExpression": { "argumentTypes": null, - "id": 626, + "id": 524, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "2730:4:2", + "referencedDeclaration": 510, + "src": "2939:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2685,7 +2854,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2717:18:2", + "src": "2926:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2699,14 +2868,14 @@ { "argumentTypes": null, "hexValue": "5641412077617320616c7265616479206578656375746564", - "id": 629, + "id": 527, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2737:26:2", + "src": "2946:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028", @@ -2726,7 +2895,7 @@ "typeString": "literal_string \"VAA was already executed\"" } ], - "id": 624, + "id": 522, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2734,13 +2903,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2708:7:2", + "src": "2917:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 630, + "id": 528, "isConstant": false, "isLValue": false, "isPure": false, @@ -2748,46 +2917,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2708:56:2", + "src": "2917:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 631, + "id": 529, "nodeType": "ExpressionStatement", - "src": "2708:56:2" + "src": "2917:56:1" }, { "assignments": [ - 633 + 531 ], "declarations": [ { "constant": false, - "id": 633, + "id": 531, "mutability": "mutable", "name": "guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2775:31:2", + "scope": 701, + "src": "2984:31:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 632, + "id": 530, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "2775:11:2", + "referencedDeclaration": 367, + "src": "2984:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -2795,31 +2964,31 @@ "visibility": "internal" } ], - "id": 637, + "id": 535, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 634, + "id": 532, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "2809:13:2", + "referencedDeclaration": 393, + "src": "3018:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 636, + "id": 534, "indexExpression": { "argumentTypes": null, - "id": 635, + "id": 533, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "2823:22:2", + "referencedDeclaration": 471, + "src": "3032:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2830,14 +2999,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2809:37:2", + "src": "3018:37:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2775:71:2" + "src": "2984:71:1" }, { "expression": { @@ -2849,7 +3018,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 648, + "id": 546, "isConstant": false, "isLValue": false, "isPure": false, @@ -2860,7 +3029,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 642, + "id": 540, "isConstant": false, "isLValue": false, "isPure": false, @@ -2869,26 +3038,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 639, + "id": 537, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 633, - "src": "2864:12:2", + "referencedDeclaration": 531, + "src": "3073:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 640, + "id": 538, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 485, - "src": "2864:28:2", + "referencedDeclaration": 366, + "src": "3073:28:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2899,14 +3068,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 641, + "id": 539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2896:1:2", + "src": "3105:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2914,7 +3083,7 @@ }, "value": "0" }, - "src": "2864:33:2", + "src": "3073:33:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2928,7 +3097,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 647, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -2937,26 +3106,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 643, + "id": 541, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 633, - "src": "2901:12:2", + "referencedDeclaration": 531, + "src": "3110:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 644, + "id": 542, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 485, - "src": "2901:28:2", + "referencedDeclaration": 366, + "src": "3110:28:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2968,18 +3137,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 645, + "id": 543, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2932:5:2", + "src": "3141:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 646, + "id": 544, "isConstant": false, "isLValue": false, "isPure": false, @@ -2987,19 +3156,19 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2932:15:2", + "src": "3141:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2901:46:2", + "src": "3110:46:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2864:83:2", + "src": "3073:83:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3008,14 +3177,14 @@ { "argumentTypes": null, "hexValue": "677561726469616e20736574206861732065787069726564", - "id": 649, + "id": 547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2949:26:2", + "src": "3158:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1", @@ -3035,7 +3204,7 @@ "typeString": "literal_string \"guardian set has expired\"" } ], - "id": 638, + "id": 536, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3043,13 +3212,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2856:7:2", + "src": "3065:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 650, + "id": 548, "isConstant": false, "isLValue": false, "isPure": false, @@ -3057,16 +3226,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2856:120:2", + "src": "3065:120:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 651, + "id": 549, "nodeType": "ExpressionStatement", - "src": "2856:120:2" + "src": "3065:120:1" }, { "expression": { @@ -3074,213 +3243,187 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 655, - "name": "guardian_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 633, - "src": "3048:12:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - }, - "id": 656, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "x", - "nodeType": "MemberAccess", - "referencedDeclaration": 481, - "src": "3048:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 657, - "name": "guardian_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 633, - "src": "3080:12:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - }, - "id": 658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parity", - "nodeType": "MemberAccess", - "referencedDeclaration": 483, - "src": "3080:19:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 659, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 581, - "src": "3117:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 662, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "3152:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3144:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 660, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3144:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3144:13:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 664, - "name": "sig_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "3175:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 653, - "name": "Schnorr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "3007:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Schnorr_$453_$", - "typeString": "type(library Schnorr)" - } - }, - "id": 654, + "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "verifySignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 452, - "src": "3007:23:2", + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 551, + "name": "guardian_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "3203:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet memory" + } + }, + "id": 552, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "keys", + "nodeType": "MemberAccess", + "referencedDeclaration": 364, + "src": "3203:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3203:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3230:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "3203:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3234:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "3203:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3203:36:1", "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)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3007:193:2", - "tryCall": false, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 560, + "name": "len_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "3243:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3203:51:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3288,21 +3431,21 @@ }, { "argumentTypes": null, - "hexValue": "564141207369676e617475726520696e76616c6964", - "id": 666, + "hexValue": "6e6f2071756f72756d", + "id": 562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3214:23:2", + "src": "3256:11:1", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", - "typeString": "literal_string \"VAA signature invalid\"" + "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb", + "typeString": "literal_string \"no quorum\"" }, - "value": "VAA signature invalid" + "value": "no quorum" } ], "expression": { @@ -3312,11 +3455,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", - "typeString": "literal_string \"VAA signature invalid\"" + "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb", + "typeString": "literal_string \"no quorum\"" } ], - "id": 652, + "id": 550, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3324,13 +3467,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2986:7:2", + "src": "3195:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 667, + "id": 563, "isConstant": false, "isLValue": false, "isPure": false, @@ -3338,31 +3481,1184 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2986:252:2", + "src": "3195:73:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 668, + "id": 564, "nodeType": "ExpressionStatement", - "src": "2986:252:2" + "src": "3195:73:1" + }, + { + "body": { + "id": 638, + "nodeType": "Block", + "src": "3318:334:1", + "statements": [ + { + "assignments": [ + 576 + ], + "declarations": [ + { + "constant": false, + "id": 576, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 638, + "src": "3332:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 575, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3332:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 585, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "36", + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3358:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 580, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3362:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3366:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "src": "3362:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3358:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 577, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3346:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toUint8", + "nodeType": "MemberAccess", + "referencedDeclaration": 109, + "src": "3346:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (uint8)" + } + }, + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3346:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3332:37:1" + }, + { + "assignments": [ + 587 + ], + "declarations": [ + { + "constant": false, + "id": 587, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 638, + "src": "3383:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 586, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3383:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 596, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "37", + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3409:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 591, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3413:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3417:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "src": "3413:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 588, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3395:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toBytes32", + "nodeType": "MemberAccess", + "referencedDeclaration": 298, + "src": "3395:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3395:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3383:37:1" + }, + { + "assignments": [ + 598 + ], + "declarations": [ + { + "constant": false, + "id": 598, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 638, + "src": "3434:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 597, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 607, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3339", + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3460:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_39_by_1", + "typeString": "int_const 39" + }, + "value": "39" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 602, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3465:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3469:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "src": "3465:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3460:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 599, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3446:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toBytes32", + "nodeType": "MemberAccess", + "referencedDeclaration": 298, + "src": "3446:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3446:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3434:38:1" + }, + { + "assignments": [ + 609 + ], + "declarations": [ + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 638, + "src": "3486:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 608, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3486:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3731", + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3508:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71_by_1", + "typeString": "int_const 71" + }, + "value": "71" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 613, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3513:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3517:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "src": "3513:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3508:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 610, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3496:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toUint8", + "nodeType": "MemberAccess", + "referencedDeclaration": 109, + "src": "3496:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (uint8)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3496:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3486:34:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 619, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "3534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3237", + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3539:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "3534:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 622, + "nodeType": "ExpressionStatement", + "src": "3534:7:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 625, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "3573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 626, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "3579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 627, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "3582:1:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 628, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "3585:1:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 624, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "3563:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3563:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 630, + "name": "guardian_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "3591:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet memory" + } + }, + "id": 631, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "keys", + "nodeType": "MemberAccess", + "referencedDeclaration": 364, + "src": "3591:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 633, + "indexExpression": { + "argumentTypes": null, + "id": 632, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 576, + "src": "3609:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3591:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3563:52:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "564141207369676e617475726520696e76616c6964", + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3617:23:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", + "typeString": "literal_string \"VAA signature invalid\"" + }, + "value": "VAA signature invalid" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", + "typeString": "literal_string \"VAA signature invalid\"" + } + ], + "id": 623, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3555:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3555:86:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 637, + "nodeType": "ExpressionStatement", + "src": "3555:86:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 569, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3296:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 570, + "name": "len_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "3300:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3296:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 639, + "initializationExpression": { + "assignments": [ + 566 + ], + "declarations": [ + { + "constant": false, + "id": 566, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 639, + "src": "3284:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 565, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3284:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 568, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3293:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3284:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3313:3:1", + "subExpression": { + "argumentTypes": null, + "id": 572, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3313:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 574, + "nodeType": "ExpressionStatement", + "src": "3313:3:1" + }, + "nodeType": "ForStatement", + "src": "3279:373:1" }, { "assignments": [ - 670 + 641 ], "declarations": [ { "constant": false, - "id": 670, + "id": 641, "mutability": "mutable", "name": "action", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "3249:12:2", + "scope": 701, + "src": "3662:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3370,10 +4666,10 @@ "typeString": "uint8" }, "typeName": { - "id": 669, + "id": 640, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3249:5:2", + "src": "3662:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3383,50 +4679,82 @@ "visibility": "internal" } ], - "id": 675, + "id": 648, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "3631", - "id": 673, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 646, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "3276:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_61_by_1", - "typeString": "int_const 61" + "leftExpression": { + "argumentTypes": null, + "id": 644, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "3689:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "61" + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 645, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3698:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "3689:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_61_by_1", - "typeString": "int_const 61" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 671, + "id": 642, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "3264:3:2", + "referencedDeclaration": 451, + "src": "3677:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 672, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -3434,13 +4762,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3264:11:2", + "src": "3677:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 674, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, @@ -3448,7 +4776,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3264:15:2", + "src": "3677:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3456,131 +4784,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3249:30:2" + "src": "3662:38:1" }, { "assignments": [ - 677 + 650 ], "declarations": [ { "constant": false, - "id": 677, - "mutability": "mutable", - "name": "payload_len", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 727, - "src": "3289:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 676, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3289:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 682, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3632", - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3321:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_62_by_1", - "typeString": "int_const 62" - }, - "value": "62" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_62_by_1", - "typeString": "int_const 62" - } - ], - "expression": { - "argumentTypes": null, - "id": 678, - "name": "vaa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "3309:3:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toUint8", - "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "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": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3309:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3289:35:2" - }, - { - "assignments": [ - 684 - ], - "declarations": [ - { - "constant": false, - "id": 684, + "id": 650, "mutability": "mutable", "name": "payload", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "3334:20:2", + "scope": 701, + "src": "3710:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3588,10 +4807,10 @@ "typeString": "bytes" }, "typeName": { - "id": 683, + "id": 649, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3334:5:2", + "src": "3710:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3601,67 +4820,201 @@ "visibility": "internal" } ], - "id": 690, + "id": 664, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "3633", - "id": 687, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 655, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "3367:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_63_by_1", - "typeString": "int_const 63" + "leftExpression": { + "argumentTypes": null, + "id": 653, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "3743:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "63" + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3752:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "3743:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { "argumentTypes": null, - "id": 688, - "name": "payload_len", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3371:11:2", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 656, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3755:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3755:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 658, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "3769:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3778:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "3769:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 661, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3768:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3755:25:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_63_by_1", - "typeString": "int_const 63" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 685, + "id": 651, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "3357:3:2", + "referencedDeclaration": 451, + "src": "3733:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 686, + "id": 652, "isConstant": false, "isLValue": false, "isPure": false, @@ -3669,13 +5022,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "3357:9:2", + "src": "3733:9:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" } }, - "id": 689, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -3683,7 +5036,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3357:26:2", + "src": "3733:48:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3691,7 +5044,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3334:49:2" + "src": "3710:71:1" }, { "condition": { @@ -3700,19 +5053,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 693, + "id": 667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 691, + "id": 665, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "3421:6:2", + "referencedDeclaration": 641, + "src": "3819:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3723,14 +5076,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783031", - "id": 692, + "id": 666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3431:4:2", + "src": "3829:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3738,7 +5091,7 @@ }, "value": "0x01" }, - "src": "3421:14:2", + "src": "3819:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3751,19 +5104,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 708, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 706, + "id": 680, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "3629:6:2", + "referencedDeclaration": 641, + "src": "4027:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3774,14 +5127,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783130", - "id": 707, + "id": 681, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3639:4:2", + "src": "4037:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", @@ -3789,16 +5142,16 @@ }, "value": "0x10" }, - "src": "3629:14:2", + "src": "4027:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 718, + "id": 692, "nodeType": "Block", - "src": "3696:53:2", + "src": "4094:53:1", "statements": [ { "expression": { @@ -3807,14 +5160,14 @@ { "argumentTypes": null, "hexValue": "696e76616c69642056414120616374696f6e", - "id": 715, + "id": 689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3717:20:2", + "src": "4115:20:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66", @@ -3830,7 +5183,7 @@ "typeString": "literal_string \"invalid VAA action\"" } ], - "id": 714, + "id": 688, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3838,13 +5191,13 @@ -19 ], "referencedDeclaration": -19, - "src": "3710:6:2", + "src": "4108:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 716, + "id": 690, "isConstant": false, "isLValue": false, "isPure": false, @@ -3852,26 +5205,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3710:28:2", + "src": "4108:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 717, + "id": 691, "nodeType": "ExpressionStatement", - "src": "3710:28:2" + "src": "4108:28:1" } ] }, - "id": 719, + "id": 693, "nodeType": "IfStatement", - "src": "3625:124:2", + "src": "4023:124:1", "trueBody": { - "id": 713, + "id": 687, "nodeType": "Block", - "src": "3645:45:2", + "src": "4043:45:1", "statements": [ { "expression": { @@ -3879,12 +5232,12 @@ "arguments": [ { "argumentTypes": null, - "id": 710, + "id": 684, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "3671:7:2", + "referencedDeclaration": 650, + "src": "4069:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3898,18 +5251,18 @@ "typeString": "bytes memory" } ], - "id": 709, + "id": 683, "name": "vaaTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "3659:11:2", + "referencedDeclaration": 928, + "src": "4057:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 711, + "id": 685, "isConstant": false, "isLValue": false, "isPure": false, @@ -3917,27 +5270,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3659:20:2", + "src": "4057:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 712, + "id": 686, "nodeType": "ExpressionStatement", - "src": "3659:20:2" + "src": "4057:20:1" } ] } }, - "id": 720, + "id": 694, "nodeType": "IfStatement", - "src": "3417:332:2", + "src": "3815:332:1", "trueBody": { - "id": 705, + "id": 679, "nodeType": "Block", - "src": "3437:182:2", + "src": "3835:182:1", "statements": [ { "expression": { @@ -3949,19 +5302,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 697, + "id": 671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 695, + "id": 669, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "3459:22:2", + "referencedDeclaration": 471, + "src": "3857:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3971,18 +5324,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 696, + "id": 670, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "3485:18:2", + "referencedDeclaration": 395, + "src": "3883:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "3459:44:2", + "src": "3857:44:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3991,14 +5344,14 @@ { "argumentTypes": null, "hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574", - "id": 698, + "id": 672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3505:59:2", + "src": "3903:59:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a", @@ -4018,7 +5371,7 @@ "typeString": "literal_string \"only the current guardian set can change the guardian set\"" } ], - "id": 694, + "id": 668, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4026,13 +5379,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3451:7:2", + "src": "3849:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 699, + "id": 673, "isConstant": false, "isLValue": false, "isPure": false, @@ -4040,16 +5393,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3451:114:2", + "src": "3849:114:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 700, + "id": 674, "nodeType": "ExpressionStatement", - "src": "3451:114:2" + "src": "3849:114:1" }, { "expression": { @@ -4057,12 +5410,12 @@ "arguments": [ { "argumentTypes": null, - "id": 702, + "id": 676, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "3600:7:2", + "referencedDeclaration": 650, + "src": "3998:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4076,18 +5429,18 @@ "typeString": "bytes memory" } ], - "id": 701, + "id": 675, "name": "vaaUpdateGuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "3579:20:2", + "referencedDeclaration": 801, + "src": "3977:20:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 703, + "id": 677, "isConstant": false, "isLValue": false, "isPure": false, @@ -4095,16 +5448,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3579:29:2", + "src": "3977:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 704, + "id": 678, "nodeType": "ExpressionStatement", - "src": "3579:29:2" + "src": "3977:29:1" } ] } @@ -4112,7 +5465,7 @@ { "expression": { "argumentTypes": null, - "id": 725, + "id": 699, "isConstant": false, "isLValue": false, "isPure": false, @@ -4121,26 +5474,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 721, + "id": 695, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3794:12:2", + "referencedDeclaration": 401, + "src": "4192:12:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 723, + "id": 697, "indexExpression": { "argumentTypes": null, - "id": 722, + "id": 696, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "3807:4:2", + "referencedDeclaration": 510, + "src": "4205:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4151,7 +5504,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3794:18:2", + "src": "4192:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4162,14 +5515,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 724, + "id": 698, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3815:4:2", + "src": "4213:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4177,40 +5530,60 @@ }, "value": "true" }, - "src": "3794:25:2", + "src": "4192:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 726, + "id": 700, "nodeType": "ExpressionStatement", - "src": "3794:25:2" + "src": "4192:25:1" } ] }, "documentation": null, "functionSelector": "3bc0aee6", - "id": 728, + "id": 702, "implemented": true, "kind": "function", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 454, + "modifierName": { + "argumentTypes": null, + "id": 453, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2478, + "src": "2291:12:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2291:12:1" + } + ], "name": "submitVAA", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 557, + "id": 452, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 556, + "id": 451, "mutability": "mutable", "name": "vaa", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 728, - "src": "2057:18:2", + "scope": 702, + "src": "2259:18:1", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -4218,10 +5591,10 @@ "typeString": "bytes" }, "typeName": { - "id": 555, + "id": 450, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2057:5:2", + "src": "2259:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4231,75 +5604,75 @@ "visibility": "internal" } ], - "src": "2047:34:2" + "src": "2249:34:1" }, "returnParameters": { - "id": 558, + "id": 455, "nodeType": "ParameterList", "parameters": [], - "src": "2089:0:2" + "src": "2304:0:1" }, - "scope": 1181, - "src": "2029:1797:2", + "scope": 1170, + "src": "2231:1993:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 821, + "id": 800, "nodeType": "Block", - "src": "3889:873:2", + "src": "4287:744:1", "statements": [ { "assignments": [ - 734 + 708 ], "declarations": [ { "constant": false, - "id": 734, + "id": 708, "mutability": "mutable", - "name": "new_key_x", + "name": "new_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 821, - "src": "3899:17:2", + "scope": 800, + "src": "4297:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "id": 733, - "name": "uint256", + "id": 707, + "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3899:7:2", + "src": "4297:6:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, "visibility": "internal" } ], - "id": 739, + "id": 713, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 737, + "id": 711, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3934:1:2", + "src": "4343:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4317,236 +5690,18 @@ ], "expression": { "argumentTypes": null, - "id": 735, + "id": 709, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "3919:4:2", + "referencedDeclaration": 704, + "src": "4329:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toUint256", - "nodeType": "MemberAccess", - "referencedDeclaration": 271, - "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": 738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3919:17:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3899:37:2" - }, - { - "assignments": [ - 741 - ], - "declarations": [ - { - "constant": false, - "id": 741, - "mutability": "mutable", - "name": "y_parity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 821, - "src": "3946:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3946:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 746, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3978:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "expression": { - "argumentTypes": null, - "id": 742, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "3965:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toUint8", - "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "src": "3965: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": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3965:16:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3946:35:2" - }, - { - "assignments": [ - 748 - ], - "declarations": [ - { - "constant": false, - "id": 748, - "mutability": "mutable", - "name": "new_guardian_set_index", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 821, - "src": "3991:29:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 747, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3991:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 753, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3333", - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4037:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33_by_1", - "typeString": "int_const 33" - }, - "value": "33" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_33_by_1", - "typeString": "int_const 33" - } - ], - "expression": { - "argumentTypes": null, - "id": 749, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4023:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 750, + "id": 710, "isConstant": false, "isLValue": false, "isPure": false, @@ -4554,13 +5709,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "4023:13:2", + "src": "4329:13:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint32)" } }, - "id": 752, + "id": 712, "isConstant": false, "isLValue": false, "isPure": false, @@ -4568,7 +5723,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4023:17:2", + "src": "4329:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -4576,1073 +5731,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3991:49:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 755, - "name": "new_guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 748, - "src": "4059:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 756, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "4084:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4059:43:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e646578206f66206e657720677561726469616e20736574206d757374206265203e2063757272656e74", - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4104:45:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_906a0f9350878de65dacfb23a6e8e903db110639fb839bf569ced494236848c8", - "typeString": "literal_string \"index of new guardian set must be > current\"" - }, - "value": "index of new guardian set must be > current" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_906a0f9350878de65dacfb23a6e8e903db110639fb839bf569ced494236848c8", - "typeString": "literal_string \"index of new guardian set must be > current\"" - } - ], - "id": 754, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4051:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4051:99:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 760, - "nodeType": "ExpressionStatement", - "src": "4051:99:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 762, - "name": "new_key_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "4168:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 763, - "name": "Schnorr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "4180:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Schnorr_$453_$", - "typeString": "type(library Schnorr)" - } - }, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "HALF_Q", - "nodeType": "MemberAccess", - "referencedDeclaration": 346, - "src": "4180:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4168:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206b657920666f722066617374205363686e6f727220766572696669636174696f6e", - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4196:43:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ad2abc16dac8cf88f3decb4180ebbab2f7006b83967f36fdb68b8d2df95c5160", - "typeString": "literal_string \"invalid key for fast Schnorr verification\"" - }, - "value": "invalid key for fast Schnorr verification" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ad2abc16dac8cf88f3decb4180ebbab2f7006b83967f36fdb68b8d2df95c5160", - "typeString": "literal_string \"invalid key for fast Schnorr verification\"" - } - ], - "id": 761, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4160:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4160:80:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 768, - "nodeType": "ExpressionStatement", - "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" + "src": "4297:48:1" }, { "assignments": [ - 777 + 715 ], "declarations": [ { "constant": false, - "id": 777, + "id": 715, "mutability": "mutable", - "name": "old_guardian_set_index", + "name": "len", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 821, - "src": "4303:29:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 776, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4303:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 779, - "initialValue": { - "argumentTypes": null, - "id": 778, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "4335:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4303:50:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 780, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "4363:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 781, - "name": "new_guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 748, - "src": "4384:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4363:43:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "4363:43:2" - }, - { - "assignments": [ - 785 - ], - "declarations": [ - { - "constant": false, - "id": 785, - "mutability": "mutable", - "name": "new_guardian_set", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 821, - "src": "4417:35:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet" - }, - "typeName": { - "contractScope": null, - "id": 784, - "name": "GuardianSet", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "4417:11:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", - "typeString": "struct Wormhole.GuardianSet" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 794, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 787, - "name": "new_key_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "4467:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 790, - "name": "y_parity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "4484:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4478:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 788, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4478:5:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4478:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4495:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 786, - "name": "GuardianSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "4455:11:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_GuardianSet_$486_storage_ptr_$", - "typeString": "type(struct Wormhole.GuardianSet storage pointer)" - } - }, - "id": 793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4455:42:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4417:80:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 795, - "name": "guardian_sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "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": 797, - "indexExpression": { - "argumentTypes": null, - "id": 796, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "4521:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4507:33:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 798, - "name": "new_guardian_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "4543:16:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - }, - "src": "4507:52:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - } - }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "4507:52:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 801, - "name": "guardian_sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "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": 803, - "indexExpression": { - "argumentTypes": null, - "id": 802, - "name": "old_guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 777, - "src": "4583:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4569:37:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - } - }, - "id": 804, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "expiration_time", - "nodeType": "MemberAccess", - "referencedDeclaration": 485, - "src": "4569:53:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 807, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "4632:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4632:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4625:6:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 805, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4625:6:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4625:23:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 810, - "name": "vaa_expiry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "4651:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4625:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4569:92:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 813, - "nodeType": "ExpressionStatement", - "src": "4569:92:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 815, - "name": "guardian_sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "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": 817, - "indexExpression": { - "argumentTypes": null, - "id": 816, - "name": "old_guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 777, - "src": "4713:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4699:37:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - } - }, - { - "argumentTypes": null, - "id": 818, - "name": "new_guardian_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "4738:16:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - }, - { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - ], - "id": 814, - "name": "LogGuardianSetChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 492, - "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": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4677:78:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 820, - "nodeType": "EmitStatement", - "src": "4672:83:2" - } - ] - }, - "documentation": null, - "id": 822, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "vaaUpdateGuardianSet", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 822, - "src": "3862:17:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 729, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3862:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3861:19:2" - }, - "returnParameters": { - "id": 732, - "nodeType": "ParameterList", - "parameters": [], - "src": "3889:0:2" - }, - "scope": 1181, - "src": "3832:930:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 948, - "nodeType": "Block", - "src": "4816:1325:2", - "statements": [ - { - "assignments": [ - 828 - ], - "declarations": [ - { - "constant": false, - "id": 828, - "mutability": "mutable", - "name": "source_chain", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 948, - "src": "4869:18:2", + "scope": 800, + "src": "4355:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5650,10 +5754,10 @@ "typeString": "uint8" }, "typeName": { - "id": 827, + "id": 714, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4869:5:2", + "src": "4355:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5663,21 +5767,21 @@ "visibility": "internal" } ], - "id": 833, + "id": 720, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 831, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4903:1:2", + "src": "4380:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -5695,18 +5799,18 @@ ], "expression": { "argumentTypes": null, - "id": 829, + "id": 716, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "4890:4:2", + "referencedDeclaration": 704, + "src": "4367:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 830, + "id": 717, "isConstant": false, "isLValue": false, "isPure": false, @@ -5714,13 +5818,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4890:12:2", + "src": "4367:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 832, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, @@ -5728,7 +5832,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4890:15:2", + "src": "4367:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -5736,22 +5840,1143 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4869:36:2" + "src": "4355:27:1" }, { "assignments": [ - 835 + 725 ], "declarations": [ { "constant": false, - "id": 835, + "id": 725, "mutability": "mutable", - "name": "target_chain", + "name": "new_guardians", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 948, - "src": "4916:18:2", + "scope": 800, + "src": "4393:30:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4393:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 724, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4393:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 731, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 729, + "name": "len", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 715, + "src": "4440:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4426:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4430:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 727, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4430:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4426:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4393:51:1" + }, + { + "body": { + "id": 759, + "nodeType": "Block", + "src": "4485:103:1", + "statements": [ + { + "assignments": [ + 743 + ], + "declarations": [ + { + "constant": false, + "id": 743, + "mutability": "mutable", + "name": "addr", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 759, + "src": "4499:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4499:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 752, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4529:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 747, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "4533:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4537:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "4533:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 744, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 704, + "src": "4514:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 82, + "src": "4514:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (address)" + } + }, + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4514:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4499:41:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 753, + "name": "new_guardians", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 725, + "src": "4554:13:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 755, + "indexExpression": { + "argumentTypes": null, + "id": 754, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "4568:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4554:16:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 756, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 743, + "src": "4573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4554:23:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 758, + "nodeType": "ExpressionStatement", + "src": "4554:23:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 736, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "4471:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 737, + "name": "len", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 715, + "src": "4475:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 760, + "initializationExpression": { + "assignments": [ + 733 + ], + "declarations": [ + { + "constant": false, + "id": 733, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 760, + "src": "4459:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 732, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4459:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 735, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4468:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4459:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4480:3:1", + "subExpression": { + "argumentTypes": null, + "id": 739, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "4480:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 741, + "nodeType": "ExpressionStatement", + "src": "4480:3:1" + }, + "nodeType": "ForStatement", + "src": "4454:134:1" + }, + { + "assignments": [ + 762 + ], + "declarations": [ + { + "constant": false, + "id": 762, + "mutability": "mutable", + "name": "old_guardian_set_index", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 800, + "src": "4598:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 761, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4598:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 764, + "initialValue": { + "argumentTypes": null, + "id": 763, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 395, + "src": "4630:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4598:50:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 765, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 395, + "src": "4658:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 766, + "name": "new_guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "4679:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4658:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 768, + "nodeType": "ExpressionStatement", + "src": "4658:43:1" + }, + { + "assignments": [ + 770 + ], + "declarations": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "new_guardian_set", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 800, + "src": "4712:35:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet" + }, + "typeName": { + "contractScope": null, + "id": 769, + "name": "GuardianSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 367, + "src": "4712:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", + "typeString": "struct Wormhole.GuardianSet" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 775, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 772, + "name": "new_guardians", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 725, + "src": "4762:13:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4777:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 771, + "name": "GuardianSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 367, + "src": "4750:11:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_GuardianSet_$367_storage_ptr_$", + "typeString": "type(struct Wormhole.GuardianSet storage pointer)" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4750:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4712:67:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 776, + "name": "guardian_sets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 393, + "src": "4789:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", + "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" + } + }, + "id": 778, + "indexExpression": { + "argumentTypes": null, + "id": 777, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 395, + "src": "4803:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4789:33:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", + "typeString": "struct Wormhole.GuardianSet storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 779, + "name": "new_guardian_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 770, + "src": "4825:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet memory" + } + }, + "src": "4789:52:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", + "typeString": "struct Wormhole.GuardianSet storage ref" + } + }, + "id": 781, + "nodeType": "ExpressionStatement", + "src": "4789:52:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 782, + "name": "guardian_sets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 393, + "src": "4851:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", + "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" + } + }, + "id": 784, + "indexExpression": { + "argumentTypes": null, + "id": 783, + "name": "old_guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 762, + "src": "4865:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4851:37:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", + "typeString": "struct Wormhole.GuardianSet storage ref" + } + }, + "id": 785, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiration_time", + "nodeType": "MemberAccess", + "referencedDeclaration": 366, + "src": "4851:53:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 788, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4914:5:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4914:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4907:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 786, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4907:6:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4907:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 791, + "name": "vaa_expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "4933:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4907:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4851:92:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 794, + "nodeType": "ExpressionStatement", + "src": "4851:92:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 796, + "name": "old_guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 762, + "src": "4981:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 797, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 395, + "src": "5005:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 795, + "name": "LogGuardianSetChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "4959:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$", + "typeString": "function (uint32,uint32)" + } + }, + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4959:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 799, + "nodeType": "EmitStatement", + "src": "4954:70:1" + } + ] + }, + "documentation": null, + "id": 801, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "vaaUpdateGuardianSet", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 801, + "src": "4260:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 703, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4260:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4259:19:1" + }, + "returnParameters": { + "id": 706, + "nodeType": "ParameterList", + "parameters": [], + "src": "4287:0:1" + }, + "scope": 1170, + "src": "4230:801:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 927, + "nodeType": "Block", + "src": "5085:1325:1", + "statements": [ + { + "assignments": [ + 807 + ], + "declarations": [ + { + "constant": false, + "id": 807, + "mutability": "mutable", + "name": "source_chain", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 927, + "src": "5138:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5759,10 +6984,10 @@ "typeString": "uint8" }, "typeName": { - "id": 834, + "id": 806, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4916:5:2", + "src": "5138:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5772,21 +6997,130 @@ "visibility": "internal" } ], - "id": 840, + "id": 812, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "35", - "id": 838, + "hexValue": "34", + "id": 810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4950:1:2", + "src": "5172:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + ], + "expression": { + "argumentTypes": null, + "id": 808, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "5159:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toUint8", + "nodeType": "MemberAccess", + "referencedDeclaration": 109, + "src": "5159:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (uint8)" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5159:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5138:36:1" + }, + { + "assignments": [ + 814 + ], + "declarations": [ + { + "constant": false, + "id": 814, + "mutability": "mutable", + "name": "target_chain", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 927, + "src": "5185:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 813, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5185:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 819, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5219:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -5804,18 +7138,18 @@ ], "expression": { "argumentTypes": null, - "id": 836, + "id": 815, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "4937:4:2", + "referencedDeclaration": 803, + "src": "5206:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 837, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, @@ -5823,13 +7157,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4937:12:2", + "src": "5206:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 839, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -5837,7 +7171,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4937:15:2", + "src": "5206:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -5845,22 +7179,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4916:36:2" + "src": "5185:36:1" }, { "assignments": [ - 842 + 821 ], "declarations": [ { "constant": false, - "id": 842, + "id": 821, "mutability": "mutable", "name": "target_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 948, - "src": "5071:22:2", + "scope": 927, + "src": "5340:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5868,10 +7202,10 @@ "typeString": "address" }, "typeName": { - "id": 841, + "id": 820, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5071:7:2", + "src": "5340:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5882,7 +7216,7 @@ "visibility": "internal" } ], - "id": 849, + "id": 828, "initialValue": { "argumentTypes": null, "arguments": [ @@ -5892,7 +7226,7 @@ "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" }, - "id": 847, + "id": 826, "isConstant": false, "isLValue": false, "isPure": true, @@ -5900,14 +7234,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3338", - "id": 845, + "id": 824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5111:2:2", + "src": "5380:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_38_by_1", @@ -5920,14 +7254,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 846, + "id": 825, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5116:2:2", + "src": "5385:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -5935,7 +7269,7 @@ }, "value": "12" }, - "src": "5111:7:2", + "src": "5380:7:1", "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" @@ -5951,18 +7285,18 @@ ], "expression": { "argumentTypes": null, - "id": 843, + "id": 822, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "5096:4:2", + "referencedDeclaration": 803, + "src": "5365:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 844, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, @@ -5970,13 +7304,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "5096:14:2", + "src": "5365:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (address)" } }, - "id": 848, + "id": 827, "isConstant": false, "isLValue": false, "isPure": false, @@ -5984,7 +7318,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5096:23:2", + "src": "5365:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5992,22 +7326,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5071:48:2" + "src": "5340:48:1" }, { "assignments": [ - 851 + 830 ], "declarations": [ { "constant": false, - "id": 851, + "id": 830, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 948, - "src": "5130:17:2", + "scope": 927, + "src": "5399:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6015,10 +7349,10 @@ "typeString": "uint8" }, "typeName": { - "id": 850, + "id": 829, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5130:5:2", + "src": "5399:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6028,21 +7362,21 @@ "visibility": "internal" } ], - "id": 856, + "id": 835, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3730", - "id": 854, + "id": 833, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5163:2:2", + "src": "5432:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_70_by_1", @@ -6060,18 +7394,18 @@ ], "expression": { "argumentTypes": null, - "id": 852, + "id": 831, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "5150:4:2", + "referencedDeclaration": 803, + "src": "5419:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 853, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -6079,13 +7413,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5150:12:2", + "src": "5419:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 855, + "id": 834, "isConstant": false, "isLValue": false, "isPure": false, @@ -6093,7 +7427,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5150:16:2", + "src": "5419:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -6101,22 +7435,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5130:36:2" + "src": "5399:36:1" }, { "assignments": [ - 858 + 837 ], "declarations": [ { "constant": false, - "id": 858, + "id": 837, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 948, - "src": "5230:14:2", + "scope": 927, + "src": "5499:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6124,10 +7458,10 @@ "typeString": "uint256" }, "typeName": { - "id": 857, + "id": 836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5230:7:2", + "src": "5499:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6137,21 +7471,21 @@ "visibility": "internal" } ], - "id": 863, + "id": 842, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "313033", - "id": 861, + "id": 840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5262:3:2", + "src": "5531:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_103_by_1", @@ -6169,18 +7503,18 @@ ], "expression": { "argumentTypes": null, - "id": 859, + "id": 838, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "5247:4:2", + "referencedDeclaration": 803, + "src": "5516:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 860, + "id": 839, "isConstant": false, "isLValue": false, "isPure": false, @@ -6188,13 +7522,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "5247:14:2", + "src": "5516:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint256)" } }, - "id": 862, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, @@ -6202,7 +7536,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5247:19:2", + "src": "5516:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6210,7 +7544,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5230:36:2" + "src": "5499:36:1" }, { "expression": { @@ -6222,19 +7556,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 867, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 865, + "id": 844, "name": "source_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "5285:12:2", + "referencedDeclaration": 807, + "src": "5554:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6244,18 +7578,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 866, + "id": 845, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "5301:12:2", + "referencedDeclaration": 814, + "src": "5570:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5285:28:2", + "src": "5554:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6264,14 +7598,14 @@ { "argumentTypes": null, "hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564", - "id": 868, + "id": 847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5315:40:2", + "src": "5584:40:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23", @@ -6291,7 +7625,7 @@ "typeString": "literal_string \"same chain transfers are not supported\"" } ], - "id": 864, + "id": 843, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6299,13 +7633,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5277:7:2", + "src": "5546:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 869, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, @@ -6313,16 +7647,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5277:79:2", + "src": "5546:79:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 870, + "id": 849, "nodeType": "ExpressionStatement", - "src": "5277:79:2" + "src": "5546:79:1" }, { "expression": { @@ -6334,19 +7668,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 874, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 872, + "id": 851, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "5374:12:2", + "referencedDeclaration": 814, + "src": "5643:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6356,18 +7690,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 873, + "id": 852, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5390:8:2", + "referencedDeclaration": 358, + "src": "5659:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5374:24:2", + "src": "5643:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6376,14 +7710,14 @@ { "argumentTypes": null, "hexValue": "7472616e73666572206d75737420626520696e636f6d696e67", - "id": 875, + "id": 854, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5400:27:2", + "src": "5669:27:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a", @@ -6403,7 +7737,7 @@ "typeString": "literal_string \"transfer must be incoming\"" } ], - "id": 871, + "id": 850, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -6411,13 +7745,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5366:7:2", + "src": "5635:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 876, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, @@ -6425,16 +7759,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:62:2", + "src": "5635:62:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 877, + "id": 856, "nodeType": "ExpressionStatement", - "src": "5366:62:2" + "src": "5635:62:1" }, { "condition": { @@ -6443,19 +7777,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 880, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 878, + "id": 857, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "5443:11:2", + "referencedDeclaration": 830, + "src": "5712:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6465,42 +7799,42 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 879, + "id": 858, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5458:8:2", + "referencedDeclaration": 358, + "src": "5727:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5443:23:2", + "src": "5712:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 946, + "id": 925, "nodeType": "Block", - "src": "5990:145:2", + "src": "6259:145:1", "statements": [ { "assignments": [ - 930 + 909 ], "declarations": [ { "constant": false, - "id": 930, + "id": 909, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 946, - "src": "6004:21:2", + "scope": 925, + "src": "6273:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6508,10 +7842,10 @@ "typeString": "address" }, "typeName": { - "id": 929, + "id": 908, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6004:7:2", + "src": "6273:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -6522,7 +7856,7 @@ "visibility": "internal" } ], - "id": 937, + "id": 916, "initialValue": { "argumentTypes": null, "arguments": [ @@ -6532,7 +7866,7 @@ "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" }, - "id": 935, + "id": 914, "isConstant": false, "isLValue": false, "isPure": true, @@ -6540,14 +7874,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3731", - "id": 933, + "id": 912, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6043:2:2", + "src": "6312:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -6560,14 +7894,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 934, + "id": 913, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6048:2:2", + "src": "6317:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -6575,7 +7909,7 @@ }, "value": "12" }, - "src": "6043:7:2", + "src": "6312:7:1", "typeDescriptions": { "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" @@ -6591,18 +7925,18 @@ ], "expression": { "argumentTypes": null, - "id": 931, + "id": 910, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "6028:4:2", + "referencedDeclaration": 803, + "src": "6297:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 932, + "id": 911, "isConstant": false, "isLValue": false, "isPure": false, @@ -6610,13 +7944,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "6028:14:2", + "src": "6297:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (address)" } }, - "id": 936, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -6624,7 +7958,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6028:23:2", + "src": "6297:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -6632,7 +7966,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6004:47:2" + "src": "6273:47:1" }, { "expression": { @@ -6640,12 +7974,12 @@ "arguments": [ { "argumentTypes": null, - "id": 942, + "id": 921, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 842, - "src": "6101:14:2", + "referencedDeclaration": 821, + "src": "6370:14:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6653,12 +7987,12 @@ }, { "argumentTypes": null, - "id": 943, + "id": 922, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 858, - "src": "6117:6:2", + "referencedDeclaration": 837, + "src": "6386:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6681,12 +8015,12 @@ "arguments": [ { "argumentTypes": null, - "id": 939, + "id": 918, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "6073:13:2", + "referencedDeclaration": 909, + "src": "6342:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6700,18 +8034,18 @@ "typeString": "address" } ], - "id": 938, + "id": 917, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "6066:6:2", + "referencedDeclaration": 2022, + "src": "6335:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$", "typeString": "type(contract IERC20)" } }, - "id": 940, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -6719,28 +8053,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6066:21:2", + "src": "6335:21:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } }, - "id": 941, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2067, - "src": "6066:34:2", + "referencedDeclaration": 2056, + "src": "6335:34:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2033_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2022_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2022_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 944, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, @@ -6748,41 +8082,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6066:58:2", + "src": "6335:58:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 945, + "id": 924, "nodeType": "ExpressionStatement", - "src": "6066:58:2" + "src": "6335:58:1" } ] }, - "id": 947, + "id": 926, "nodeType": "IfStatement", - "src": "5439:696:2", + "src": "5708:696:1", "trueBody": { - "id": 928, + "id": 907, "nodeType": "Block", - "src": "5468:516:2", + "src": "5737:516:1", "statements": [ { "assignments": [ - 882 + 861 ], "declarations": [ { "constant": false, - "id": 882, + "id": 861, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 928, - "src": "5482:21:2", + "scope": 907, + "src": "5751:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6790,10 +8124,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 881, + "id": 860, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5482:7:2", + "src": "5751:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6803,21 +8137,21 @@ "visibility": "internal" } ], - "id": 887, + "id": 866, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3731", - "id": 885, + "id": 864, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5521:2:2", + "src": "5790:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -6835,18 +8169,18 @@ ], "expression": { "argumentTypes": null, - "id": 883, + "id": 862, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "5506:4:2", + "referencedDeclaration": 803, + "src": "5775:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 884, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, @@ -6854,13 +8188,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "5506:14:2", + "src": "5775:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (bytes32)" } }, - "id": 886, + "id": 865, "isConstant": false, "isLValue": false, "isPure": false, @@ -6868,7 +8202,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5506:18:2", + "src": "5775:18:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -6876,22 +8210,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5482:42:2" + "src": "5751:42:1" }, { "assignments": [ - 889 + 868 ], "declarations": [ { "constant": false, - "id": 889, + "id": 868, "mutability": "mutable", "name": "asset_id", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 928, - "src": "5538:16:2", + "scope": 907, + "src": "5807:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6899,10 +8233,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 888, + "id": 867, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5538:7:2", + "src": "5807:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6912,7 +8246,7 @@ "visibility": "internal" } ], - "id": 897, + "id": 876, "initialValue": { "argumentTypes": null, "arguments": [ @@ -6921,12 +8255,12 @@ "arguments": [ { "argumentTypes": null, - "id": 893, + "id": 872, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "5584:11:2", + "referencedDeclaration": 830, + "src": "5853:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6934,12 +8268,12 @@ }, { "argumentTypes": null, - "id": 894, + "id": 873, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "5597:13:2", + "referencedDeclaration": 861, + "src": "5866:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6959,18 +8293,18 @@ ], "expression": { "argumentTypes": null, - "id": 891, + "id": 870, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "5567:3:2", + "src": "5836:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 892, + "id": 871, "isConstant": false, "isLValue": false, "isPure": true, @@ -6978,13 +8312,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5567:16:2", + "src": "5836:16:1", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 895, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -6992,7 +8326,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5567:44:2", + "src": "5836:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -7007,18 +8341,18 @@ "typeString": "bytes memory" } ], - "id": 890, + "id": 869, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "5557:9:2", + "src": "5826:9:1", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 896, + "id": 875, "isConstant": false, "isLValue": false, "isPure": false, @@ -7026,7 +8360,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5557:55:2", + "src": "5826:55:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -7034,22 +8368,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5538:74:2" + "src": "5807:74:1" }, { "assignments": [ - 899 + 878 ], "declarations": [ { "constant": false, - "id": 899, + "id": 878, "mutability": "mutable", "name": "wrapped_asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 928, - "src": "5704:21:2", + "scope": 907, + "src": "5973:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7057,10 +8391,10 @@ "typeString": "address" }, "typeName": { - "id": 898, + "id": 877, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5704:7:2", + "src": "5973:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7071,31 +8405,31 @@ "visibility": "internal" } ], - "id": 903, + "id": 882, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 879, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "5728:13:2", + "referencedDeclaration": 405, + "src": "5997:13:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 902, + "id": 881, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 880, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "5742:8:2", + "referencedDeclaration": 868, + "src": "6011:8:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7106,14 +8440,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5728:23:2", + "src": "5997:23:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "5704:47:2" + "src": "5973:47:1" }, { "condition": { @@ -7122,19 +8456,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 909, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 904, + "id": 883, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 899, - "src": "5769:13:2", + "referencedDeclaration": 878, + "src": "6038:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7148,14 +8482,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 907, + "id": 886, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5794:1:2", + "src": "6063:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7171,29 +8505,29 @@ "typeString": "int_const 0" } ], - "id": 906, + "id": 885, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5786:7:2", + "src": "6055:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 905, + "id": 884, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5786:7:2", + "src": "6055:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 908, + "id": 887, "isConstant": false, "isLValue": false, "isPure": true, @@ -7201,44 +8535,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5786:10:2", + "src": "6055:10:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5769:27:2", + "src": "6038:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 919, + "id": 898, "nodeType": "IfStatement", - "src": "5765:138:2", + "src": "6034:138:1", "trueBody": { - "id": 918, + "id": 897, "nodeType": "Block", - "src": "5798:105:2", + "src": "6067:105:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 916, + "id": 895, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 910, + "id": 889, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 899, - "src": "5816:13:2", + "referencedDeclaration": 878, + "src": "6085:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7251,12 +8585,12 @@ "arguments": [ { "argumentTypes": null, - "id": 912, + "id": 891, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "5851:8:2", + "referencedDeclaration": 868, + "src": "6120:8:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7264,12 +8598,12 @@ }, { "argumentTypes": null, - "id": 913, + "id": 892, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "5861:11:2", + "referencedDeclaration": 830, + "src": "6130:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7277,12 +8611,12 @@ }, { "argumentTypes": null, - "id": 914, + "id": 893, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "5874:13:2", + "referencedDeclaration": 861, + "src": "6143:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7304,18 +8638,18 @@ "typeString": "bytes32" } ], - "id": 911, + "id": 890, "name": "deployWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "5832:18:2", + "referencedDeclaration": 968, + "src": "6101:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32) returns (address)" } }, - "id": 915, + "id": 894, "isConstant": false, "isLValue": false, "isPure": false, @@ -7323,22 +8657,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5832:56:2", + "src": "6101:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5816:72:2", + "src": "6085:72:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 917, + "id": 896, "nodeType": "ExpressionStatement", - "src": "5816:72:2" + "src": "6085:72:1" } ] } @@ -7349,12 +8683,12 @@ "arguments": [ { "argumentTypes": null, - "id": 924, + "id": 903, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 842, - "src": "5950:14:2", + "referencedDeclaration": 821, + "src": "6219:14:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7362,12 +8696,12 @@ }, { "argumentTypes": null, - "id": 925, + "id": 904, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 858, - "src": "5966:6:2", + "referencedDeclaration": 837, + "src": "6235:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7390,12 +8724,12 @@ "arguments": [ { "argumentTypes": null, - "id": 921, + "id": 900, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 899, - "src": "5930:13:2", + "referencedDeclaration": 878, + "src": "6199:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7409,18 +8743,18 @@ "typeString": "address" } ], - "id": 920, + "id": 899, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "5917:12:2", + "referencedDeclaration": 1725, + "src": "6186:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 922, + "id": 901, "isConstant": false, "isLValue": false, "isPure": false, @@ -7428,28 +8762,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5917:27:2", + "src": "6186:27:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 923, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 1274, - "src": "5917:32:2", + "referencedDeclaration": 1263, + "src": "6186:32:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 926, + "id": 905, "isConstant": false, "isLValue": false, "isPure": false, @@ -7457,16 +8791,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5917:56:2", + "src": "6186:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 927, + "id": 906, "nodeType": "ExpressionStatement", - "src": "5917:56:2" + "src": "6186:56:1" } ] } @@ -7474,7 +8808,7 @@ ] }, "documentation": null, - "id": 949, + "id": 928, "implemented": true, "kind": "function", "modifiers": [], @@ -7482,18 +8816,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 825, + "id": 804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 824, + "id": 803, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 949, - "src": "4789:17:2", + "scope": 928, + "src": "5058:17:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7501,10 +8835,10 @@ "typeString": "bytes" }, "typeName": { - "id": 823, + "id": 802, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4789:5:2", + "src": "5058:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7514,40 +8848,40 @@ "visibility": "internal" } ], - "src": "4788:19:2" + "src": "5057:19:1" }, "returnParameters": { - "id": 826, + "id": 805, "nodeType": "ParameterList", "parameters": [], - "src": "4816:0:2" + "src": "5085:0:1" }, - "scope": 1181, - "src": "4768:1373:2", + "scope": 1170, + "src": "5037:1373:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 988, + "id": 967, "nodeType": "Block", - "src": "6262:791:2", + "src": "6531:791:1", "statements": [ { "assignments": [ - 961 + 940 ], "declarations": [ { "constant": false, - "id": 961, + "id": 940, "mutability": "mutable", "name": "targetBytes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 988, - "src": "6440:19:2", + "scope": 967, + "src": "6709:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7555,10 +8889,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 960, + "id": 939, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6440:7:2", + "src": "6709:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -7568,18 +8902,18 @@ "visibility": "internal" } ], - "id": 966, + "id": 945, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 964, + "id": 943, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "6470:18:2", + "referencedDeclaration": 355, + "src": "6739:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7593,29 +8927,29 @@ "typeString": "address" } ], - "id": 963, + "id": 942, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6462:7:2", + "src": "6731:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 962, + "id": 941, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6462:7:2", + "src": "6731:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 965, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -7623,7 +8957,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6462:27:2", + "src": "6731:27:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -7631,22 +8965,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6440:49:2" + "src": "6709:49:1" }, { "AST": { "nodeType": "YulBlock", - "src": "6508:341:2", + "src": "6777:341:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6522:24:2", + "src": "6791:24:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6541:4:2", + "src": "6810:4:1", "type": "", "value": "0x40" } @@ -7654,16 +8988,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "6535:5:2" + "src": "6804:5:1" }, "nodeType": "YulFunctionCall", - "src": "6535:11:2" + "src": "6804:11:1" }, "variables": [ { "name": "clone", "nodeType": "YulTypedName", - "src": "6526:5:2", + "src": "6795:5:1", "type": "" } ] @@ -7674,12 +9008,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6566:5:2" + "src": "6835:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6573:66:2", + "src": "6842:66:1", "type": "", "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" } @@ -7687,13 +9021,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6559:6:2" + "src": "6828:6:1" }, "nodeType": "YulFunctionCall", - "src": "6559:81:2" + "src": "6828:81:1" }, "nodeType": "YulExpressionStatement", - "src": "6559:81:2" + "src": "6828:81:1" }, { "expression": { @@ -7703,12 +9037,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6664:5:2" + "src": "6933:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6671:4:2", + "src": "6940:4:1", "type": "", "value": "0x14" } @@ -7716,27 +9050,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6660:3:2" + "src": "6929:3:1" }, "nodeType": "YulFunctionCall", - "src": "6660:16:2" + "src": "6929:16:1" }, { "name": "targetBytes", "nodeType": "YulIdentifier", - "src": "6678:11:2" + "src": "6947:11:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6653:6:2" + "src": "6922:6:1" }, "nodeType": "YulFunctionCall", - "src": "6653:37:2" + "src": "6922:37:1" }, "nodeType": "YulExpressionStatement", - "src": "6653:37:2" + "src": "6922:37:1" }, { "expression": { @@ -7746,12 +9080,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6714:5:2" + "src": "6983:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6721:4:2", + "src": "6990:4:1", "type": "", "value": "0x28" } @@ -7759,15 +9093,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6710:3:2" + "src": "6979:3:1" }, "nodeType": "YulFunctionCall", - "src": "6710:16:2" + "src": "6979:16:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6728:66:2", + "src": "6997:66:1", "type": "", "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" } @@ -7775,35 +9109,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6703:6:2" + "src": "6972:6:1" }, "nodeType": "YulFunctionCall", - "src": "6703:92:2" + "src": "6972:92:1" }, "nodeType": "YulExpressionStatement", - "src": "6703:92:2" + "src": "6972:92:1" }, { "nodeType": "YulAssignment", - "src": "6808:31:2", + "src": "7077:31:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6824:1:2", + "src": "7093:1:1", "type": "", "value": "0" }, { "name": "clone", "nodeType": "YulIdentifier", - "src": "6827:5:2" + "src": "7096:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6834:4:2", + "src": "7103:4:1", "type": "", "value": "0x37" } @@ -7811,16 +9145,16 @@ "functionName": { "name": "create", "nodeType": "YulIdentifier", - "src": "6817:6:2" + "src": "7086:6:1" }, "nodeType": "YulFunctionCall", - "src": "6817:22:2" + "src": "7086:22:1" }, "variableNames": [ { "name": "asset", "nodeType": "YulIdentifier", - "src": "6808:5:2" + "src": "7077:5:1" } ] } @@ -7829,23 +9163,23 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 958, + "declaration": 937, "isOffset": false, "isSlot": false, - "src": "6808:5:2", + "src": "7077:5:1", "valueSize": 1 }, { - "declaration": 961, + "declaration": 940, "isOffset": false, "isSlot": false, - "src": "6678:11:2", + "src": "6947:11:1", "valueSize": 1 } ], - "id": 967, + "id": 946, "nodeType": "InlineAssembly", - "src": "6499:350:2" + "src": "6768:350:1" }, { "expression": { @@ -7853,12 +9187,12 @@ "arguments": [ { "argumentTypes": null, - "id": 972, + "id": 951, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "6918:11:2", + "referencedDeclaration": 932, + "src": "7187:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7866,12 +9200,12 @@ }, { "argumentTypes": null, - "id": 973, + "id": 952, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "6931:13:2", + "referencedDeclaration": 934, + "src": "7200:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7894,12 +9228,12 @@ "arguments": [ { "argumentTypes": null, - "id": 969, + "id": 948, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "6900:5:2", + "referencedDeclaration": 937, + "src": "7169:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7913,18 +9247,18 @@ "typeString": "address" } ], - "id": 968, + "id": 947, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "6887:12:2", + "referencedDeclaration": 1725, + "src": "7156:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 970, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, @@ -7932,28 +9266,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6887:19:2", + "src": "7156:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 971, + "id": 950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "initialize", "nodeType": "MemberAccess", - "referencedDeclaration": 1253, - "src": "6887:30:2", + "referencedDeclaration": 1242, + "src": "7156:30:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$returns$__$", "typeString": "function (uint8,bytes32) external" } }, - "id": 974, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -7961,21 +9295,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6887:58:2", + "src": "7156:58:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 975, + "id": 954, "nodeType": "ExpressionStatement", - "src": "6887:58:2" + "src": "7156:58:1" }, { "expression": { "argumentTypes": null, - "id": 980, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, @@ -7984,26 +9318,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 976, + "id": 955, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "6981:13:2", + "referencedDeclaration": 405, + "src": "7250:13:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 978, + "id": 957, "indexExpression": { "argumentTypes": null, - "id": 977, + "id": 956, "name": "seed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "6995:4:2", + "referencedDeclaration": 930, + "src": "7264:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8014,7 +9348,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6981:19:2", + "src": "7250:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8024,31 +9358,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 979, + "id": 958, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "7003:5:2", + "referencedDeclaration": 937, + "src": "7272:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6981:27:2", + "src": "7250:27:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 981, + "id": 960, "nodeType": "ExpressionStatement", - "src": "6981:27:2" + "src": "7250:27:1" }, { "expression": { "argumentTypes": null, - "id": 986, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -8057,26 +9391,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 982, + "id": 961, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "7018:14:2", + "referencedDeclaration": 409, + "src": "7287:14:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 984, + "id": 963, "indexExpression": { "argumentTypes": null, - "id": 983, + "id": 962, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "7033:5:2", + "referencedDeclaration": 937, + "src": "7302:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8087,7 +9421,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7018:21:2", + "src": "7287:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8098,14 +9432,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 985, + "id": 964, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7042:4:2", + "src": "7311:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8113,20 +9447,20 @@ }, "value": "true" }, - "src": "7018:28:2", + "src": "7287:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 987, + "id": 966, "nodeType": "ExpressionStatement", - "src": "7018:28:2" + "src": "7287:28:1" } ] }, "documentation": null, - "id": 989, + "id": 968, "implemented": true, "kind": "function", "modifiers": [], @@ -8134,18 +9468,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 956, + "id": 935, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 951, + "id": 930, "mutability": "mutable", "name": "seed", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 989, - "src": "6175:12:2", + "scope": 968, + "src": "6444:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8153,10 +9487,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 950, + "id": 929, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6175:7:2", + "src": "6444:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8167,13 +9501,13 @@ }, { "constant": false, - "id": 953, + "id": 932, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 989, - "src": "6189:17:2", + "scope": 968, + "src": "6458:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8181,10 +9515,10 @@ "typeString": "uint8" }, "typeName": { - "id": 952, + "id": 931, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6189:5:2", + "src": "6458:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8195,13 +9529,13 @@ }, { "constant": false, - "id": 955, + "id": 934, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 989, - "src": "6208:21:2", + "scope": 968, + "src": "6477:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8209,10 +9543,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 954, + "id": 933, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6208:7:2", + "src": "6477:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8222,21 +9556,21 @@ "visibility": "internal" } ], - "src": "6174:56:2" + "src": "6443:56:1" }, "returnParameters": { - "id": 959, + "id": 938, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 958, + "id": 937, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 989, - "src": "6248:13:2", + "scope": 968, + "src": "6517:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8244,10 +9578,10 @@ "typeString": "address" }, "typeName": { - "id": 957, + "id": 936, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6248:7:2", + "src": "6517:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8258,19 +9592,19 @@ "visibility": "internal" } ], - "src": "6247:15:2" + "src": "6516:15:1" }, - "scope": 1181, - "src": "6147:906:2", + "scope": 1170, + "src": "6416:906:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 1115, + "id": 1099, "nodeType": "Block", - "src": "7194:1027:2", + "src": "7526:1034:1", "statements": [ { "expression": { @@ -8282,19 +9616,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1003, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1001, + "id": 984, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "7212:6:2", + "referencedDeclaration": 972, + "src": "7544:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8305,14 +9639,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1002, + "id": 985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7222:1:2", + "src": "7554:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8320,7 +9654,7 @@ }, "value": "0" }, - "src": "7212:11:2", + "src": "7544:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8329,14 +9663,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 1004, + "id": 987, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7225:22:2", + "src": "7557:22:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -8356,7 +9690,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 1000, + "id": 983, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -8364,13 +9698,13 @@ -18 ], "referencedDeclaration": -18, - "src": "7204:7:2", + "src": "7536:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1005, + "id": 988, "isConstant": false, "isLValue": false, "isPure": false, @@ -8378,31 +9712,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7204:44:2", + "src": "7536:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1006, + "id": 989, "nodeType": "ExpressionStatement", - "src": "7204:44:2" + "src": "7536:44:1" }, { "assignments": [ - 1008 + 991 ], "declarations": [ { "constant": false, - "id": 1008, + "id": 991, "mutability": "mutable", "name": "asset_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1115, - "src": "7259:17:2", + "scope": 1099, + "src": "7591:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8410,10 +9744,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1007, + "id": 990, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7259:5:2", + "src": "7591:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8423,37 +9757,37 @@ "visibility": "internal" } ], - "id": 1010, + "id": 993, "initialValue": { "argumentTypes": null, - "id": 1009, + "id": 992, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "7279:8:2", + "referencedDeclaration": 358, + "src": "7611:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "7259:28:2" + "src": "7591:28:1" }, { "assignments": [ - 1012 + 995 ], "declarations": [ { "constant": false, - "id": 1012, + "id": 995, "mutability": "mutable", "name": "asset_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1115, - "src": "7297:21:2", + "scope": 1099, + "src": "7629:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8461,10 +9795,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1011, + "id": 994, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7297:7:2", + "src": "7629:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8474,36 +9808,36 @@ "visibility": "internal" } ], - "id": 1013, + "id": 996, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "7297:21:2" + "src": "7629:21:1" }, { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1014, + "id": 997, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "7332:14:2", + "referencedDeclaration": 409, + "src": "7664:14:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1016, + "id": 999, "indexExpression": { "argumentTypes": null, - "id": 1015, + "id": 998, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7347:5:2", + "referencedDeclaration": 970, + "src": "7679:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8514,31 +9848,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7332:21:2", + "src": "7664:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1097, + "id": 1080, "nodeType": "Block", - "src": "7554:539:2", + "src": "7886:539:1", "statements": [ { "assignments": [ - 1044 + 1027 ], "declarations": [ { "constant": false, - "id": 1044, + "id": 1027, "mutability": "mutable", "name": "balanceBefore", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1097, - "src": "7568:21:2", + "scope": 1080, + "src": "7900:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8546,10 +9880,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1043, + "id": 1026, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7568:7:2", + "src": "7900:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8559,7 +9893,7 @@ "visibility": "internal" } ], - "id": 1054, + "id": 1037, "initialValue": { "argumentTypes": null, "arguments": [ @@ -8568,14 +9902,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1051, + "id": 1034, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "7624:4:2", + "src": "7956:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeIdentifier": "t_contract$_Wormhole_$1170", "typeString": "contract Wormhole" } } @@ -8583,33 +9917,33 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeIdentifier": "t_contract$_Wormhole_$1170", "typeString": "contract Wormhole" } ], - "id": 1050, + "id": 1033, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7616:7:2", + "src": "7948:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1049, + "id": 1032, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7616:7:2", + "src": "7948:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1052, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, @@ -8617,7 +9951,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7616:13:2", + "src": "7948:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -8637,12 +9971,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1029, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7599:5:2", + "referencedDeclaration": 970, + "src": "7931:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8656,17 +9990,143 @@ "typeString": "address" } ], - "id": 1045, + "id": 1028, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "7592:6:2", + "referencedDeclaration": 2022, + "src": "7924:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$", "typeString": "type(contract IERC20)" } }, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7924:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$2022", + "typeString": "contract IERC20" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1961, + "src": "7924:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7924:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7900:62:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1042, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8007:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8007:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1046, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8027:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Wormhole_$1170", + "typeString": "contract Wormhole" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Wormhole_$1170", + "typeString": "contract Wormhole" + } + ], + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8019:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8019:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, "id": 1047, "isConstant": false, "isLValue": false, @@ -8675,133 +10135,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7592:13:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", - "typeString": "contract IERC20" - } - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "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": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7592:38:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7568:62:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1059, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7675:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7675:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1063, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7695:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1181", - "typeString": "contract Wormhole" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Wormhole_$1181", - "typeString": "contract Wormhole" - } - ], - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7687:7:2", - "typeDescriptions": { - "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, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7687:13:2", + "src": "8019:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -8810,12 +10144,12 @@ }, { "argumentTypes": null, - "id": 1065, + "id": 1048, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "7702:6:2", + "referencedDeclaration": 972, + "src": "8034:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8842,12 +10176,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1056, + "id": 1039, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7651:5:2", + "referencedDeclaration": 970, + "src": "7983:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8861,18 +10195,18 @@ "typeString": "address" } ], - "id": 1055, + "id": 1038, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "7644:6:2", + "referencedDeclaration": 2022, + "src": "7976:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$", "typeString": "type(contract IERC20)" } }, - "id": 1057, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, @@ -8880,28 +10214,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7644:13:2", + "src": "7976:13:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } }, - "id": 1058, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 2092, - "src": "7644:30:2", + "referencedDeclaration": 2081, + "src": "7976:30:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2033_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2022_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2022_$", "typeString": "function (contract IERC20,address,address,uint256)" } }, - "id": 1066, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": false, @@ -8909,31 +10243,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7644:65:2", + "src": "7976:65:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1067, + "id": 1050, "nodeType": "ExpressionStatement", - "src": "7644:65:2" + "src": "7976:65:1" }, { "assignments": [ - 1069 + 1052 ], "declarations": [ { "constant": false, - "id": 1069, + "id": 1052, "mutability": "mutable", "name": "balanceAfter", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1097, - "src": "7723:20:2", + "scope": 1080, + "src": "8055:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8941,10 +10275,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1068, + "id": 1051, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7723:7:2", + "src": "8055:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8954,7 +10288,7 @@ "visibility": "internal" } ], - "id": 1079, + "id": 1062, "initialValue": { "argumentTypes": null, "arguments": [ @@ -8963,14 +10297,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1076, + "id": 1059, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "7778:4:2", + "src": "8110:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeIdentifier": "t_contract$_Wormhole_$1170", "typeString": "contract Wormhole" } } @@ -8978,33 +10312,33 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeIdentifier": "t_contract$_Wormhole_$1170", "typeString": "contract Wormhole" } ], - "id": 1075, + "id": 1058, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7770:7:2", + "src": "8102:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1074, + "id": 1057, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7770:7:2", + "src": "8102:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1077, + "id": 1060, "isConstant": false, "isLValue": false, "isPure": false, @@ -9012,7 +10346,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7770:13:2", + "src": "8102:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -9032,12 +10366,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1071, + "id": 1054, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7753:5:2", + "referencedDeclaration": 970, + "src": "8085:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9051,18 +10385,18 @@ "typeString": "address" } ], - "id": 1070, + "id": 1053, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "7746:6:2", + "referencedDeclaration": 2022, + "src": "8078:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$", "typeString": "type(contract IERC20)" } }, - "id": 1072, + "id": 1055, "isConstant": false, "isLValue": false, "isPure": false, @@ -9070,28 +10404,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7746:13:2", + "src": "8078:13:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } }, - "id": 1073, + "id": 1056, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1972, - "src": "7746:23:2", + "referencedDeclaration": 1961, + "src": "8078:23:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1078, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -9099,7 +10433,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7746:38:2", + "src": "8078:38:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9107,24 +10441,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7723:61:2" + "src": "8055:61:1" }, { "expression": { "argumentTypes": null, - "id": 1085, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1080, + "id": 1063, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "7989:6:2", + "referencedDeclaration": 972, + "src": "8321:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9137,12 +10471,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1083, + "id": 1066, "name": "balanceBefore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1044, - "src": "8015:13:2", + "referencedDeclaration": 1027, + "src": "8347:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9158,32 +10492,32 @@ ], "expression": { "argumentTypes": null, - "id": 1081, + "id": 1064, "name": "balanceAfter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "7998:12:2", + "referencedDeclaration": 1052, + "src": "8330:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1082, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1805, - "src": "7998:16:2", + "referencedDeclaration": 1794, + "src": "8330:16:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1084, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -9191,39 +10525,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7998:31:2", + "src": "8330:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7989:40:2", + "src": "8321:40:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1086, + "id": 1069, "nodeType": "ExpressionStatement", - "src": "7989:40:2" + "src": "8321:40:1" }, { "expression": { "argumentTypes": null, - "id": 1095, + "id": 1078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1087, + "id": 1070, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1012, - "src": "8043:13:2", + "referencedDeclaration": 995, + "src": "8375:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9239,12 +10573,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1092, + "id": 1075, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "8075:5:2", + "referencedDeclaration": 970, + "src": "8407:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9258,29 +10592,29 @@ "typeString": "address" } ], - "id": 1091, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8067:7:2", + "src": "8399:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1090, + "id": 1073, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8067:7:2", + "src": "8399:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1093, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": false, @@ -9288,7 +10622,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8067:14:2", + "src": "8399:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9303,29 +10637,29 @@ "typeString": "uint256" } ], - "id": 1089, + "id": 1072, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8059:7:2", + "src": "8391:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1088, + "id": 1071, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8059:7:2", + "src": "8391:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1094, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": false, @@ -9333,32 +10667,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8059:23:2", + "src": "8391:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8043:39:2", + "src": "8375:39:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1096, + "id": 1079, "nodeType": "ExpressionStatement", - "src": "8043:39:2" + "src": "8375:39:1" } ] }, - "id": 1098, + "id": 1081, "nodeType": "IfStatement", - "src": "7328:765:2", + "src": "7660:765:1", "trueBody": { - "id": 1042, + "id": 1025, "nodeType": "Block", - "src": "7355:193:2", + "src": "7687:193:1", "statements": [ { "expression": { @@ -9368,18 +10702,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1021, + "id": 1004, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7394:3:2", + "src": "7726:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1022, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, @@ -9387,7 +10721,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7394:10:2", + "src": "7726:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9395,12 +10729,12 @@ }, { "argumentTypes": null, - "id": 1023, + "id": 1006, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "7406:6:2", + "referencedDeclaration": 972, + "src": "7738:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9423,12 +10757,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1018, + "id": 1001, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7382:5:2", + "referencedDeclaration": 970, + "src": "7714:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9442,18 +10776,18 @@ "typeString": "address" } ], - "id": 1017, + "id": 1000, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "7369:12:2", + "referencedDeclaration": 1725, + "src": "7701:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1019, + "id": 1002, "isConstant": false, "isLValue": false, "isPure": false, @@ -9461,28 +10795,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7369:19:2", + "src": "7701:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 1020, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "burn", "nodeType": "MemberAccess", - "referencedDeclaration": 1295, - "src": "7369:24:2", + "referencedDeclaration": 1284, + "src": "7701:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 1024, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -9490,33 +10824,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7369:44:2", + "src": "7701:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1025, + "id": 1008, "nodeType": "ExpressionStatement", - "src": "7369:44:2" + "src": "7701:44:1" }, { "expression": { "argumentTypes": null, - "id": 1032, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1026, + "id": 1009, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1008, - "src": "7427:11:2", + "referencedDeclaration": 991, + "src": "7759:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9534,12 +10868,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1028, + "id": 1011, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7454:5:2", + "referencedDeclaration": 970, + "src": "7786:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9553,18 +10887,18 @@ "typeString": "address" } ], - "id": 1027, + "id": 1010, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "7441:12:2", + "referencedDeclaration": 1725, + "src": "7773:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1029, + "id": 1012, "isConstant": false, "isLValue": false, "isPure": false, @@ -9572,28 +10906,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7441:19:2", + "src": "7773:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 1030, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "assetChain", "nodeType": "MemberAccess", - "referencedDeclaration": 1204, - "src": "7441:30:2", + "referencedDeclaration": 1193, + "src": "7773:30:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 1031, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -9601,39 +10935,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7441:32:2", + "src": "7773:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "7427:46:2", + "src": "7759:46:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1033, + "id": 1016, "nodeType": "ExpressionStatement", - "src": "7427:46:2" + "src": "7759:46:1" }, { "expression": { "argumentTypes": null, - "id": 1040, + "id": 1023, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1034, + "id": 1017, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1012, - "src": "7487:13:2", + "referencedDeclaration": 995, + "src": "7819:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9651,12 +10985,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1019, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7516:5:2", + "referencedDeclaration": 970, + "src": "7848:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9670,18 +11004,18 @@ "typeString": "address" } ], - "id": 1035, + "id": 1018, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "7503:12:2", + "referencedDeclaration": 1725, + "src": "7835:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1037, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": false, @@ -9689,28 +11023,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7503:19:2", + "src": "7835:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 1038, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "assetAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1206, - "src": "7503:32:2", + "referencedDeclaration": 1195, + "src": "7835:32:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", "typeString": "function () view external returns (bytes32)" } }, - "id": 1039, + "id": 1022, "isConstant": false, "isLValue": false, "isPure": false, @@ -9718,22 +11052,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7503:34:2", + "src": "7835:34:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7487:50:2", + "src": "7819:50:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1041, + "id": 1024, "nodeType": "ExpressionStatement", - "src": "7487:50:2" + "src": "7819:50:1" } ] } @@ -9744,12 +11078,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1100, + "id": 1083, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "8124:12:2", + "referencedDeclaration": 976, + "src": "8456:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9757,12 +11091,12 @@ }, { "argumentTypes": null, - "id": 1101, + "id": 1084, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1008, - "src": "8138:11:2", + "referencedDeclaration": 991, + "src": "8470:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9770,12 +11104,12 @@ }, { "argumentTypes": null, - "id": 1102, + "id": 1085, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1012, - "src": "8151:13:2", + "referencedDeclaration": 995, + "src": "8483:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9791,18 +11125,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1107, + "id": 1090, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8182:3:2", + "src": "8514:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1108, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, @@ -9810,7 +11144,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8182:10:2", + "src": "8514:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9824,29 +11158,29 @@ "typeString": "address payable" } ], - "id": 1106, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8174:7:2", + "src": "8506:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1105, + "id": 1088, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8174:7:2", + "src": "8506:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1109, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, @@ -9854,7 +11188,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8174:19:2", + "src": "8506:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -9869,29 +11203,29 @@ "typeString": "uint256" } ], - "id": 1104, + "id": 1087, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8166:7:2", + "src": "8498:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1103, + "id": 1086, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8166:7:2", + "src": "8498:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1110, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, @@ -9899,7 +11233,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8166:28:2", + "src": "8498:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -9908,12 +11242,12 @@ }, { "argumentTypes": null, - "id": 1111, + "id": 1094, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "8196:9:2", + "referencedDeclaration": 974, + "src": "8528:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9921,16 +11255,29 @@ }, { "argumentTypes": null, - "id": 1112, + "id": 1095, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "8207:6:2", + "referencedDeclaration": 972, + "src": "8539:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 1096, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 978, + "src": "8547:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } } ], "expression": { @@ -9958,20 +11305,24 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" } ], - "id": 1099, + "id": 1082, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "8108:15:2", + "referencedDeclaration": 389, + "src": "8440:15:1", "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)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)" } }, - "id": 1113, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -9979,41 +11330,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8108:106:2", + "src": "8440:113:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1114, + "id": 1098, "nodeType": "EmitStatement", - "src": "8103:111:2" + "src": "8435:118:1" } ] }, "documentation": null, - "functionSelector": "e66fd373", - "id": 1116, + "functionSelector": "13cca1a9", + "id": 1100, "implemented": true, "kind": "function", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 981, + "modifierName": { + "argumentTypes": null, + "id": 980, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2478, + "src": "7513:12:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7513:12:1" + } + ], "name": "lockAssets", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 998, + "id": 979, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 991, + "id": 970, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1116, - "src": "7088:13:2", + "scope": 1100, + "src": "7385:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10021,10 +11392,10 @@ "typeString": "address" }, "typeName": { - "id": 990, + "id": 969, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7088:7:2", + "src": "7385:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10036,13 +11407,13 @@ }, { "constant": false, - "id": 993, + "id": 972, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1116, - "src": "7111:14:2", + "scope": 1100, + "src": "7408:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10050,10 +11421,10 @@ "typeString": "uint256" }, "typeName": { - "id": 992, + "id": 971, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7111:7:2", + "src": "7408:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10064,13 +11435,13 @@ }, { "constant": false, - "id": 995, + "id": 974, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1116, - "src": "7135:17:2", + "scope": 1100, + "src": "7432:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10078,10 +11449,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 994, + "id": 973, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7135:7:2", + "src": "7432:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10092,13 +11463,13 @@ }, { "constant": false, - "id": 997, + "id": 976, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1116, - "src": "7162:18:2", + "scope": 1100, + "src": "7459:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10106,10 +11477,10 @@ "typeString": "uint8" }, "typeName": { - "id": 996, + "id": 975, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7162:5:2", + "src": "7459:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10117,27 +11488,55 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 978, + "mutability": "mutable", + "name": "nonce", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1100, + "src": "7487:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 977, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7487:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "7078:108:2" + "src": "7375:130:1" }, "returnParameters": { - "id": 999, + "id": 982, "nodeType": "ParameterList", "parameters": [], - "src": "7194:0:2" + "src": "7526:0:1" }, - "scope": 1181, - "src": "7059:1162:2", + "scope": 1170, + "src": "7356:1204:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1163, + "id": 1152, "nodeType": "Block", - "src": "8320:323:2", + "src": "8694:330:1", "statements": [ { "expression": { @@ -10149,7 +11548,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1127, + "id": 1115, "isConstant": false, "isLValue": false, "isPure": false, @@ -10158,18 +11557,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1124, + "id": 1112, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8338:3:2", + "src": "8712:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1125, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, @@ -10177,7 +11576,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8338:9:2", + "src": "8712:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10188,14 +11587,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1126, + "id": 1114, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8351:1:2", + "src": "8725:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10203,7 +11602,7 @@ }, "value": "0" }, - "src": "8338:14:2", + "src": "8712:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10212,14 +11611,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 1128, + "id": 1116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8354:22:2", + "src": "8728:22:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -10239,7 +11638,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 1123, + "id": 1111, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10247,13 +11646,13 @@ -18 ], "referencedDeclaration": -18, - "src": "8330:7:2", + "src": "8704:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1129, + "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, @@ -10261,16 +11660,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8330:47:2", + "src": "8704:47:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1130, + "id": 1118, "nodeType": "ExpressionStatement", - "src": "8330:47:2" + "src": "8704:47:1" }, { "expression": { @@ -10285,12 +11684,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1132, + "id": 1120, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 479, - "src": "8426:11:2", + "referencedDeclaration": 361, + "src": "8800:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10304,18 +11703,18 @@ "typeString": "address" } ], - "id": 1131, + "id": 1119, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1192, - "src": "8421:4:2", + "referencedDeclaration": 1181, + "src": "8795:4:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WETH_$1192_$", + "typeIdentifier": "t_type$_t_contract$_WETH_$1181_$", "typeString": "type(contract WETH)" } }, - "id": 1133, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": true, @@ -10323,28 +11722,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8421:17:2", + "src": "8795:17:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WETH_$1192", + "typeIdentifier": "t_contract$_WETH_$1181", "typeString": "contract WETH" } }, - "id": 1134, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": 1186, - "src": "8421:25:2", + "referencedDeclaration": 1175, + "src": "8795:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, - "id": 1137, + "id": 1125, "isConstant": false, "isLValue": false, "isPure": false, @@ -10358,18 +11757,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1135, + "id": 1123, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8455:3:2", + "src": "8829:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1136, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": false, @@ -10377,20 +11776,20 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8455:9:2", + "src": "8829:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "8421:44:2", + "src": "8795:44:1", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 1138, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": false, @@ -10398,16 +11797,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8421:46:2", + "src": "8795:46:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1139, + "id": 1127, "nodeType": "ExpressionStatement", - "src": "8421:46:2" + "src": "8795:46:1" }, { "eventCall": { @@ -10415,12 +11814,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1141, + "id": 1129, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, - "src": "8530:12:2", + "referencedDeclaration": 1104, + "src": "8904:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10428,12 +11827,12 @@ }, { "argumentTypes": null, - "id": 1142, + "id": 1130, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "8544:8:2", + "referencedDeclaration": 358, + "src": "8918:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10447,12 +11846,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1147, + "id": 1135, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 479, - "src": "8570:11:2", + "referencedDeclaration": 361, + "src": "8944:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10466,29 +11865,29 @@ "typeString": "address" } ], - "id": 1146, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8562:7:2", + "src": "8936:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1145, + "id": 1133, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8562:7:2", + "src": "8936:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1148, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": true, @@ -10496,7 +11895,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8562:20:2", + "src": "8936:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10511,29 +11910,29 @@ "typeString": "uint256" } ], - "id": 1144, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8554:7:2", + "src": "8928:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1143, + "id": 1131, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8554:7:2", + "src": "8928:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1149, + "id": 1137, "isConstant": false, "isLValue": false, "isPure": true, @@ -10541,7 +11940,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8554:29:2", + "src": "8928:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -10558,18 +11957,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1154, + "id": 1142, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8601:3:2", + "src": "8975:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1155, + "id": 1143, "isConstant": false, "isLValue": false, "isPure": false, @@ -10577,7 +11976,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8601:10:2", + "src": "8975:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10591,29 +11990,29 @@ "typeString": "address payable" } ], - "id": 1153, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8593:7:2", + "src": "8967:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1152, + "id": 1140, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8593:7:2", + "src": "8967:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1156, + "id": 1144, "isConstant": false, "isLValue": false, "isPure": false, @@ -10621,7 +12020,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8593:19:2", + "src": "8967:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10636,29 +12035,29 @@ "typeString": "uint256" } ], - "id": 1151, + "id": 1139, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8585:7:2", + "src": "8959:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1150, + "id": 1138, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8585:7:2", + "src": "8959:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1157, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": false, @@ -10666,7 +12065,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8585:28:2", + "src": "8959:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -10675,12 +12074,12 @@ }, { "argumentTypes": null, - "id": 1158, + "id": 1146, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1118, - "src": "8615:9:2", + "referencedDeclaration": 1102, + "src": "8989:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10690,18 +12089,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1159, + "id": 1147, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8626:3:2", + "src": "9000:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1160, + "id": 1148, "isConstant": false, "isLValue": false, "isPure": false, @@ -10709,11 +12108,24 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8626:9:2", + "src": "9000:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 1149, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1106, + "src": "9011:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } } ], "expression": { @@ -10741,20 +12153,24 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" } ], - "id": 1140, + "id": 1128, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "8514:15:2", + "referencedDeclaration": 389, + "src": "8888:15:1", "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)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)" } }, - "id": 1161, + "id": 1150, "isConstant": false, "isLValue": false, "isPure": false, @@ -10762,41 +12178,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8514:122:2", + "src": "8888:129:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1162, + "id": 1151, "nodeType": "EmitStatement", - "src": "8509:127:2" + "src": "8883:134:1" } ] }, "documentation": null, - "functionSelector": "780e2183", - "id": 1164, + "functionSelector": "58d62e46", + "id": 1153, "implemented": true, "kind": "function", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 1109, + "modifierName": { + "argumentTypes": null, + "id": 1108, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2478, + "src": "8681:12:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8681:12:1" + } + ], "name": "lockETH", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1121, + "id": 1107, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1118, + "id": 1102, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1164, - "src": "8253:17:2", + "scope": 1153, + "src": "8592:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10804,10 +12240,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1117, + "id": 1101, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8253:7:2", + "src": "8592:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10818,13 +12254,13 @@ }, { "constant": false, - "id": 1120, + "id": 1104, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1164, - "src": "8280:18:2", + "scope": 1153, + "src": "8619:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10832,10 +12268,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1119, + "id": 1103, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "8280:5:2", + "src": "8619:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10843,27 +12279,55 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1106, + "mutability": "mutable", + "name": "nonce", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1153, + "src": "8647:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1105, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "8243:61:2" + "src": "8582:83:1" }, "returnParameters": { - "id": 1122, + "id": 1110, "nodeType": "ParameterList", "parameters": [], - "src": "8320:0:2" + "src": "8694:0:1" }, - "scope": 1181, - "src": "8227:416:2", + "scope": 1170, + "src": "8566:458:1", "stateMutability": "payable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1171, + "id": 1160, "nodeType": "Block", - "src": "8674:57:2", + "src": "9055:57:1", "statements": [ { "expression": { @@ -10872,14 +12336,14 @@ { "argumentTypes": null, "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1168, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8682:46:2", + "src": "9063:46:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -10895,7 +12359,7 @@ "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\"" } ], - "id": 1167, + "id": 1156, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -10903,13 +12367,13 @@ -19 ], "referencedDeclaration": -19, - "src": "8675:6:2", + "src": "9056:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1169, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -10917,21 +12381,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8675:54:2", + "src": "9056:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1170, + "id": 1159, "nodeType": "ExpressionStatement", - "src": "8675:54:2" + "src": "9056:54:1" } ] }, "documentation": null, - "id": 1172, + "id": 1161, "implemented": true, "kind": "fallback", "modifiers": [], @@ -10939,28 +12403,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1165, + "id": 1154, "nodeType": "ParameterList", "parameters": [], - "src": "8654:2:2" + "src": "9035:2:1" }, "returnParameters": { - "id": 1166, + "id": 1155, "nodeType": "ParameterList", "parameters": [], - "src": "8674:0:2" + "src": "9055:0:1" }, - "scope": 1181, - "src": "8646:85:2", + "scope": 1170, + "src": "9027:85:1", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1179, + "id": 1168, "nodeType": "Block", - "src": "8759:57:2", + "src": "9140:57:1", "statements": [ { "expression": { @@ -10969,14 +12433,14 @@ { "argumentTypes": null, "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1176, + "id": 1165, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8767:46:2", + "src": "9148:46:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -10992,7 +12456,7 @@ "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\"" } ], - "id": 1175, + "id": 1164, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11000,13 +12464,13 @@ -19 ], "referencedDeclaration": -19, - "src": "8760:6:2", + "src": "9141:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1177, + "id": 1166, "isConstant": false, "isLValue": false, "isPure": false, @@ -11014,21 +12478,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8760:54:2", + "src": "9141:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1178, + "id": 1167, "nodeType": "ExpressionStatement", - "src": "8760:54:2" + "src": "9141:54:1" } ] }, "documentation": null, - "id": 1180, + "id": 1169, "implemented": true, "kind": "receive", "modifiers": [], @@ -11036,26 +12500,26 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1173, + "id": 1162, "nodeType": "ParameterList", "parameters": [], - "src": "8739:2:2" + "src": "9120:2:1" }, "returnParameters": { - "id": 1174, + "id": 1163, "nodeType": "ParameterList", "parameters": [], - "src": "8759:0:2" + "src": "9140:0:1" }, - "scope": 1181, - "src": "8732:84:2", + "scope": 1170, + "src": "9113:84:1", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 1193, - "src": "380:8438:2" + "scope": 1182, + "src": "446:8753:1" }, { "abstract": false, @@ -11064,31 +12528,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1182, + "id": 1171, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2033, - "src": "8839:6:2", + "referencedDeclaration": 2022, + "src": "9220:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } }, - "id": 1183, + "id": 1172, "nodeType": "InheritanceSpecifier", - "src": "8839:6:2" + "src": "9220:6:1" } ], "contractDependencies": [ - 2033 + 2022 ], "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 1192, + "id": 1181, "linearizedBaseContracts": [ - 1192, - 2033 + 1181, + 2022 ], "name": "WETH", "nodeType": "ContractDefinition", @@ -11097,7 +12561,7 @@ "body": null, "documentation": null, "functionSelector": "d0e30db0", - "id": 1186, + "id": 1175, "implemented": false, "kind": "function", "modifiers": [], @@ -11105,19 +12569,19 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1184, + "id": 1173, "nodeType": "ParameterList", "parameters": [], - "src": "8864:2:2" + "src": "9245:2:1" }, "returnParameters": { - "id": 1185, + "id": 1174, "nodeType": "ParameterList", "parameters": [], - "src": "8883:0:2" + "src": "9264:0:1" }, - "scope": 1192, - "src": "8848:36:2", + "scope": 1181, + "src": "9229:36:1", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -11126,7 +12590,7 @@ "body": null, "documentation": null, "functionSelector": "2e1a7d4d", - "id": 1191, + "id": 1180, "implemented": false, "kind": "function", "modifiers": [], @@ -11134,18 +12598,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1189, + "id": 1178, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1188, + "id": 1177, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1191, - "src": "8904:14:2", + "scope": 1180, + "src": "9285:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11153,10 +12617,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1187, + "id": 1176, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8904:7:2", + "src": "9285:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11166,43 +12630,43 @@ "visibility": "internal" } ], - "src": "8903:16:2" + "src": "9284:16:1" }, "returnParameters": { - "id": 1190, + "id": 1179, "nodeType": "ParameterList", "parameters": [], - "src": "8928:0:2" + "src": "9309:0:1" }, - "scope": 1192, - "src": "8886:43:2", + "scope": 1181, + "src": "9267:43:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1193, - "src": "8821:110:2" + "scope": 1182, + "src": "9202:110:1" } ], - "src": "64:8868:2" + "src": "103:9210:1" }, "legacyAST": { "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol", "exportedSymbols": { "WETH": [ - 1192 + 1181 ], "Wormhole": [ - 1181 + 1170 ] }, - "id": 1193, + "id": 1182, "license": "Apache 2", "nodeType": "SourceUnit", "nodes": [ { - "id": 455, + "id": 335, "literals": [ "solidity", "^", @@ -11210,147 +12674,169 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "64:23:2" + "src": "103:23:1" }, { - "id": 456, + "id": 336, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", - "src": "88:33:2" + "src": "127:33:1" }, { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 457, + "id": 337, "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 2034, - "src": "123:56:2", + "scope": 1182, + "sourceUnit": 2023, + "src": "162:56:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol", - "id": 458, + "id": 338, "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 2247, - "src": "180:59:2", + "scope": 1182, + "sourceUnit": 2236, + "src": "219:59:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "file": "@openzeppelin/contracts/math/SafeMath.sol", - "id": 459, + "id": 339, "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 1956, - "src": "240:51:2", + "scope": 1182, + "sourceUnit": 1945, + "src": "279:51:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", + "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", + "id": 340, + "nodeType": "ImportDirective", + "scope": 1182, + "sourceUnit": 2480, + "src": "331:59:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/BytesLib.sol", "file": "./BytesLib.sol", - "id": 460, + "id": 341, "nodeType": "ImportDirective", - "scope": 1193, + "scope": 1182, "sourceUnit": 334, - "src": "292:24:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/SchnorrSECP256K1.sol", - "file": "./SchnorrSECP256K1.sol", - "id": 461, - "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 454, - "src": "317:32:2", + "src": "391:24:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/WrappedAsset.sol", "file": "./WrappedAsset.sol", - "id": 462, + "id": 342, "nodeType": "ImportDirective", - "scope": 1193, - "sourceUnit": 1737, - "src": "350:28:2", + "scope": 1182, + "sourceUnit": 1726, + "src": "416:28:1", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, - "baseContracts": [], - "contractDependencies": [], + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 343, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2479, + "src": "467:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$2479", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 344, + "nodeType": "InheritanceSpecifier", + "src": "467:15:1" + } + ], + "contractDependencies": [ + 2479 + ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1181, + "id": 1170, "linearizedBaseContracts": [ - 1181 + 1170, + 2479 ], "name": "Wormhole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 465, + "id": 347, "libraryName": { "contractScope": null, - "id": 463, + "id": 345, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2246, - "src": "410:9:2", + "referencedDeclaration": 2235, + "src": "495:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$2246", + "typeIdentifier": "t_contract$_SafeERC20_$2235", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", - "src": "404:27:2", + "src": "489:27:1", "typeName": { "contractScope": null, - "id": 464, + "id": 346, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2033, - "src": "424:6:2", + "referencedDeclaration": 2022, + "src": "509:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } } }, { - "id": 468, + "id": 350, "libraryName": { "contractScope": null, - "id": 466, + "id": 348, "name": "BytesLib", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 333, - "src": "442:8:2", + "src": "527:8:1", "typeDescriptions": { "typeIdentifier": "t_contract$_BytesLib_$333", "typeString": "library BytesLib" } }, "nodeType": "UsingForDirective", - "src": "436:25:2", + "src": "521:25:1", "typeName": { - "id": 467, + "id": 349, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "455:5:2", + "src": "540:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -11358,26 +12844,26 @@ } }, { - "id": 471, + "id": 353, "libraryName": { "contractScope": null, - "id": 469, + "id": 351, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1955, - "src": "472:8:2", + "referencedDeclaration": 1944, + "src": "557:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1955", + "typeIdentifier": "t_contract$_SafeMath_$1944", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "466:27:2", + "src": "551:27:1", "typeName": { - "id": 470, + "id": 352, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "485:7:2", + "src": "570:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11387,13 +12873,13 @@ { "constant": false, "functionSelector": "99da1d3c", - "id": 473, + "id": 355, "mutability": "mutable", "name": "wrappedAssetMaster", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "544:33:2", + "scope": 1170, + "src": "629:33:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11401,10 +12887,10 @@ "typeString": "address" }, "typeName": { - "id": 472, + "id": 354, "name": "address", "nodeType": "ElementaryTypeName", - "src": "544:7:2", + "src": "629:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11416,13 +12902,13 @@ }, { "constant": false, - "id": 476, + "id": 358, "mutability": "mutable", "name": "CHAIN_ID", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "612:18:2", + "scope": 1170, + "src": "697:18:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11430,10 +12916,10 @@ "typeString": "uint8" }, "typeName": { - "id": 474, + "id": 356, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "612:5:2", + "src": "697:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11442,14 +12928,14 @@ "value": { "argumentTypes": null, "hexValue": "32", - "id": 475, + "id": 357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "629:1:2", + "src": "714:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -11461,13 +12947,13 @@ }, { "constant": true, - "id": 479, + "id": 361, "mutability": "constant", "name": "WETHAddress", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "682:73:2", + "scope": 1170, + "src": "767:73:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11475,10 +12961,10 @@ "typeString": "address" }, "typeName": { - "id": 477, + "id": 359, "name": "address", "nodeType": "ElementaryTypeName", - "src": "682:7:2", + "src": "767:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11488,14 +12974,14 @@ "value": { "argumentTypes": null, "hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332", - "id": 478, + "id": 360, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "713:42:2", + "src": "798:42:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -11507,31 +12993,42 @@ }, { "canonicalName": "Wormhole.GuardianSet", - "id": 486, + "id": 367, "members": [ { "constant": false, - "id": 481, + "id": 364, "mutability": "mutable", - "name": "x", + "name": "keys", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 486, - "src": "791:9:2", + "scope": 367, + "src": "876:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" }, "typeName": { - "id": 480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "791:7:2", + "baseType": { + "id": 362, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "876:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 363, + "length": null, + "nodeType": "ArrayTypeName", + "src": "876:9:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" } }, "value": null, @@ -11539,41 +13036,13 @@ }, { "constant": false, - "id": 483, - "mutability": "mutable", - "name": "parity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 486, - "src": "810:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 482, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "810:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 485, + "id": 366, "mutability": "mutable", "name": "expiration_time", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 486, - "src": "832:22:2", + "scope": 367, + "src": "900:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11581,10 +13050,10 @@ "typeString": "uint32" }, "typeName": { - "id": 484, + "id": 365, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "832:6:2", + "src": "900:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11596,46 +13065,44 @@ ], "name": "GuardianSet", "nodeType": "StructDefinition", - "scope": 1181, - "src": "762:99:2", + "scope": 1170, + "src": "847:82:1", "visibility": "public" }, { "anonymous": false, "documentation": null, - "id": 492, + "id": 373, "name": "LogGuardianSetChanged", "nodeType": "EventDefinition", "parameters": { - "id": 491, + "id": 372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 488, - "indexed": true, + "id": 369, + "indexed": false, "mutability": "mutable", - "name": "oldGuardian", + "name": "oldGuardianIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 492, - "src": "904:31:2", + "scope": 373, + "src": "972:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "contractScope": null, - "id": 487, - "name": "GuardianSet", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "904:11:2", + "id": 368, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "972:6:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", - "typeString": "struct Wormhole.GuardianSet" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, @@ -11643,60 +13110,58 @@ }, { "constant": false, - "id": 490, - "indexed": true, + "id": 371, + "indexed": false, "mutability": "mutable", - "name": "newGuardian", + "name": "newGuardianIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 492, - "src": "945:31:2", + "scope": 373, + "src": "1005:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "contractScope": null, - "id": 489, - "name": "GuardianSet", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "945:11:2", + "id": 370, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1005:6:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", - "typeString": "struct Wormhole.GuardianSet" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, "visibility": "internal" } ], - "src": "894:88:2" + "src": "962:72:1" }, - "src": "867:116:2" + "src": "935:100:1" }, { "anonymous": false, "documentation": null, - "id": 506, + "id": 389, "name": "LogTokensLocked", "nodeType": "EventDefinition", "parameters": { - "id": 505, + "id": 388, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 494, + "id": 375, "indexed": false, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1020:18:2", + "scope": 389, + "src": "1072:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11704,10 +13169,10 @@ "typeString": "uint8" }, "typeName": { - "id": 493, + "id": 374, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1020:5:2", + "src": "1072:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11718,14 +13183,14 @@ }, { "constant": false, - "id": 496, + "id": 377, "indexed": false, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1048:17:2", + "scope": 389, + "src": "1100:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11733,10 +13198,10 @@ "typeString": "uint8" }, "typeName": { - "id": 495, + "id": 376, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1048:5:2", + "src": "1100:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11747,14 +13212,14 @@ }, { "constant": false, - "id": 498, + "id": 379, "indexed": true, "mutability": "mutable", "name": "token", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1075:21:2", + "scope": 389, + "src": "1127:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11762,10 +13227,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 497, + "id": 378, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1075:7:2", + "src": "1127:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11776,14 +13241,14 @@ }, { "constant": false, - "id": 500, + "id": 381, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1106:22:2", + "scope": 389, + "src": "1158:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11791,10 +13256,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 499, + "id": 380, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1106:7:2", + "src": "1158:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11805,14 +13270,14 @@ }, { "constant": false, - "id": 502, + "id": 383, "indexed": false, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1138:17:2", + "scope": 389, + "src": "1190:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11820,10 +13285,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 501, + "id": 382, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1138:7:2", + "src": "1190:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11834,14 +13299,14 @@ }, { "constant": false, - "id": 504, + "id": 385, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 506, - "src": "1165:14:2", + "scope": 389, + "src": "1217:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11849,10 +13314,10 @@ "typeString": "uint256" }, "typeName": { - "id": 503, + "id": 384, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1165:7:2", + "src": "1217:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11860,55 +13325,84 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 387, + "indexed": false, + "mutability": "mutable", + "name": "nonce", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 389, + "src": "1241:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 386, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1241:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1010:175:2" + "src": "1062:197:1" }, - "src": "989:197:2" + "src": "1041:219:1" }, { "constant": false, "functionSelector": "42b0aefa", - "id": 510, + "id": 393, "mutability": "mutable", "name": "guardian_sets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1245:51:2", + "scope": 1170, + "src": "1319:51:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "typeName": { - "id": 509, + "id": 392, "keyType": { - "id": 507, + "id": 390, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1253:6:2", + "src": "1327:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Mapping", - "src": "1245:30:2", + "src": "1319:30:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "valueType": { "contractScope": null, - "id": 508, + "id": 391, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "1263:11:2", + "referencedDeclaration": 367, + "src": "1337:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } } @@ -11919,13 +13413,13 @@ { "constant": false, "functionSelector": "822d82b3", - "id": 512, + "id": 395, "mutability": "mutable", "name": "guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1337:32:2", + "scope": 1170, + "src": "1411:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11933,10 +13427,10 @@ "typeString": "uint32" }, "typeName": { - "id": 511, + "id": 394, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1337:6:2", + "src": "1411:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11948,13 +13442,13 @@ { "constant": false, "functionSelector": "7f04d9e6", - "id": 514, + "id": 397, "mutability": "mutable", "name": "vaa_expiry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1427:24:2", + "scope": 1170, + "src": "1501:24:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11962,10 +13456,10 @@ "typeString": "uint32" }, "typeName": { - "id": 513, + "id": 396, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1427:6:2", + "src": "1501:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11976,13 +13470,13 @@ }, { "constant": false, - "id": 518, + "id": 401, "mutability": "mutable", "name": "consumedVAAs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1497:37:2", + "scope": 1170, + "src": "1571:37:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -11990,28 +13484,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 517, + "id": 400, "keyType": { - "id": 515, + "id": 398, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1505:7:2", + "src": "1579:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1497:24:2", + "src": "1571:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 516, + "id": 399, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1516:4:2", + "src": "1590:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12024,13 +13518,13 @@ { "constant": false, "functionSelector": "b6694c2a", - "id": 522, + "id": 405, "mutability": "mutable", "name": "wrappedAssets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1589:48:2", + "scope": 1170, + "src": "1663:48:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -12038,28 +13532,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 521, + "id": 404, "keyType": { - "id": 519, + "id": 402, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1597:7:2", + "src": "1671:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1589:27:2", + "src": "1663:27:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 520, + "id": 403, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1608:7:2", + "src": "1682:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12073,13 +13567,13 @@ { "constant": false, "functionSelector": "1a2be4da", - "id": 526, + "id": 409, "mutability": "mutable", "name": "isWrappedAsset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1181, - "src": "1643:46:2", + "scope": 1170, + "src": "1717:46:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -12087,28 +13581,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 525, + "id": 408, "keyType": { - "id": 523, + "id": 406, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1651:7:2", + "src": "1725:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1643:24:2", + "src": "1717:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 524, + "id": 407, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1662:4:2", + "src": "1736:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12120,14 +13614,14 @@ }, { "body": { - "id": 553, + "id": 436, "nodeType": "Block", - "src": "1806:217:2", + "src": "1880:217:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 539, + "id": 422, "isConstant": false, "isLValue": false, "isPure": false, @@ -12136,29 +13630,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 535, + "id": 418, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "1816:13:2", + "referencedDeclaration": 393, + "src": "1890:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 537, + "id": 420, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 536, + "id": 419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1830:1:2", + "src": "1904:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12171,9 +13665,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1816:16:2", + "src": "1890:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, @@ -12181,43 +13675,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 538, + "id": 421, "name": "initial_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "1835:20:2", + "referencedDeclaration": 411, + "src": "1909:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "1816:39:2", + "src": "1890:39:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 540, + "id": 423, "nodeType": "ExpressionStatement", - "src": "1816:39:2" + "src": "1890:39:1" }, { "expression": { "argumentTypes": null, - "id": 543, + "id": 426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 541, + "id": 424, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "1908:18:2", + "referencedDeclaration": 395, + "src": "1982:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12228,14 +13722,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 542, + "id": 425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1929:1:2", + "src": "2003:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12243,32 +13737,32 @@ }, "value": "0" }, - "src": "1908:22:2", + "src": "1982:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 544, + "id": 427, "nodeType": "ExpressionStatement", - "src": "1908:22:2" + "src": "1982:22:1" }, { "expression": { "argumentTypes": null, - "id": 547, + "id": 430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 545, + "id": 428, "name": "vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "1940:10:2", + "referencedDeclaration": 397, + "src": "2014:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12278,43 +13772,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 546, + "id": 429, "name": "_vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "1953:11:2", + "referencedDeclaration": 415, + "src": "2027:11:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "1940:24:2", + "src": "2014:24:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 548, + "id": 431, "nodeType": "ExpressionStatement", - "src": "1940:24:2" + "src": "2014:24:1" }, { "expression": { "argumentTypes": null, - "id": 551, + "id": 434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 549, + "id": 432, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "1975:18:2", + "referencedDeclaration": 355, + "src": "2049:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12324,31 +13818,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 550, + "id": 433, "name": "wrapped_asset_master", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "1996:20:2", + "referencedDeclaration": 413, + "src": "2070:20:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1975:41:2", + "src": "2049:41:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 552, + "id": 435, "nodeType": "ExpressionStatement", - "src": "1975:41:2" + "src": "2049:41:1" } ] }, "documentation": null, - "id": 554, + "id": 437, "implemented": true, "kind": "constructor", "modifiers": [], @@ -12356,33 +13850,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 533, + "id": 416, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 528, + "id": 411, "mutability": "mutable", "name": "initial_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 554, - "src": "1708:39:2", + "scope": 437, + "src": "1782:39:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 527, + "id": 410, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "1708:11:2", + "referencedDeclaration": 367, + "src": "1782:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -12391,13 +13885,13 @@ }, { "constant": false, - "id": 530, + "id": 413, "mutability": "mutable", "name": "wrapped_asset_master", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 554, - "src": "1749:28:2", + "scope": 437, + "src": "1823:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12405,10 +13899,10 @@ "typeString": "address" }, "typeName": { - "id": 529, + "id": 412, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1749:7:2", + "src": "1823:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12420,13 +13914,13 @@ }, { "constant": false, - "id": 532, + "id": 415, "mutability": "mutable", "name": "_vaa_expiry", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 554, - "src": "1779:18:2", + "scope": 437, + "src": "1853:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12434,10 +13928,10 @@ "typeString": "uint32" }, "typeName": { - "id": 531, + "id": 414, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1779:6:2", + "src": "1853:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12447,40 +13941,181 @@ "visibility": "internal" } ], - "src": "1707:91:2" + "src": "1781:91:1" }, "returnParameters": { - "id": 534, + "id": 417, "nodeType": "ParameterList", "parameters": [], - "src": "1806:0:2" + "src": "1880:0:1" }, - "scope": 1181, - "src": "1696:327:2", + "scope": 1170, + "src": "1770:327:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 727, + "id": 448, "nodeType": "Block", - "src": "2089:1737:2", + "src": "2183:42:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 444, + "name": "guardian_sets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 393, + "src": "2200:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", + "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" + } + }, + "id": 446, + "indexExpression": { + "argumentTypes": null, + "id": 445, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 439, + "src": "2214:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2200:18:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", + "typeString": "struct Wormhole.GuardianSet storage ref" + } + }, + "functionReturnParameters": 443, + "id": 447, + "nodeType": "Return", + "src": "2193:25:1" + } + ] + }, + "documentation": null, + "functionSelector": "f951975a", + "id": 449, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getGuardianSet", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 439, + "mutability": "mutable", + "name": "idx", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 449, + "src": "2127:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 438, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2127:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2126:12:1" + }, + "returnParameters": { + "id": 443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 442, + "mutability": "mutable", + "name": "gs", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 449, + "src": "2160:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet" + }, + "typeName": { + "contractScope": null, + "id": 441, + "name": "GuardianSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 367, + "src": "2160:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", + "typeString": "struct Wormhole.GuardianSet" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2159:23:1" + }, + "scope": 1170, + "src": "2103:122:1", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 701, + "nodeType": "Block", + "src": "2304:1920:1", "statements": [ { "assignments": [ - 560 + 457 ], "declarations": [ { "constant": false, - "id": 560, + "id": 457, "mutability": "mutable", "name": "version", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2099:13:2", + "scope": 701, + "src": "2314:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12488,10 +14123,10 @@ "typeString": "uint8" }, "typeName": { - "id": 559, + "id": 456, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2099:5:2", + "src": "2314:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12501,21 +14136,21 @@ "visibility": "internal" } ], - "id": 565, + "id": 462, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 563, + "id": 460, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2127:1:2", + "src": "2342:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12533,18 +14168,18 @@ ], "expression": { "argumentTypes": null, - "id": 561, + "id": 458, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2115:3:2", + "referencedDeclaration": 451, + "src": "2330:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 562, + "id": 459, "isConstant": false, "isLValue": false, "isPure": false, @@ -12552,13 +14187,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "2115:11:2", + "src": "2330:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 564, + "id": 461, "isConstant": false, "isLValue": false, "isPure": false, @@ -12566,7 +14201,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2115:14:2", + "src": "2330:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -12574,7 +14209,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2099:30:2" + "src": "2314:30:1" }, { "expression": { @@ -12586,19 +14221,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 569, + "id": 466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 567, + "id": 464, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "2147:7:2", + "referencedDeclaration": 457, + "src": "2362:7:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12609,14 +14244,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 568, + "id": 465, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2158:1:2", + "src": "2373:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12624,7 +14259,7 @@ }, "value": "1" }, - "src": "2147:12:2", + "src": "2362:12:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12633,14 +14268,14 @@ { "argumentTypes": null, "hexValue": "5641412076657273696f6e20696e636f6d70617469626c65", - "id": 570, + "id": 467, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2161:26:2", + "src": "2376:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a", @@ -12660,7 +14295,7 @@ "typeString": "literal_string \"VAA version incompatible\"" } ], - "id": 566, + "id": 463, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12668,13 +14303,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2139:7:2", + "src": "2354:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 571, + "id": 468, "isConstant": false, "isLValue": false, "isPure": false, @@ -12682,31 +14317,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2139:49:2", + "src": "2354:49:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 572, + "id": 469, "nodeType": "ExpressionStatement", - "src": "2139:49:2" + "src": "2354:49:1" }, { "assignments": [ - 574 + 471 ], "declarations": [ { "constant": false, - "id": 574, + "id": 471, "mutability": "mutable", "name": "vaa_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2245:29:2", + "scope": 701, + "src": "2460:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12714,10 +14349,10 @@ "typeString": "uint32" }, "typeName": { - "id": 573, + "id": 470, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2245:6:2", + "src": "2460:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12727,21 +14362,21 @@ "visibility": "internal" } ], - "id": 579, + "id": 476, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "31", - "id": 577, + "id": 474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2290:1:2", + "src": "2505:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -12759,18 +14394,18 @@ ], "expression": { "argumentTypes": null, - "id": 575, + "id": 472, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2277:3:2", + "referencedDeclaration": 451, + "src": "2492:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 576, + "id": 473, "isConstant": false, "isLValue": false, "isPure": false, @@ -12778,13 +14413,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2277:12:2", + "src": "2492:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint32)" } }, - "id": 578, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -12792,7 +14427,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2277:15:2", + "src": "2492:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -12800,22 +14435,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2245:47:2" + "src": "2460:47:1" }, { "assignments": [ - 581 + 478 ], "declarations": [ { "constant": false, - "id": 581, + "id": 478, "mutability": "mutable", - "name": "signature", + "name": "len_signers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2303:17:2", + "scope": 701, + "src": "2518:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12823,10 +14458,10 @@ "typeString": "uint256" }, "typeName": { - "id": 580, + "id": 477, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2303:7:2", + "src": "2518:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12836,21 +14471,21 @@ "visibility": "internal" } ], - "id": 586, + "id": 483, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 584, + "id": 481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2337:1:2", + "src": "2552:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -12868,32 +14503,32 @@ ], "expression": { "argumentTypes": null, - "id": 582, + "id": 479, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2323:3:2", + "referencedDeclaration": 451, + "src": "2540:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 583, + "id": 480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "toUint256", + "memberName": "toUint8", "nodeType": "MemberAccess", - "referencedDeclaration": 271, - "src": "2323:13:2", + "referencedDeclaration": 109, + "src": "2540:11:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,uint256) pure returns (uint256)" + "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": 585, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, @@ -12901,140 +14536,155 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2323:16:2", + "src": "2540:14:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "2303:36:2" + "src": "2518:36:1" }, { "assignments": [ - 588 + 485 ], "declarations": [ { "constant": false, - "id": 588, + "id": 485, "mutability": "mutable", - "name": "sig_address", + "name": "offset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2349:19:2", + "scope": 701, + "src": "2564:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 587, - "name": "address", + "id": 484, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2349:7:2", - "stateMutability": "nonpayable", + "src": "2564:4:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "id": 593, + "id": 491, "initialValue": { "argumentTypes": null, - "arguments": [ - { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "36", + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2578:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "hexValue": "3337", - "id": 591, + "hexValue": "3636", + "id": 487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2385:2:2", + "src": "2582:2:1", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_37_by_1", - "typeString": "int_const 37" + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" }, - "value": "37" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_37_by_1", - "typeString": "int_const 37" - } - ], - "expression": { + "value": "66" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { "argumentTypes": null, - "id": 589, - "name": "vaa", + "id": 488, + "name": "len_signers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2371:3:2", + "referencedDeclaration": 478, + "src": "2587:11:1", "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 82, - "src": "2371:13:2", + "src": "2582:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,uint256) pure returns (address)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2371:17:2", - "tryCall": false, + "src": "2578:20:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2349:39:2" + "src": "2564:34:1" }, { "assignments": [ - 595 + 493 ], "declarations": [ { "constant": false, - "id": 595, + "id": 493, "mutability": "mutable", "name": "timestamp", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2446:16:2", + "scope": 701, + "src": "2643:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13042,10 +14692,10 @@ "typeString": "uint32" }, "typeName": { - "id": 594, + "id": 492, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2446:6:2", + "src": "2643:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13055,50 +14705,45 @@ "visibility": "internal" } ], - "id": 600, + "id": 498, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "3537", - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2478:2:2", - "subdenomination": null, + "id": 496, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "2675:6:1", "typeDescriptions": { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" - }, - "value": "57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 596, + "id": 494, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2465:3:2", + "referencedDeclaration": 451, + "src": "2662:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 597, + "id": 495, "isConstant": false, "isLValue": false, "isPure": false, @@ -13106,13 +14751,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2465:12:2", + "src": "2662:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint32)" } }, - "id": 599, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -13120,7 +14765,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2465:16:2", + "src": "2662:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -13128,7 +14773,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2446:35:2" + "src": "2643:39:1" }, { "expression": { @@ -13140,7 +14785,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 607, + "id": 505, "isConstant": false, "isLValue": false, "isPure": false, @@ -13151,19 +14796,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 604, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 602, + "id": 500, "name": "timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 595, - "src": "2546:9:2", + "referencedDeclaration": 493, + "src": "2747:9:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13173,18 +14818,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 603, + "id": 501, "name": "vaa_expiry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "2558:10:2", + "referencedDeclaration": 397, + "src": "2759:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "2546:22:2", + "src": "2747:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13196,18 +14841,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 605, + "id": 503, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2571:5:2", + "src": "2772:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 606, + "id": 504, "isConstant": false, "isLValue": false, "isPure": false, @@ -13215,13 +14860,13 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2571:15:2", + "src": "2772:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2546:40:2", + "src": "2747:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13230,14 +14875,14 @@ { "argumentTypes": null, "hexValue": "564141206861732065787069726564", - "id": 608, + "id": 506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2588:17:2", + "src": "2789:17:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_716b6a367d262f21a121968c96e61557fe9c6281596966426b955d4c8c65cb86", @@ -13257,7 +14902,7 @@ "typeString": "literal_string \"VAA has expired\"" } ], - "id": 601, + "id": 499, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13265,13 +14910,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2538:7:2", + "src": "2739:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 609, + "id": 507, "isConstant": false, "isLValue": false, "isPure": false, @@ -13279,31 +14924,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2538:68:2", + "src": "2739:68:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 610, + "id": 508, "nodeType": "ExpressionStatement", - "src": "2538:68:2" + "src": "2739:68:1" }, { "assignments": [ - 612 + 510 ], "declarations": [ { "constant": false, - "id": 612, + "id": 510, "mutability": "mutable", "name": "hash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2642:12:2", + "scope": 701, + "src": "2843:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13311,10 +14956,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 611, + "id": 509, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2642:7:2", + "src": "2843:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13324,7 +14969,7 @@ "visibility": "internal" } ], - "id": 623, + "id": 521, "initialValue": { "argumentTypes": null, "arguments": [ @@ -13333,21 +14978,16 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "3537", - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2677:2:2", - "subdenomination": null, + "id": 514, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "2878:6:1", "typeDescriptions": { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" - }, - "value": "57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { "argumentTypes": null, @@ -13355,7 +14995,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 620, + "id": 518, "isConstant": false, "isLValue": false, "isPure": false, @@ -13364,18 +15004,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 617, + "id": 515, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2681:3:2", + "referencedDeclaration": 451, + "src": "2886:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 618, + "id": 516, "isConstant": false, "isLValue": false, "isPure": false, @@ -13383,7 +15023,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2681:10:2", + "src": "2886:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13393,23 +15033,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "hexValue": "3537", - "id": 619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2694:2:2", - "subdenomination": null, + "id": 517, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "2899:6:1", "typeDescriptions": { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" - }, - "value": "57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "2681:15:2", + "src": "2886:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13419,8 +15054,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_57_by_1", - "typeString": "int_const 57" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { "typeIdentifier": "t_uint256", @@ -13429,18 +15064,18 @@ ], "expression": { "argumentTypes": null, - "id": 614, + "id": 512, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "2667:3:2", + "referencedDeclaration": 451, + "src": "2868:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 615, + "id": 513, "isConstant": false, "isLValue": false, "isPure": false, @@ -13448,13 +15083,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "2667:9:2", + "src": "2868:9:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" } }, - "id": 621, + "id": 519, "isConstant": false, "isLValue": false, "isPure": false, @@ -13462,7 +15097,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2667:30:2", + "src": "2868:38:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -13477,18 +15112,18 @@ "typeString": "bytes memory" } ], - "id": 613, + "id": 511, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "2657:9:2", + "src": "2858:9:1", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 622, + "id": 520, "isConstant": false, "isLValue": false, "isPure": false, @@ -13496,7 +15131,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2657:41:2", + "src": "2858:49:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -13504,7 +15139,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2642:56:2" + "src": "2843:64:1" }, { "expression": { @@ -13512,7 +15147,7 @@ "arguments": [ { "argumentTypes": null, - "id": 628, + "id": 526, "isConstant": false, "isLValue": false, "isPure": false, @@ -13520,31 +15155,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2716:19:2", + "src": "2925:19:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 625, + "id": 523, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "2717:12:2", + "referencedDeclaration": 401, + "src": "2926:12:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 627, + "id": 525, "indexExpression": { "argumentTypes": null, - "id": 626, + "id": 524, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "2730:4:2", + "referencedDeclaration": 510, + "src": "2939:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13555,7 +15190,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2717:18:2", + "src": "2926:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13569,14 +15204,14 @@ { "argumentTypes": null, "hexValue": "5641412077617320616c7265616479206578656375746564", - "id": 629, + "id": 527, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2737:26:2", + "src": "2946:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028", @@ -13596,7 +15231,7 @@ "typeString": "literal_string \"VAA was already executed\"" } ], - "id": 624, + "id": 522, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13604,13 +15239,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2708:7:2", + "src": "2917:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 630, + "id": 528, "isConstant": false, "isLValue": false, "isPure": false, @@ -13618,46 +15253,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2708:56:2", + "src": "2917:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 631, + "id": 529, "nodeType": "ExpressionStatement", - "src": "2708:56:2" + "src": "2917:56:1" }, { "assignments": [ - 633 + 531 ], "declarations": [ { "constant": false, - "id": 633, + "id": 531, "mutability": "mutable", "name": "guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "2775:31:2", + "scope": 701, + "src": "2984:31:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 632, + "id": 530, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "2775:11:2", + "referencedDeclaration": 367, + "src": "2984:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -13665,31 +15300,31 @@ "visibility": "internal" } ], - "id": 637, + "id": 535, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 634, + "id": 532, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "2809:13:2", + "referencedDeclaration": 393, + "src": "3018:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$486_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 636, + "id": 534, "indexExpression": { "argumentTypes": null, - "id": 635, + "id": 533, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "2823:22:2", + "referencedDeclaration": 471, + "src": "3032:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13700,14 +15335,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2809:37:2", + "src": "3018:37:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2775:71:2" + "src": "2984:71:1" }, { "expression": { @@ -13719,7 +15354,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 648, + "id": 546, "isConstant": false, "isLValue": false, "isPure": false, @@ -13730,7 +15365,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 642, + "id": 540, "isConstant": false, "isLValue": false, "isPure": false, @@ -13739,26 +15374,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 639, + "id": 537, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 633, - "src": "2864:12:2", + "referencedDeclaration": 531, + "src": "3073:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 640, + "id": 538, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 485, - "src": "2864:28:2", + "referencedDeclaration": 366, + "src": "3073:28:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13769,14 +15404,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 641, + "id": 539, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2896:1:2", + "src": "3105:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13784,7 +15419,7 @@ }, "value": "0" }, - "src": "2864:33:2", + "src": "3073:33:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13798,7 +15433,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 647, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -13807,26 +15442,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 643, + "id": 541, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 633, - "src": "2901:12:2", + "referencedDeclaration": 531, + "src": "3110:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 644, + "id": 542, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 485, - "src": "2901:28:2", + "referencedDeclaration": 366, + "src": "3110:28:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13838,18 +15473,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 645, + "id": 543, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "2932:5:2", + "src": "3141:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 646, + "id": 544, "isConstant": false, "isLValue": false, "isPure": false, @@ -13857,19 +15492,19 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2932:15:2", + "src": "3141:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2901:46:2", + "src": "3110:46:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2864:83:2", + "src": "3073:83:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13878,14 +15513,14 @@ { "argumentTypes": null, "hexValue": "677561726469616e20736574206861732065787069726564", - "id": 649, + "id": 547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2949:26:2", + "src": "3158:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1", @@ -13905,7 +15540,7 @@ "typeString": "literal_string \"guardian set has expired\"" } ], - "id": 638, + "id": 536, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -13913,13 +15548,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2856:7:2", + "src": "3065:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 650, + "id": 548, "isConstant": false, "isLValue": false, "isPure": false, @@ -13927,16 +15562,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2856:120:2", + "src": "3065:120:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 651, + "id": 549, "nodeType": "ExpressionStatement", - "src": "2856:120:2" + "src": "3065:120:1" }, { "expression": { @@ -13944,213 +15579,187 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 655, - "name": "guardian_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 633, - "src": "3048:12:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - }, - "id": 656, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "x", - "nodeType": "MemberAccess", - "referencedDeclaration": 481, - "src": "3048:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 657, - "name": "guardian_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 633, - "src": "3080:12:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - }, - "id": 658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parity", - "nodeType": "MemberAccess", - "referencedDeclaration": 483, - "src": "3080:19:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 659, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 581, - "src": "3117:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 662, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "3152:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3144:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 660, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3144:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3144:13:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 664, - "name": "sig_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "3175:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 653, - "name": "Schnorr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "3007:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Schnorr_$453_$", - "typeString": "type(library Schnorr)" - } - }, - "id": 654, + "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "verifySignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 452, - "src": "3007:23:2", + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 551, + "name": "guardian_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "3203:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet memory" + } + }, + "id": 552, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "keys", + "nodeType": "MemberAccess", + "referencedDeclaration": 364, + "src": "3203:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3203:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3230:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "3203:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3234:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "3203:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3203:36:1", "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)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3007:193:2", - "tryCall": false, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 560, + "name": "len_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "3243:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3203:51:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14158,21 +15767,21 @@ }, { "argumentTypes": null, - "hexValue": "564141207369676e617475726520696e76616c6964", - "id": 666, + "hexValue": "6e6f2071756f72756d", + "id": 562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3214:23:2", + "src": "3256:11:1", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", - "typeString": "literal_string \"VAA signature invalid\"" + "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb", + "typeString": "literal_string \"no quorum\"" }, - "value": "VAA signature invalid" + "value": "no quorum" } ], "expression": { @@ -14182,11 +15791,11 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", - "typeString": "literal_string \"VAA signature invalid\"" + "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb", + "typeString": "literal_string \"no quorum\"" } ], - "id": 652, + "id": 550, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14194,13 +15803,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2986:7:2", + "src": "3195:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 667, + "id": 563, "isConstant": false, "isLValue": false, "isPure": false, @@ -14208,31 +15817,1184 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2986:252:2", + "src": "3195:73:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 668, + "id": 564, "nodeType": "ExpressionStatement", - "src": "2986:252:2" + "src": "3195:73:1" + }, + { + "body": { + "id": 638, + "nodeType": "Block", + "src": "3318:334:1", + "statements": [ + { + "assignments": [ + 576 + ], + "declarations": [ + { + "constant": false, + "id": 576, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 638, + "src": "3332:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 575, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3332:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 585, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "36", + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3358:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 580, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3362:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3366:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "src": "3362:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3358:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 577, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3346:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toUint8", + "nodeType": "MemberAccess", + "referencedDeclaration": 109, + "src": "3346:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (uint8)" + } + }, + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3346:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3332:37:1" + }, + { + "assignments": [ + 587 + ], + "declarations": [ + { + "constant": false, + "id": 587, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 638, + "src": "3383:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 586, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3383:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 596, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "37", + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3409:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 591, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3413:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3417:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "src": "3413:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 588, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3395:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toBytes32", + "nodeType": "MemberAccess", + "referencedDeclaration": 298, + "src": "3395:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3395:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3383:37:1" + }, + { + "assignments": [ + 598 + ], + "declarations": [ + { + "constant": false, + "id": 598, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 638, + "src": "3434:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 597, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 607, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3339", + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3460:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_39_by_1", + "typeString": "int_const 39" + }, + "value": "39" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 602, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3465:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3469:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "src": "3465:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3460:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 599, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3446:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toBytes32", + "nodeType": "MemberAccess", + "referencedDeclaration": 298, + "src": "3446:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3446:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3434:38:1" + }, + { + "assignments": [ + 609 + ], + "declarations": [ + { + "constant": false, + "id": 609, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 638, + "src": "3486:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 608, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3486:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3731", + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3508:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_71_by_1", + "typeString": "int_const 71" + }, + "value": "71" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 613, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3513:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3636", + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3517:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_66_by_1", + "typeString": "int_const 66" + }, + "value": "66" + }, + "src": "3513:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3508:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 610, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3496:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toUint8", + "nodeType": "MemberAccess", + "referencedDeclaration": 109, + "src": "3496:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (uint8)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3496:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3486:34:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 619, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "3534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3237", + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3539:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "3534:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 622, + "nodeType": "ExpressionStatement", + "src": "3534:7:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 625, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "3573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 626, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 609, + "src": "3579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 627, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "3582:1:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 628, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "3585:1:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 624, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "3563:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3563:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 630, + "name": "guardian_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "3591:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet memory" + } + }, + "id": 631, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "keys", + "nodeType": "MemberAccess", + "referencedDeclaration": 364, + "src": "3591:17:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 633, + "indexExpression": { + "argumentTypes": null, + "id": 632, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 576, + "src": "3609:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3591:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3563:52:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "564141207369676e617475726520696e76616c6964", + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3617:23:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", + "typeString": "literal_string \"VAA signature invalid\"" + }, + "value": "VAA signature invalid" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", + "typeString": "literal_string \"VAA signature invalid\"" + } + ], + "id": 623, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3555:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3555:86:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 637, + "nodeType": "ExpressionStatement", + "src": "3555:86:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 569, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3296:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 570, + "name": "len_signers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "3300:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3296:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 639, + "initializationExpression": { + "assignments": [ + 566 + ], + "declarations": [ + { + "constant": false, + "id": 566, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 639, + "src": "3284:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 565, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3284:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 568, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3293:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3284:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3313:3:1", + "subExpression": { + "argumentTypes": null, + "id": 572, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 566, + "src": "3313:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 574, + "nodeType": "ExpressionStatement", + "src": "3313:3:1" + }, + "nodeType": "ForStatement", + "src": "3279:373:1" }, { "assignments": [ - 670 + 641 ], "declarations": [ { "constant": false, - "id": 670, + "id": 641, "mutability": "mutable", "name": "action", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "3249:12:2", + "scope": 701, + "src": "3662:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14240,10 +17002,10 @@ "typeString": "uint8" }, "typeName": { - "id": 669, + "id": 640, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3249:5:2", + "src": "3662:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14253,50 +17015,82 @@ "visibility": "internal" } ], - "id": 675, + "id": 648, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "3631", - "id": 673, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 646, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "3276:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_61_by_1", - "typeString": "int_const 61" + "leftExpression": { + "argumentTypes": null, + "id": 644, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "3689:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "61" + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 645, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3698:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "3689:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_61_by_1", - "typeString": "int_const 61" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 671, + "id": 642, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "3264:3:2", + "referencedDeclaration": 451, + "src": "3677:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 672, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -14304,13 +17098,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3264:11:2", + "src": "3677:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 674, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, @@ -14318,7 +17112,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3264:15:2", + "src": "3677:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -14326,131 +17120,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3249:30:2" + "src": "3662:38:1" }, { "assignments": [ - 677 + 650 ], "declarations": [ { "constant": false, - "id": 677, - "mutability": "mutable", - "name": "payload_len", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 727, - "src": "3289:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 676, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3289:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 682, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3632", - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3321:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_62_by_1", - "typeString": "int_const 62" - }, - "value": "62" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_62_by_1", - "typeString": "int_const 62" - } - ], - "expression": { - "argumentTypes": null, - "id": 678, - "name": "vaa", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "3309:3:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toUint8", - "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "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": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3309:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3289:35:2" - }, - { - "assignments": [ - 684 - ], - "declarations": [ - { - "constant": false, - "id": 684, + "id": 650, "mutability": "mutable", "name": "payload", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 727, - "src": "3334:20:2", + "scope": 701, + "src": "3710:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14458,10 +17143,10 @@ "typeString": "bytes" }, "typeName": { - "id": 683, + "id": 649, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3334:5:2", + "src": "3710:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -14471,67 +17156,201 @@ "visibility": "internal" } ], - "id": 690, + "id": 664, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "3633", - "id": 687, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 655, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "3367:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_63_by_1", - "typeString": "int_const 63" + "leftExpression": { + "argumentTypes": null, + "id": 653, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "3743:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "63" + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3752:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "3743:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, { "argumentTypes": null, - "id": 688, - "name": "payload_len", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3371:11:2", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 656, + "name": "vaa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 451, + "src": "3755:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3755:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 658, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "3769:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3778:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "3769:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 661, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3768:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3755:25:1", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_63_by_1", - "typeString": "int_const 63" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 685, + "id": 651, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "3357:3:2", + "referencedDeclaration": 451, + "src": "3733:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 686, + "id": 652, "isConstant": false, "isLValue": false, "isPure": false, @@ -14539,13 +17358,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "3357:9:2", + "src": "3733:9:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" } }, - "id": 689, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -14553,7 +17372,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3357:26:2", + "src": "3733:48:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -14561,7 +17380,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3334:49:2" + "src": "3710:71:1" }, { "condition": { @@ -14570,19 +17389,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 693, + "id": 667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 691, + "id": 665, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "3421:6:2", + "referencedDeclaration": 641, + "src": "3819:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14593,14 +17412,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783031", - "id": 692, + "id": 666, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3431:4:2", + "src": "3829:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14608,7 +17427,7 @@ }, "value": "0x01" }, - "src": "3421:14:2", + "src": "3819:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14621,19 +17440,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 708, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 706, + "id": 680, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 670, - "src": "3629:6:2", + "referencedDeclaration": 641, + "src": "4027:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14644,14 +17463,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783130", - "id": 707, + "id": 681, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3639:4:2", + "src": "4037:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", @@ -14659,16 +17478,16 @@ }, "value": "0x10" }, - "src": "3629:14:2", + "src": "4027:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 718, + "id": 692, "nodeType": "Block", - "src": "3696:53:2", + "src": "4094:53:1", "statements": [ { "expression": { @@ -14677,14 +17496,14 @@ { "argumentTypes": null, "hexValue": "696e76616c69642056414120616374696f6e", - "id": 715, + "id": 689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3717:20:2", + "src": "4115:20:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66", @@ -14700,7 +17519,7 @@ "typeString": "literal_string \"invalid VAA action\"" } ], - "id": 714, + "id": 688, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14708,13 +17527,13 @@ -19 ], "referencedDeclaration": -19, - "src": "3710:6:2", + "src": "4108:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 716, + "id": 690, "isConstant": false, "isLValue": false, "isPure": false, @@ -14722,26 +17541,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3710:28:2", + "src": "4108:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 717, + "id": 691, "nodeType": "ExpressionStatement", - "src": "3710:28:2" + "src": "4108:28:1" } ] }, - "id": 719, + "id": 693, "nodeType": "IfStatement", - "src": "3625:124:2", + "src": "4023:124:1", "trueBody": { - "id": 713, + "id": 687, "nodeType": "Block", - "src": "3645:45:2", + "src": "4043:45:1", "statements": [ { "expression": { @@ -14749,12 +17568,12 @@ "arguments": [ { "argumentTypes": null, - "id": 710, + "id": 684, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "3671:7:2", + "referencedDeclaration": 650, + "src": "4069:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -14768,18 +17587,18 @@ "typeString": "bytes memory" } ], - "id": 709, + "id": 683, "name": "vaaTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 949, - "src": "3659:11:2", + "referencedDeclaration": 928, + "src": "4057:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 711, + "id": 685, "isConstant": false, "isLValue": false, "isPure": false, @@ -14787,27 +17606,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3659:20:2", + "src": "4057:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 712, + "id": 686, "nodeType": "ExpressionStatement", - "src": "3659:20:2" + "src": "4057:20:1" } ] } }, - "id": 720, + "id": 694, "nodeType": "IfStatement", - "src": "3417:332:2", + "src": "3815:332:1", "trueBody": { - "id": 705, + "id": 679, "nodeType": "Block", - "src": "3437:182:2", + "src": "3835:182:1", "statements": [ { "expression": { @@ -14819,19 +17638,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 697, + "id": 671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 695, + "id": 669, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "3459:22:2", + "referencedDeclaration": 471, + "src": "3857:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14841,18 +17660,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 696, + "id": 670, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "3485:18:2", + "referencedDeclaration": 395, + "src": "3883:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "3459:44:2", + "src": "3857:44:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14861,14 +17680,14 @@ { "argumentTypes": null, "hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574", - "id": 698, + "id": 672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3505:59:2", + "src": "3903:59:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a", @@ -14888,7 +17707,7 @@ "typeString": "literal_string \"only the current guardian set can change the guardian set\"" } ], - "id": 694, + "id": 668, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14896,13 +17715,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3451:7:2", + "src": "3849:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 699, + "id": 673, "isConstant": false, "isLValue": false, "isPure": false, @@ -14910,16 +17729,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3451:114:2", + "src": "3849:114:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 700, + "id": 674, "nodeType": "ExpressionStatement", - "src": "3451:114:2" + "src": "3849:114:1" }, { "expression": { @@ -14927,12 +17746,12 @@ "arguments": [ { "argumentTypes": null, - "id": 702, + "id": 676, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "3600:7:2", + "referencedDeclaration": 650, + "src": "3998:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -14946,18 +17765,18 @@ "typeString": "bytes memory" } ], - "id": 701, + "id": 675, "name": "vaaUpdateGuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "3579:20:2", + "referencedDeclaration": 801, + "src": "3977:20:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 703, + "id": 677, "isConstant": false, "isLValue": false, "isPure": false, @@ -14965,16 +17784,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3579:29:2", + "src": "3977:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 704, + "id": 678, "nodeType": "ExpressionStatement", - "src": "3579:29:2" + "src": "3977:29:1" } ] } @@ -14982,7 +17801,7 @@ { "expression": { "argumentTypes": null, - "id": 725, + "id": 699, "isConstant": false, "isLValue": false, "isPure": false, @@ -14991,26 +17810,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 721, + "id": 695, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "3794:12:2", + "referencedDeclaration": 401, + "src": "4192:12:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 723, + "id": 697, "indexExpression": { "argumentTypes": null, - "id": 722, + "id": 696, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 612, - "src": "3807:4:2", + "referencedDeclaration": 510, + "src": "4205:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15021,7 +17840,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3794:18:2", + "src": "4192:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15032,14 +17851,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 724, + "id": 698, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3815:4:2", + "src": "4213:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -15047,40 +17866,60 @@ }, "value": "true" }, - "src": "3794:25:2", + "src": "4192:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 726, + "id": 700, "nodeType": "ExpressionStatement", - "src": "3794:25:2" + "src": "4192:25:1" } ] }, "documentation": null, "functionSelector": "3bc0aee6", - "id": 728, + "id": 702, "implemented": true, "kind": "function", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 454, + "modifierName": { + "argumentTypes": null, + "id": 453, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2478, + "src": "2291:12:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2291:12:1" + } + ], "name": "submitVAA", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 557, + "id": 452, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 556, + "id": 451, "mutability": "mutable", "name": "vaa", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 728, - "src": "2057:18:2", + "scope": 702, + "src": "2259:18:1", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -15088,10 +17927,10 @@ "typeString": "bytes" }, "typeName": { - "id": 555, + "id": 450, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2057:5:2", + "src": "2259:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -15101,75 +17940,75 @@ "visibility": "internal" } ], - "src": "2047:34:2" + "src": "2249:34:1" }, "returnParameters": { - "id": 558, + "id": 455, "nodeType": "ParameterList", "parameters": [], - "src": "2089:0:2" + "src": "2304:0:1" }, - "scope": 1181, - "src": "2029:1797:2", + "scope": 1170, + "src": "2231:1993:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 821, + "id": 800, "nodeType": "Block", - "src": "3889:873:2", + "src": "4287:744:1", "statements": [ { "assignments": [ - 734 + 708 ], "declarations": [ { "constant": false, - "id": 734, + "id": 708, "mutability": "mutable", - "name": "new_key_x", + "name": "new_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 821, - "src": "3899:17:2", + "scope": 800, + "src": "4297:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "id": 733, - "name": "uint256", + "id": 707, + "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3899:7:2", + "src": "4297:6:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, "visibility": "internal" } ], - "id": 739, + "id": 713, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 737, + "id": 711, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3934:1:2", + "src": "4343:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15187,236 +18026,18 @@ ], "expression": { "argumentTypes": null, - "id": 735, + "id": 709, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "3919:4:2", + "referencedDeclaration": 704, + "src": "4329:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toUint256", - "nodeType": "MemberAccess", - "referencedDeclaration": 271, - "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": 738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3919:17:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3899:37:2" - }, - { - "assignments": [ - 741 - ], - "declarations": [ - { - "constant": false, - "id": 741, - "mutability": "mutable", - "name": "y_parity", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 821, - "src": "3946:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3946:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 746, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3332", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3978:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - } - ], - "expression": { - "argumentTypes": null, - "id": 742, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "3965:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "toUint8", - "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "src": "3965: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": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3965:16:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3946:35:2" - }, - { - "assignments": [ - 748 - ], - "declarations": [ - { - "constant": false, - "id": 748, - "mutability": "mutable", - "name": "new_guardian_set_index", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 821, - "src": "3991:29:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 747, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3991:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 753, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3333", - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4037:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33_by_1", - "typeString": "int_const 33" - }, - "value": "33" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_33_by_1", - "typeString": "int_const 33" - } - ], - "expression": { - "argumentTypes": null, - "id": 749, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "4023:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 750, + "id": 710, "isConstant": false, "isLValue": false, "isPure": false, @@ -15424,13 +18045,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "4023:13:2", + "src": "4329:13:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint32)" } }, - "id": 752, + "id": 712, "isConstant": false, "isLValue": false, "isPure": false, @@ -15438,7 +18059,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4023:17:2", + "src": "4329:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -15446,1073 +18067,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3991:49:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 755, - "name": "new_guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 748, - "src": "4059:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 756, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "4084:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4059:43:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e646578206f66206e657720677561726469616e20736574206d757374206265203e2063757272656e74", - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4104:45:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_906a0f9350878de65dacfb23a6e8e903db110639fb839bf569ced494236848c8", - "typeString": "literal_string \"index of new guardian set must be > current\"" - }, - "value": "index of new guardian set must be > current" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_906a0f9350878de65dacfb23a6e8e903db110639fb839bf569ced494236848c8", - "typeString": "literal_string \"index of new guardian set must be > current\"" - } - ], - "id": 754, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4051:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4051:99:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 760, - "nodeType": "ExpressionStatement", - "src": "4051:99:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 762, - "name": "new_key_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "4168:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 763, - "name": "Schnorr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "4180:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Schnorr_$453_$", - "typeString": "type(library Schnorr)" - } - }, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "HALF_Q", - "nodeType": "MemberAccess", - "referencedDeclaration": 346, - "src": "4180:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4168:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206b657920666f722066617374205363686e6f727220766572696669636174696f6e", - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4196:43:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ad2abc16dac8cf88f3decb4180ebbab2f7006b83967f36fdb68b8d2df95c5160", - "typeString": "literal_string \"invalid key for fast Schnorr verification\"" - }, - "value": "invalid key for fast Schnorr verification" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ad2abc16dac8cf88f3decb4180ebbab2f7006b83967f36fdb68b8d2df95c5160", - "typeString": "literal_string \"invalid key for fast Schnorr verification\"" - } - ], - "id": 761, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4160:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4160:80:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 768, - "nodeType": "ExpressionStatement", - "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" + "src": "4297:48:1" }, { "assignments": [ - 777 + 715 ], "declarations": [ { "constant": false, - "id": 777, + "id": 715, "mutability": "mutable", - "name": "old_guardian_set_index", + "name": "len", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 821, - "src": "4303:29:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 776, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4303:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 779, - "initialValue": { - "argumentTypes": null, - "id": 778, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "4335:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4303:50:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 780, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "4363:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 781, - "name": "new_guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 748, - "src": "4384:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4363:43:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "4363:43:2" - }, - { - "assignments": [ - 785 - ], - "declarations": [ - { - "constant": false, - "id": 785, - "mutability": "mutable", - "name": "new_guardian_set", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 821, - "src": "4417:35:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet" - }, - "typeName": { - "contractScope": null, - "id": 784, - "name": "GuardianSet", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 486, - "src": "4417:11:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage_ptr", - "typeString": "struct Wormhole.GuardianSet" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 794, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 787, - "name": "new_key_x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "4467:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 790, - "name": "y_parity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "4484:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4478:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 788, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4478:5:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4478:15:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4495:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 786, - "name": "GuardianSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "4455:11:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_GuardianSet_$486_storage_ptr_$", - "typeString": "type(struct Wormhole.GuardianSet storage pointer)" - } - }, - "id": 793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4455:42:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4417:80:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 795, - "name": "guardian_sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "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": 797, - "indexExpression": { - "argumentTypes": null, - "id": 796, - "name": "guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "4521:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4507:33:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 798, - "name": "new_guardian_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "4543:16:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - }, - "src": "4507:52:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - } - }, - "id": 800, - "nodeType": "ExpressionStatement", - "src": "4507:52:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 801, - "name": "guardian_sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "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": 803, - "indexExpression": { - "argumentTypes": null, - "id": 802, - "name": "old_guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 777, - "src": "4583:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4569:37:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - } - }, - "id": 804, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "expiration_time", - "nodeType": "MemberAccess", - "referencedDeclaration": 485, - "src": "4569:53:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 807, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "4632:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4632:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4625:6:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 805, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4625:6:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4625:23:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 810, - "name": "vaa_expiry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "4651:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4625:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4569:92:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 813, - "nodeType": "ExpressionStatement", - "src": "4569:92:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 815, - "name": "guardian_sets", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "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": 817, - "indexExpression": { - "argumentTypes": null, - "id": 816, - "name": "old_guardian_set_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 777, - "src": "4713:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4699:37:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - } - }, - { - "argumentTypes": null, - "id": 818, - "name": "new_guardian_set", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "4738:16:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_GuardianSet_$486_storage", - "typeString": "struct Wormhole.GuardianSet storage ref" - }, - { - "typeIdentifier": "t_struct$_GuardianSet_$486_memory_ptr", - "typeString": "struct Wormhole.GuardianSet memory" - } - ], - "id": 814, - "name": "LogGuardianSetChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 492, - "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": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4677:78:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 820, - "nodeType": "EmitStatement", - "src": "4672:83:2" - } - ] - }, - "documentation": null, - "id": 822, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "vaaUpdateGuardianSet", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 822, - "src": "3862:17:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 729, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3862:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3861:19:2" - }, - "returnParameters": { - "id": 732, - "nodeType": "ParameterList", - "parameters": [], - "src": "3889:0:2" - }, - "scope": 1181, - "src": "3832:930:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 948, - "nodeType": "Block", - "src": "4816:1325:2", - "statements": [ - { - "assignments": [ - 828 - ], - "declarations": [ - { - "constant": false, - "id": 828, - "mutability": "mutable", - "name": "source_chain", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 948, - "src": "4869:18:2", + "scope": 800, + "src": "4355:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16520,10 +18090,10 @@ "typeString": "uint8" }, "typeName": { - "id": 827, + "id": 714, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4869:5:2", + "src": "4355:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16533,21 +18103,21 @@ "visibility": "internal" } ], - "id": 833, + "id": 720, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 831, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4903:1:2", + "src": "4380:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -16565,18 +18135,18 @@ ], "expression": { "argumentTypes": null, - "id": 829, + "id": 716, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "4890:4:2", + "referencedDeclaration": 704, + "src": "4367:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 830, + "id": 717, "isConstant": false, "isLValue": false, "isPure": false, @@ -16584,13 +18154,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4890:12:2", + "src": "4367:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 832, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, @@ -16598,7 +18168,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4890:15:2", + "src": "4367:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -16606,22 +18176,1143 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4869:36:2" + "src": "4355:27:1" }, { "assignments": [ - 835 + 725 ], "declarations": [ { "constant": false, - "id": 835, + "id": 725, "mutability": "mutable", - "name": "target_chain", + "name": "new_guardians", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 948, - "src": "4916:18:2", + "scope": 800, + "src": "4393:30:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4393:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 724, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4393:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 731, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 729, + "name": "len", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 715, + "src": "4440:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4426:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (address[] memory)" + }, + "typeName": { + "baseType": { + "id": 726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4430:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 727, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4430:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4426:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4393:51:1" + }, + { + "body": { + "id": 759, + "nodeType": "Block", + "src": "4485:103:1", + "statements": [ + { + "assignments": [ + 743 + ], + "declarations": [ + { + "constant": false, + "id": 743, + "mutability": "mutable", + "name": "addr", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 759, + "src": "4499:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4499:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 752, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4529:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 747, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "4533:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4537:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "4533:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 744, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 704, + "src": "4514:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 82, + "src": "4514:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (address)" + } + }, + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4514:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4499:41:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 753, + "name": "new_guardians", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 725, + "src": "4554:13:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 755, + "indexExpression": { + "argumentTypes": null, + "id": 754, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "4568:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4554:16:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 756, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 743, + "src": "4573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4554:23:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 758, + "nodeType": "ExpressionStatement", + "src": "4554:23:1" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 736, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "4471:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 737, + "name": "len", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 715, + "src": "4475:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 760, + "initializationExpression": { + "assignments": [ + 733 + ], + "declarations": [ + { + "constant": false, + "id": 733, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 760, + "src": "4459:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 732, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4459:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 735, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4468:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4459:10:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4480:3:1", + "subExpression": { + "argumentTypes": null, + "id": 739, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "4480:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 741, + "nodeType": "ExpressionStatement", + "src": "4480:3:1" + }, + "nodeType": "ForStatement", + "src": "4454:134:1" + }, + { + "assignments": [ + 762 + ], + "declarations": [ + { + "constant": false, + "id": 762, + "mutability": "mutable", + "name": "old_guardian_set_index", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 800, + "src": "4598:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 761, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4598:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 764, + "initialValue": { + "argumentTypes": null, + "id": 763, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 395, + "src": "4630:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4598:50:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 765, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 395, + "src": "4658:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 766, + "name": "new_guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "4679:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4658:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 768, + "nodeType": "ExpressionStatement", + "src": "4658:43:1" + }, + { + "assignments": [ + 770 + ], + "declarations": [ + { + "constant": false, + "id": 770, + "mutability": "mutable", + "name": "new_guardian_set", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 800, + "src": "4712:35:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet" + }, + "typeName": { + "contractScope": null, + "id": 769, + "name": "GuardianSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 367, + "src": "4712:11:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr", + "typeString": "struct Wormhole.GuardianSet" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 775, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 772, + "name": "new_guardians", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 725, + "src": "4762:13:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4777:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 771, + "name": "GuardianSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 367, + "src": "4750:11:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_GuardianSet_$367_storage_ptr_$", + "typeString": "type(struct Wormhole.GuardianSet storage pointer)" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4750:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4712:67:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 776, + "name": "guardian_sets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 393, + "src": "4789:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", + "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" + } + }, + "id": 778, + "indexExpression": { + "argumentTypes": null, + "id": 777, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 395, + "src": "4803:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4789:33:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", + "typeString": "struct Wormhole.GuardianSet storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 779, + "name": "new_guardian_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 770, + "src": "4825:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr", + "typeString": "struct Wormhole.GuardianSet memory" + } + }, + "src": "4789:52:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", + "typeString": "struct Wormhole.GuardianSet storage ref" + } + }, + "id": 781, + "nodeType": "ExpressionStatement", + "src": "4789:52:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 782, + "name": "guardian_sets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 393, + "src": "4851:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$", + "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" + } + }, + "id": 784, + "indexExpression": { + "argumentTypes": null, + "id": 783, + "name": "old_guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 762, + "src": "4865:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4851:37:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GuardianSet_$367_storage", + "typeString": "struct Wormhole.GuardianSet storage ref" + } + }, + "id": 785, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "expiration_time", + "nodeType": "MemberAccess", + "referencedDeclaration": 366, + "src": "4851:53:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 788, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4914:5:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4914:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4907:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 786, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4907:6:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4907:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 791, + "name": "vaa_expiry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 397, + "src": "4933:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4907:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4851:92:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 794, + "nodeType": "ExpressionStatement", + "src": "4851:92:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 796, + "name": "old_guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 762, + "src": "4981:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 797, + "name": "guardian_set_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 395, + "src": "5005:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 795, + "name": "LogGuardianSetChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "4959:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$", + "typeString": "function (uint32,uint32)" + } + }, + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4959:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 799, + "nodeType": "EmitStatement", + "src": "4954:70:1" + } + ] + }, + "documentation": null, + "id": 801, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "vaaUpdateGuardianSet", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 704, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 801, + "src": "4260:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 703, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4260:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4259:19:1" + }, + "returnParameters": { + "id": 706, + "nodeType": "ParameterList", + "parameters": [], + "src": "4287:0:1" + }, + "scope": 1170, + "src": "4230:801:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 927, + "nodeType": "Block", + "src": "5085:1325:1", + "statements": [ + { + "assignments": [ + 807 + ], + "declarations": [ + { + "constant": false, + "id": 807, + "mutability": "mutable", + "name": "source_chain", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 927, + "src": "5138:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16629,10 +19320,10 @@ "typeString": "uint8" }, "typeName": { - "id": 834, + "id": 806, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4916:5:2", + "src": "5138:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16642,21 +19333,130 @@ "visibility": "internal" } ], - "id": 840, + "id": 812, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "hexValue": "35", - "id": 838, + "hexValue": "34", + "id": 810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4950:1:2", + "src": "5172:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + ], + "expression": { + "argumentTypes": null, + "id": 808, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "5159:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toUint8", + "nodeType": "MemberAccess", + "referencedDeclaration": 109, + "src": "5159:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256) pure returns (uint8)" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5159:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5138:36:1" + }, + { + "assignments": [ + 814 + ], + "declarations": [ + { + "constant": false, + "id": 814, + "mutability": "mutable", + "name": "target_chain", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 927, + "src": "5185:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 813, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5185:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 819, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5219:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -16674,18 +19474,18 @@ ], "expression": { "argumentTypes": null, - "id": 836, + "id": 815, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "4937:4:2", + "referencedDeclaration": 803, + "src": "5206:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 837, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, @@ -16693,13 +19493,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4937:12:2", + "src": "5206:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 839, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -16707,7 +19507,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4937:15:2", + "src": "5206:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -16715,22 +19515,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4916:36:2" + "src": "5185:36:1" }, { "assignments": [ - 842 + 821 ], "declarations": [ { "constant": false, - "id": 842, + "id": 821, "mutability": "mutable", "name": "target_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 948, - "src": "5071:22:2", + "scope": 927, + "src": "5340:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16738,10 +19538,10 @@ "typeString": "address" }, "typeName": { - "id": 841, + "id": 820, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5071:7:2", + "src": "5340:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16752,7 +19552,7 @@ "visibility": "internal" } ], - "id": 849, + "id": 828, "initialValue": { "argumentTypes": null, "arguments": [ @@ -16762,7 +19562,7 @@ "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" }, - "id": 847, + "id": 826, "isConstant": false, "isLValue": false, "isPure": true, @@ -16770,14 +19570,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3338", - "id": 845, + "id": 824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5111:2:2", + "src": "5380:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_38_by_1", @@ -16790,14 +19590,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 846, + "id": 825, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5116:2:2", + "src": "5385:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -16805,7 +19605,7 @@ }, "value": "12" }, - "src": "5111:7:2", + "src": "5380:7:1", "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" @@ -16821,18 +19621,18 @@ ], "expression": { "argumentTypes": null, - "id": 843, + "id": 822, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "5096:4:2", + "referencedDeclaration": 803, + "src": "5365:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 844, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, @@ -16840,13 +19640,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "5096:14:2", + "src": "5365:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (address)" } }, - "id": 848, + "id": 827, "isConstant": false, "isLValue": false, "isPure": false, @@ -16854,7 +19654,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5096:23:2", + "src": "5365:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -16862,22 +19662,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5071:48:2" + "src": "5340:48:1" }, { "assignments": [ - 851 + 830 ], "declarations": [ { "constant": false, - "id": 851, + "id": 830, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 948, - "src": "5130:17:2", + "scope": 927, + "src": "5399:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16885,10 +19685,10 @@ "typeString": "uint8" }, "typeName": { - "id": 850, + "id": 829, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5130:5:2", + "src": "5399:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16898,21 +19698,21 @@ "visibility": "internal" } ], - "id": 856, + "id": 835, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3730", - "id": 854, + "id": 833, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5163:2:2", + "src": "5432:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_70_by_1", @@ -16930,18 +19730,18 @@ ], "expression": { "argumentTypes": null, - "id": 852, + "id": 831, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "5150:4:2", + "referencedDeclaration": 803, + "src": "5419:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 853, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -16949,13 +19749,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5150:12:2", + "src": "5419:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint8)" } }, - "id": 855, + "id": 834, "isConstant": false, "isLValue": false, "isPure": false, @@ -16963,7 +19763,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5150:16:2", + "src": "5419:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -16971,22 +19771,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5130:36:2" + "src": "5399:36:1" }, { "assignments": [ - 858 + 837 ], "declarations": [ { "constant": false, - "id": 858, + "id": 837, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 948, - "src": "5230:14:2", + "scope": 927, + "src": "5499:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16994,10 +19794,10 @@ "typeString": "uint256" }, "typeName": { - "id": 857, + "id": 836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5230:7:2", + "src": "5499:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17007,21 +19807,21 @@ "visibility": "internal" } ], - "id": 863, + "id": 842, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "313033", - "id": 861, + "id": 840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5262:3:2", + "src": "5531:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_103_by_1", @@ -17039,18 +19839,18 @@ ], "expression": { "argumentTypes": null, - "id": 859, + "id": 838, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "5247:4:2", + "referencedDeclaration": 803, + "src": "5516:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 860, + "id": 839, "isConstant": false, "isLValue": false, "isPure": false, @@ -17058,13 +19858,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "5247:14:2", + "src": "5516:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (uint256)" } }, - "id": 862, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, @@ -17072,7 +19872,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5247:19:2", + "src": "5516:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -17080,7 +19880,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5230:36:2" + "src": "5499:36:1" }, { "expression": { @@ -17092,19 +19892,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 867, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 865, + "id": 844, "name": "source_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "5285:12:2", + "referencedDeclaration": 807, + "src": "5554:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17114,18 +19914,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 866, + "id": 845, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "5301:12:2", + "referencedDeclaration": 814, + "src": "5570:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5285:28:2", + "src": "5554:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17134,14 +19934,14 @@ { "argumentTypes": null, "hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564", - "id": 868, + "id": 847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5315:40:2", + "src": "5584:40:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23", @@ -17161,7 +19961,7 @@ "typeString": "literal_string \"same chain transfers are not supported\"" } ], - "id": 864, + "id": 843, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -17169,13 +19969,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5277:7:2", + "src": "5546:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 869, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, @@ -17183,16 +19983,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5277:79:2", + "src": "5546:79:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 870, + "id": 849, "nodeType": "ExpressionStatement", - "src": "5277:79:2" + "src": "5546:79:1" }, { "expression": { @@ -17204,19 +20004,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 874, + "id": 853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 872, + "id": 851, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, - "src": "5374:12:2", + "referencedDeclaration": 814, + "src": "5643:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17226,18 +20026,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 873, + "id": 852, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5390:8:2", + "referencedDeclaration": 358, + "src": "5659:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5374:24:2", + "src": "5643:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17246,14 +20046,14 @@ { "argumentTypes": null, "hexValue": "7472616e73666572206d75737420626520696e636f6d696e67", - "id": 875, + "id": 854, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5400:27:2", + "src": "5669:27:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a", @@ -17273,7 +20073,7 @@ "typeString": "literal_string \"transfer must be incoming\"" } ], - "id": 871, + "id": 850, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -17281,13 +20081,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5366:7:2", + "src": "5635:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 876, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, @@ -17295,16 +20095,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5366:62:2", + "src": "5635:62:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 877, + "id": 856, "nodeType": "ExpressionStatement", - "src": "5366:62:2" + "src": "5635:62:1" }, { "condition": { @@ -17313,19 +20113,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 880, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 878, + "id": 857, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "5443:11:2", + "referencedDeclaration": 830, + "src": "5712:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17335,42 +20135,42 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 879, + "id": 858, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "5458:8:2", + "referencedDeclaration": 358, + "src": "5727:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5443:23:2", + "src": "5712:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 946, + "id": 925, "nodeType": "Block", - "src": "5990:145:2", + "src": "6259:145:1", "statements": [ { "assignments": [ - 930 + 909 ], "declarations": [ { "constant": false, - "id": 930, + "id": 909, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 946, - "src": "6004:21:2", + "scope": 925, + "src": "6273:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17378,10 +20178,10 @@ "typeString": "address" }, "typeName": { - "id": 929, + "id": 908, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6004:7:2", + "src": "6273:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17392,7 +20192,7 @@ "visibility": "internal" } ], - "id": 937, + "id": 916, "initialValue": { "argumentTypes": null, "arguments": [ @@ -17402,7 +20202,7 @@ "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" }, - "id": 935, + "id": 914, "isConstant": false, "isLValue": false, "isPure": true, @@ -17410,14 +20210,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3731", - "id": 933, + "id": 912, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6043:2:2", + "src": "6312:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -17430,14 +20230,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 934, + "id": 913, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6048:2:2", + "src": "6317:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -17445,7 +20245,7 @@ }, "value": "12" }, - "src": "6043:7:2", + "src": "6312:7:1", "typeDescriptions": { "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" @@ -17461,18 +20261,18 @@ ], "expression": { "argumentTypes": null, - "id": 931, + "id": 910, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "6028:4:2", + "referencedDeclaration": 803, + "src": "6297:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 932, + "id": 911, "isConstant": false, "isLValue": false, "isPure": false, @@ -17480,13 +20280,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "6028:14:2", + "src": "6297:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (address)" } }, - "id": 936, + "id": 915, "isConstant": false, "isLValue": false, "isPure": false, @@ -17494,7 +20294,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6028:23:2", + "src": "6297:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -17502,7 +20302,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6004:47:2" + "src": "6273:47:1" }, { "expression": { @@ -17510,12 +20310,12 @@ "arguments": [ { "argumentTypes": null, - "id": 942, + "id": 921, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 842, - "src": "6101:14:2", + "referencedDeclaration": 821, + "src": "6370:14:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17523,12 +20323,12 @@ }, { "argumentTypes": null, - "id": 943, + "id": 922, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 858, - "src": "6117:6:2", + "referencedDeclaration": 837, + "src": "6386:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17551,12 +20351,12 @@ "arguments": [ { "argumentTypes": null, - "id": 939, + "id": 918, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "6073:13:2", + "referencedDeclaration": 909, + "src": "6342:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17570,18 +20370,18 @@ "typeString": "address" } ], - "id": 938, + "id": 917, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "6066:6:2", + "referencedDeclaration": 2022, + "src": "6335:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$", "typeString": "type(contract IERC20)" } }, - "id": 940, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, @@ -17589,28 +20389,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6066:21:2", + "src": "6335:21:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } }, - "id": 941, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2067, - "src": "6066:34:2", + "referencedDeclaration": 2056, + "src": "6335:34:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2033_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2022_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2022_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 944, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, @@ -17618,41 +20418,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6066:58:2", + "src": "6335:58:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 945, + "id": 924, "nodeType": "ExpressionStatement", - "src": "6066:58:2" + "src": "6335:58:1" } ] }, - "id": 947, + "id": 926, "nodeType": "IfStatement", - "src": "5439:696:2", + "src": "5708:696:1", "trueBody": { - "id": 928, + "id": 907, "nodeType": "Block", - "src": "5468:516:2", + "src": "5737:516:1", "statements": [ { "assignments": [ - 882 + 861 ], "declarations": [ { "constant": false, - "id": 882, + "id": 861, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 928, - "src": "5482:21:2", + "scope": 907, + "src": "5751:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17660,10 +20460,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 881, + "id": 860, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5482:7:2", + "src": "5751:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17673,21 +20473,21 @@ "visibility": "internal" } ], - "id": 887, + "id": 866, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3731", - "id": 885, + "id": 864, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5521:2:2", + "src": "5790:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -17705,18 +20505,18 @@ ], "expression": { "argumentTypes": null, - "id": 883, + "id": 862, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "5506:4:2", + "referencedDeclaration": 803, + "src": "5775:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 884, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, @@ -17724,13 +20524,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "5506:14:2", + "src": "5775:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory,uint256) pure returns (bytes32)" } }, - "id": 886, + "id": 865, "isConstant": false, "isLValue": false, "isPure": false, @@ -17738,7 +20538,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5506:18:2", + "src": "5775:18:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -17746,22 +20546,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5482:42:2" + "src": "5751:42:1" }, { "assignments": [ - 889 + 868 ], "declarations": [ { "constant": false, - "id": 889, + "id": 868, "mutability": "mutable", "name": "asset_id", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 928, - "src": "5538:16:2", + "scope": 907, + "src": "5807:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17769,10 +20569,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 888, + "id": 867, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5538:7:2", + "src": "5807:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17782,7 +20582,7 @@ "visibility": "internal" } ], - "id": 897, + "id": 876, "initialValue": { "argumentTypes": null, "arguments": [ @@ -17791,12 +20591,12 @@ "arguments": [ { "argumentTypes": null, - "id": 893, + "id": 872, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "5584:11:2", + "referencedDeclaration": 830, + "src": "5853:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17804,12 +20604,12 @@ }, { "argumentTypes": null, - "id": 894, + "id": 873, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "5597:13:2", + "referencedDeclaration": 861, + "src": "5866:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17829,18 +20629,18 @@ ], "expression": { "argumentTypes": null, - "id": 891, + "id": 870, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "5567:3:2", + "src": "5836:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 892, + "id": 871, "isConstant": false, "isLValue": false, "isPure": true, @@ -17848,13 +20648,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5567:16:2", + "src": "5836:16:1", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 895, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -17862,7 +20662,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5567:44:2", + "src": "5836:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -17877,18 +20677,18 @@ "typeString": "bytes memory" } ], - "id": 890, + "id": 869, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "5557:9:2", + "src": "5826:9:1", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 896, + "id": 875, "isConstant": false, "isLValue": false, "isPure": false, @@ -17896,7 +20696,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5557:55:2", + "src": "5826:55:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -17904,22 +20704,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5538:74:2" + "src": "5807:74:1" }, { "assignments": [ - 899 + 878 ], "declarations": [ { "constant": false, - "id": 899, + "id": 878, "mutability": "mutable", "name": "wrapped_asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 928, - "src": "5704:21:2", + "scope": 907, + "src": "5973:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17927,10 +20727,10 @@ "typeString": "address" }, "typeName": { - "id": 898, + "id": 877, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5704:7:2", + "src": "5973:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17941,31 +20741,31 @@ "visibility": "internal" } ], - "id": 903, + "id": 882, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 900, + "id": 879, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "5728:13:2", + "referencedDeclaration": 405, + "src": "5997:13:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 902, + "id": 881, "indexExpression": { "argumentTypes": null, - "id": 901, + "id": 880, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "5742:8:2", + "referencedDeclaration": 868, + "src": "6011:8:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17976,14 +20776,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5728:23:2", + "src": "5997:23:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "5704:47:2" + "src": "5973:47:1" }, { "condition": { @@ -17992,19 +20792,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 909, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 904, + "id": 883, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 899, - "src": "5769:13:2", + "referencedDeclaration": 878, + "src": "6038:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18018,14 +20818,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 907, + "id": 886, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5794:1:2", + "src": "6063:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18041,29 +20841,29 @@ "typeString": "int_const 0" } ], - "id": 906, + "id": 885, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5786:7:2", + "src": "6055:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 905, + "id": 884, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5786:7:2", + "src": "6055:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 908, + "id": 887, "isConstant": false, "isLValue": false, "isPure": true, @@ -18071,44 +20871,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5786:10:2", + "src": "6055:10:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5769:27:2", + "src": "6038:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 919, + "id": 898, "nodeType": "IfStatement", - "src": "5765:138:2", + "src": "6034:138:1", "trueBody": { - "id": 918, + "id": 897, "nodeType": "Block", - "src": "5798:105:2", + "src": "6067:105:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 916, + "id": 895, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 910, + "id": 889, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 899, - "src": "5816:13:2", + "referencedDeclaration": 878, + "src": "6085:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18121,12 +20921,12 @@ "arguments": [ { "argumentTypes": null, - "id": 912, + "id": 891, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 889, - "src": "5851:8:2", + "referencedDeclaration": 868, + "src": "6120:8:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18134,12 +20934,12 @@ }, { "argumentTypes": null, - "id": 913, + "id": 892, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "5861:11:2", + "referencedDeclaration": 830, + "src": "6130:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -18147,12 +20947,12 @@ }, { "argumentTypes": null, - "id": 914, + "id": 893, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "5874:13:2", + "referencedDeclaration": 861, + "src": "6143:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18174,18 +20974,18 @@ "typeString": "bytes32" } ], - "id": 911, + "id": 890, "name": "deployWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "5832:18:2", + "referencedDeclaration": 968, + "src": "6101:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32) returns (address)" } }, - "id": 915, + "id": 894, "isConstant": false, "isLValue": false, "isPure": false, @@ -18193,22 +20993,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5832:56:2", + "src": "6101:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5816:72:2", + "src": "6085:72:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 917, + "id": 896, "nodeType": "ExpressionStatement", - "src": "5816:72:2" + "src": "6085:72:1" } ] } @@ -18219,12 +21019,12 @@ "arguments": [ { "argumentTypes": null, - "id": 924, + "id": 903, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 842, - "src": "5950:14:2", + "referencedDeclaration": 821, + "src": "6219:14:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18232,12 +21032,12 @@ }, { "argumentTypes": null, - "id": 925, + "id": 904, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 858, - "src": "5966:6:2", + "referencedDeclaration": 837, + "src": "6235:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18260,12 +21060,12 @@ "arguments": [ { "argumentTypes": null, - "id": 921, + "id": 900, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 899, - "src": "5930:13:2", + "referencedDeclaration": 878, + "src": "6199:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18279,18 +21079,18 @@ "typeString": "address" } ], - "id": 920, + "id": 899, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "5917:12:2", + "referencedDeclaration": 1725, + "src": "6186:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 922, + "id": 901, "isConstant": false, "isLValue": false, "isPure": false, @@ -18298,28 +21098,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5917:27:2", + "src": "6186:27:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 923, + "id": 902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 1274, - "src": "5917:32:2", + "referencedDeclaration": 1263, + "src": "6186:32:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 926, + "id": 905, "isConstant": false, "isLValue": false, "isPure": false, @@ -18327,16 +21127,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5917:56:2", + "src": "6186:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 927, + "id": 906, "nodeType": "ExpressionStatement", - "src": "5917:56:2" + "src": "6186:56:1" } ] } @@ -18344,7 +21144,7 @@ ] }, "documentation": null, - "id": 949, + "id": 928, "implemented": true, "kind": "function", "modifiers": [], @@ -18352,18 +21152,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 825, + "id": 804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 824, + "id": 803, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 949, - "src": "4789:17:2", + "scope": 928, + "src": "5058:17:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -18371,10 +21171,10 @@ "typeString": "bytes" }, "typeName": { - "id": 823, + "id": 802, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4789:5:2", + "src": "5058:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -18384,40 +21184,40 @@ "visibility": "internal" } ], - "src": "4788:19:2" + "src": "5057:19:1" }, "returnParameters": { - "id": 826, + "id": 805, "nodeType": "ParameterList", "parameters": [], - "src": "4816:0:2" + "src": "5085:0:1" }, - "scope": 1181, - "src": "4768:1373:2", + "scope": 1170, + "src": "5037:1373:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 988, + "id": 967, "nodeType": "Block", - "src": "6262:791:2", + "src": "6531:791:1", "statements": [ { "assignments": [ - 961 + 940 ], "declarations": [ { "constant": false, - "id": 961, + "id": 940, "mutability": "mutable", "name": "targetBytes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 988, - "src": "6440:19:2", + "scope": 967, + "src": "6709:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18425,10 +21225,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 960, + "id": 939, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6440:7:2", + "src": "6709:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -18438,18 +21238,18 @@ "visibility": "internal" } ], - "id": 966, + "id": 945, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 964, + "id": 943, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "6470:18:2", + "referencedDeclaration": 355, + "src": "6739:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18463,29 +21263,29 @@ "typeString": "address" } ], - "id": 963, + "id": 942, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6462:7:2", + "src": "6731:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 962, + "id": 941, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6462:7:2", + "src": "6731:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 965, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -18493,7 +21293,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6462:27:2", + "src": "6731:27:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -18501,22 +21301,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6440:49:2" + "src": "6709:49:1" }, { "AST": { "nodeType": "YulBlock", - "src": "6508:341:2", + "src": "6777:341:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6522:24:2", + "src": "6791:24:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6541:4:2", + "src": "6810:4:1", "type": "", "value": "0x40" } @@ -18524,16 +21324,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "6535:5:2" + "src": "6804:5:1" }, "nodeType": "YulFunctionCall", - "src": "6535:11:2" + "src": "6804:11:1" }, "variables": [ { "name": "clone", "nodeType": "YulTypedName", - "src": "6526:5:2", + "src": "6795:5:1", "type": "" } ] @@ -18544,12 +21344,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6566:5:2" + "src": "6835:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6573:66:2", + "src": "6842:66:1", "type": "", "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" } @@ -18557,13 +21357,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6559:6:2" + "src": "6828:6:1" }, "nodeType": "YulFunctionCall", - "src": "6559:81:2" + "src": "6828:81:1" }, "nodeType": "YulExpressionStatement", - "src": "6559:81:2" + "src": "6828:81:1" }, { "expression": { @@ -18573,12 +21373,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6664:5:2" + "src": "6933:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6671:4:2", + "src": "6940:4:1", "type": "", "value": "0x14" } @@ -18586,27 +21386,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6660:3:2" + "src": "6929:3:1" }, "nodeType": "YulFunctionCall", - "src": "6660:16:2" + "src": "6929:16:1" }, { "name": "targetBytes", "nodeType": "YulIdentifier", - "src": "6678:11:2" + "src": "6947:11:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6653:6:2" + "src": "6922:6:1" }, "nodeType": "YulFunctionCall", - "src": "6653:37:2" + "src": "6922:37:1" }, "nodeType": "YulExpressionStatement", - "src": "6653:37:2" + "src": "6922:37:1" }, { "expression": { @@ -18616,12 +21416,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6714:5:2" + "src": "6983:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6721:4:2", + "src": "6990:4:1", "type": "", "value": "0x28" } @@ -18629,15 +21429,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "6710:3:2" + "src": "6979:3:1" }, "nodeType": "YulFunctionCall", - "src": "6710:16:2" + "src": "6979:16:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6728:66:2", + "src": "6997:66:1", "type": "", "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" } @@ -18645,35 +21445,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6703:6:2" + "src": "6972:6:1" }, "nodeType": "YulFunctionCall", - "src": "6703:92:2" + "src": "6972:92:1" }, "nodeType": "YulExpressionStatement", - "src": "6703:92:2" + "src": "6972:92:1" }, { "nodeType": "YulAssignment", - "src": "6808:31:2", + "src": "7077:31:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6824:1:2", + "src": "7093:1:1", "type": "", "value": "0" }, { "name": "clone", "nodeType": "YulIdentifier", - "src": "6827:5:2" + "src": "7096:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6834:4:2", + "src": "7103:4:1", "type": "", "value": "0x37" } @@ -18681,16 +21481,16 @@ "functionName": { "name": "create", "nodeType": "YulIdentifier", - "src": "6817:6:2" + "src": "7086:6:1" }, "nodeType": "YulFunctionCall", - "src": "6817:22:2" + "src": "7086:22:1" }, "variableNames": [ { "name": "asset", "nodeType": "YulIdentifier", - "src": "6808:5:2" + "src": "7077:5:1" } ] } @@ -18699,23 +21499,23 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 958, + "declaration": 937, "isOffset": false, "isSlot": false, - "src": "6808:5:2", + "src": "7077:5:1", "valueSize": 1 }, { - "declaration": 961, + "declaration": 940, "isOffset": false, "isSlot": false, - "src": "6678:11:2", + "src": "6947:11:1", "valueSize": 1 } ], - "id": 967, + "id": 946, "nodeType": "InlineAssembly", - "src": "6499:350:2" + "src": "6768:350:1" }, { "expression": { @@ -18723,12 +21523,12 @@ "arguments": [ { "argumentTypes": null, - "id": 972, + "id": 951, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "6918:11:2", + "referencedDeclaration": 932, + "src": "7187:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -18736,12 +21536,12 @@ }, { "argumentTypes": null, - "id": 973, + "id": 952, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "6931:13:2", + "referencedDeclaration": 934, + "src": "7200:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18764,12 +21564,12 @@ "arguments": [ { "argumentTypes": null, - "id": 969, + "id": 948, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "6900:5:2", + "referencedDeclaration": 937, + "src": "7169:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18783,18 +21583,18 @@ "typeString": "address" } ], - "id": 968, + "id": 947, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "6887:12:2", + "referencedDeclaration": 1725, + "src": "7156:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 970, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, @@ -18802,28 +21602,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6887:19:2", + "src": "7156:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 971, + "id": 950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "initialize", "nodeType": "MemberAccess", - "referencedDeclaration": 1253, - "src": "6887:30:2", + "referencedDeclaration": 1242, + "src": "7156:30:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$returns$__$", "typeString": "function (uint8,bytes32) external" } }, - "id": 974, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -18831,21 +21631,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6887:58:2", + "src": "7156:58:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 975, + "id": 954, "nodeType": "ExpressionStatement", - "src": "6887:58:2" + "src": "7156:58:1" }, { "expression": { "argumentTypes": null, - "id": 980, + "id": 959, "isConstant": false, "isLValue": false, "isPure": false, @@ -18854,26 +21654,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 976, + "id": 955, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "6981:13:2", + "referencedDeclaration": 405, + "src": "7250:13:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 978, + "id": 957, "indexExpression": { "argumentTypes": null, - "id": 977, + "id": 956, "name": "seed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "6995:4:2", + "referencedDeclaration": 930, + "src": "7264:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18884,7 +21684,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6981:19:2", + "src": "7250:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18894,31 +21694,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 979, + "id": 958, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "7003:5:2", + "referencedDeclaration": 937, + "src": "7272:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6981:27:2", + "src": "7250:27:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 981, + "id": 960, "nodeType": "ExpressionStatement", - "src": "6981:27:2" + "src": "7250:27:1" }, { "expression": { "argumentTypes": null, - "id": 986, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, @@ -18927,26 +21727,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 982, + "id": 961, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "7018:14:2", + "referencedDeclaration": 409, + "src": "7287:14:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 984, + "id": 963, "indexExpression": { "argumentTypes": null, - "id": 983, + "id": 962, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "7033:5:2", + "referencedDeclaration": 937, + "src": "7302:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18957,7 +21757,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7018:21:2", + "src": "7287:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18968,14 +21768,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 985, + "id": 964, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7042:4:2", + "src": "7311:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -18983,20 +21783,20 @@ }, "value": "true" }, - "src": "7018:28:2", + "src": "7287:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 987, + "id": 966, "nodeType": "ExpressionStatement", - "src": "7018:28:2" + "src": "7287:28:1" } ] }, "documentation": null, - "id": 989, + "id": 968, "implemented": true, "kind": "function", "modifiers": [], @@ -19004,18 +21804,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 956, + "id": 935, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 951, + "id": 930, "mutability": "mutable", "name": "seed", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 989, - "src": "6175:12:2", + "scope": 968, + "src": "6444:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19023,10 +21823,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 950, + "id": 929, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6175:7:2", + "src": "6444:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19037,13 +21837,13 @@ }, { "constant": false, - "id": 953, + "id": 932, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 989, - "src": "6189:17:2", + "scope": 968, + "src": "6458:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19051,10 +21851,10 @@ "typeString": "uint8" }, "typeName": { - "id": 952, + "id": 931, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6189:5:2", + "src": "6458:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -19065,13 +21865,13 @@ }, { "constant": false, - "id": 955, + "id": 934, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 989, - "src": "6208:21:2", + "scope": 968, + "src": "6477:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19079,10 +21879,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 954, + "id": 933, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6208:7:2", + "src": "6477:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19092,21 +21892,21 @@ "visibility": "internal" } ], - "src": "6174:56:2" + "src": "6443:56:1" }, "returnParameters": { - "id": 959, + "id": 938, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 958, + "id": 937, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 989, - "src": "6248:13:2", + "scope": 968, + "src": "6517:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19114,10 +21914,10 @@ "typeString": "address" }, "typeName": { - "id": 957, + "id": 936, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6248:7:2", + "src": "6517:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19128,19 +21928,19 @@ "visibility": "internal" } ], - "src": "6247:15:2" + "src": "6516:15:1" }, - "scope": 1181, - "src": "6147:906:2", + "scope": 1170, + "src": "6416:906:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 1115, + "id": 1099, "nodeType": "Block", - "src": "7194:1027:2", + "src": "7526:1034:1", "statements": [ { "expression": { @@ -19152,19 +21952,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1003, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1001, + "id": 984, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "7212:6:2", + "referencedDeclaration": 972, + "src": "7544:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19175,14 +21975,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1002, + "id": 985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7222:1:2", + "src": "7554:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19190,7 +21990,7 @@ }, "value": "0" }, - "src": "7212:11:2", + "src": "7544:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19199,14 +21999,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 1004, + "id": 987, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7225:22:2", + "src": "7557:22:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -19226,7 +22026,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 1000, + "id": 983, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -19234,13 +22034,13 @@ -18 ], "referencedDeclaration": -18, - "src": "7204:7:2", + "src": "7536:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1005, + "id": 988, "isConstant": false, "isLValue": false, "isPure": false, @@ -19248,31 +22048,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7204:44:2", + "src": "7536:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1006, + "id": 989, "nodeType": "ExpressionStatement", - "src": "7204:44:2" + "src": "7536:44:1" }, { "assignments": [ - 1008 + 991 ], "declarations": [ { "constant": false, - "id": 1008, + "id": 991, "mutability": "mutable", "name": "asset_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1115, - "src": "7259:17:2", + "scope": 1099, + "src": "7591:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19280,10 +22080,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1007, + "id": 990, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7259:5:2", + "src": "7591:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -19293,37 +22093,37 @@ "visibility": "internal" } ], - "id": 1010, + "id": 993, "initialValue": { "argumentTypes": null, - "id": 1009, + "id": 992, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "7279:8:2", + "referencedDeclaration": 358, + "src": "7611:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "7259:28:2" + "src": "7591:28:1" }, { "assignments": [ - 1012 + 995 ], "declarations": [ { "constant": false, - "id": 1012, + "id": 995, "mutability": "mutable", "name": "asset_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1115, - "src": "7297:21:2", + "scope": 1099, + "src": "7629:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19331,10 +22131,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1011, + "id": 994, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7297:7:2", + "src": "7629:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -19344,36 +22144,36 @@ "visibility": "internal" } ], - "id": 1013, + "id": 996, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "7297:21:2" + "src": "7629:21:1" }, { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1014, + "id": 997, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "7332:14:2", + "referencedDeclaration": 409, + "src": "7664:14:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1016, + "id": 999, "indexExpression": { "argumentTypes": null, - "id": 1015, + "id": 998, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7347:5:2", + "referencedDeclaration": 970, + "src": "7679:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19384,31 +22184,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7332:21:2", + "src": "7664:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1097, + "id": 1080, "nodeType": "Block", - "src": "7554:539:2", + "src": "7886:539:1", "statements": [ { "assignments": [ - 1044 + 1027 ], "declarations": [ { "constant": false, - "id": 1044, + "id": 1027, "mutability": "mutable", "name": "balanceBefore", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1097, - "src": "7568:21:2", + "scope": 1080, + "src": "7900:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19416,10 +22216,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1043, + "id": 1026, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7568:7:2", + "src": "7900:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19429,7 +22229,7 @@ "visibility": "internal" } ], - "id": 1054, + "id": 1037, "initialValue": { "argumentTypes": null, "arguments": [ @@ -19438,14 +22238,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1051, + "id": 1034, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "7624:4:2", + "src": "7956:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeIdentifier": "t_contract$_Wormhole_$1170", "typeString": "contract Wormhole" } } @@ -19453,33 +22253,33 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeIdentifier": "t_contract$_Wormhole_$1170", "typeString": "contract Wormhole" } ], - "id": 1050, + "id": 1033, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7616:7:2", + "src": "7948:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1049, + "id": 1032, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7616:7:2", + "src": "7948:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1052, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, @@ -19487,7 +22287,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7616:13:2", + "src": "7948:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -19507,12 +22307,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1046, + "id": 1029, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7599:5:2", + "referencedDeclaration": 970, + "src": "7931:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19526,17 +22326,143 @@ "typeString": "address" } ], - "id": 1045, + "id": 1028, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "7592:6:2", + "referencedDeclaration": 2022, + "src": "7924:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$", "typeString": "type(contract IERC20)" } }, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7924:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$2022", + "typeString": "contract IERC20" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1961, + "src": "7924:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7924:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7900:62:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1042, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8007:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8007:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1046, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8027:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Wormhole_$1170", + "typeString": "contract Wormhole" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Wormhole_$1170", + "typeString": "contract Wormhole" + } + ], + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8019:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8019:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, "id": 1047, "isConstant": false, "isLValue": false, @@ -19545,133 +22471,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7592:13:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", - "typeString": "contract IERC20" - } - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "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": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7592:38:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7568:62:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1059, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7675:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7675:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1063, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "7695:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1181", - "typeString": "contract Wormhole" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Wormhole_$1181", - "typeString": "contract Wormhole" - } - ], - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7687:7:2", - "typeDescriptions": { - "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, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7687:13:2", + "src": "8019:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -19680,12 +22480,12 @@ }, { "argumentTypes": null, - "id": 1065, + "id": 1048, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "7702:6:2", + "referencedDeclaration": 972, + "src": "8034:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19712,12 +22512,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1056, + "id": 1039, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7651:5:2", + "referencedDeclaration": 970, + "src": "7983:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19731,18 +22531,18 @@ "typeString": "address" } ], - "id": 1055, + "id": 1038, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "7644:6:2", + "referencedDeclaration": 2022, + "src": "7976:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$", "typeString": "type(contract IERC20)" } }, - "id": 1057, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, @@ -19750,28 +22550,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7644:13:2", + "src": "7976:13:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } }, - "id": 1058, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 2092, - "src": "7644:30:2", + "referencedDeclaration": 2081, + "src": "7976:30:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2033_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2022_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2022_$", "typeString": "function (contract IERC20,address,address,uint256)" } }, - "id": 1066, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": false, @@ -19779,31 +22579,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7644:65:2", + "src": "7976:65:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1067, + "id": 1050, "nodeType": "ExpressionStatement", - "src": "7644:65:2" + "src": "7976:65:1" }, { "assignments": [ - 1069 + 1052 ], "declarations": [ { "constant": false, - "id": 1069, + "id": 1052, "mutability": "mutable", "name": "balanceAfter", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1097, - "src": "7723:20:2", + "scope": 1080, + "src": "8055:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19811,10 +22611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1068, + "id": 1051, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7723:7:2", + "src": "8055:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19824,7 +22624,7 @@ "visibility": "internal" } ], - "id": 1079, + "id": 1062, "initialValue": { "argumentTypes": null, "arguments": [ @@ -19833,14 +22633,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1076, + "id": 1059, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "7778:4:2", + "src": "8110:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeIdentifier": "t_contract$_Wormhole_$1170", "typeString": "contract Wormhole" } } @@ -19848,33 +22648,33 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1181", + "typeIdentifier": "t_contract$_Wormhole_$1170", "typeString": "contract Wormhole" } ], - "id": 1075, + "id": 1058, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7770:7:2", + "src": "8102:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1074, + "id": 1057, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7770:7:2", + "src": "8102:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1077, + "id": 1060, "isConstant": false, "isLValue": false, "isPure": false, @@ -19882,7 +22682,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7770:13:2", + "src": "8102:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -19902,12 +22702,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1071, + "id": 1054, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7753:5:2", + "referencedDeclaration": 970, + "src": "8085:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19921,18 +22721,18 @@ "typeString": "address" } ], - "id": 1070, + "id": 1053, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "7746:6:2", + "referencedDeclaration": 2022, + "src": "8078:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2033_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$", "typeString": "type(contract IERC20)" } }, - "id": 1072, + "id": 1055, "isConstant": false, "isLValue": false, "isPure": false, @@ -19940,28 +22740,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7746:13:2", + "src": "8078:13:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } }, - "id": 1073, + "id": 1056, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1972, - "src": "7746:23:2", + "referencedDeclaration": 1961, + "src": "8078:23:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1078, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -19969,7 +22769,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7746:38:2", + "src": "8078:38:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19977,24 +22777,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7723:61:2" + "src": "8055:61:1" }, { "expression": { "argumentTypes": null, - "id": 1085, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1080, + "id": 1063, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "7989:6:2", + "referencedDeclaration": 972, + "src": "8321:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20007,12 +22807,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1083, + "id": 1066, "name": "balanceBefore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1044, - "src": "8015:13:2", + "referencedDeclaration": 1027, + "src": "8347:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20028,32 +22828,32 @@ ], "expression": { "argumentTypes": null, - "id": 1081, + "id": 1064, "name": "balanceAfter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "7998:12:2", + "referencedDeclaration": 1052, + "src": "8330:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1082, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1805, - "src": "7998:16:2", + "referencedDeclaration": 1794, + "src": "8330:16:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1084, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -20061,39 +22861,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7998:31:2", + "src": "8330:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7989:40:2", + "src": "8321:40:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1086, + "id": 1069, "nodeType": "ExpressionStatement", - "src": "7989:40:2" + "src": "8321:40:1" }, { "expression": { "argumentTypes": null, - "id": 1095, + "id": 1078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1087, + "id": 1070, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1012, - "src": "8043:13:2", + "referencedDeclaration": 995, + "src": "8375:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20109,12 +22909,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1092, + "id": 1075, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "8075:5:2", + "referencedDeclaration": 970, + "src": "8407:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20128,29 +22928,29 @@ "typeString": "address" } ], - "id": 1091, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8067:7:2", + "src": "8399:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1090, + "id": 1073, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8067:7:2", + "src": "8399:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1093, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": false, @@ -20158,7 +22958,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8067:14:2", + "src": "8399:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20173,29 +22973,29 @@ "typeString": "uint256" } ], - "id": 1089, + "id": 1072, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8059:7:2", + "src": "8391:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1088, + "id": 1071, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8059:7:2", + "src": "8391:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1094, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": false, @@ -20203,32 +23003,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8059:23:2", + "src": "8391:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8043:39:2", + "src": "8375:39:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1096, + "id": 1079, "nodeType": "ExpressionStatement", - "src": "8043:39:2" + "src": "8375:39:1" } ] }, - "id": 1098, + "id": 1081, "nodeType": "IfStatement", - "src": "7328:765:2", + "src": "7660:765:1", "trueBody": { - "id": 1042, + "id": 1025, "nodeType": "Block", - "src": "7355:193:2", + "src": "7687:193:1", "statements": [ { "expression": { @@ -20238,18 +23038,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1021, + "id": 1004, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7394:3:2", + "src": "7726:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1022, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, @@ -20257,7 +23057,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7394:10:2", + "src": "7726:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -20265,12 +23065,12 @@ }, { "argumentTypes": null, - "id": 1023, + "id": 1006, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "7406:6:2", + "referencedDeclaration": 972, + "src": "7738:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20293,12 +23093,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1018, + "id": 1001, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7382:5:2", + "referencedDeclaration": 970, + "src": "7714:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20312,18 +23112,18 @@ "typeString": "address" } ], - "id": 1017, + "id": 1000, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "7369:12:2", + "referencedDeclaration": 1725, + "src": "7701:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1019, + "id": 1002, "isConstant": false, "isLValue": false, "isPure": false, @@ -20331,28 +23131,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7369:19:2", + "src": "7701:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 1020, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "burn", "nodeType": "MemberAccess", - "referencedDeclaration": 1295, - "src": "7369:24:2", + "referencedDeclaration": 1284, + "src": "7701:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 1024, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -20360,33 +23160,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7369:44:2", + "src": "7701:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1025, + "id": 1008, "nodeType": "ExpressionStatement", - "src": "7369:44:2" + "src": "7701:44:1" }, { "expression": { "argumentTypes": null, - "id": 1032, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1026, + "id": 1009, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1008, - "src": "7427:11:2", + "referencedDeclaration": 991, + "src": "7759:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20404,12 +23204,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1028, + "id": 1011, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7454:5:2", + "referencedDeclaration": 970, + "src": "7786:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20423,18 +23223,18 @@ "typeString": "address" } ], - "id": 1027, + "id": 1010, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "7441:12:2", + "referencedDeclaration": 1725, + "src": "7773:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1029, + "id": 1012, "isConstant": false, "isLValue": false, "isPure": false, @@ -20442,28 +23242,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7441:19:2", + "src": "7773:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 1030, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "assetChain", "nodeType": "MemberAccess", - "referencedDeclaration": 1204, - "src": "7441:30:2", + "referencedDeclaration": 1193, + "src": "7773:30:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 1031, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -20471,39 +23271,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7441:32:2", + "src": "7773:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "7427:46:2", + "src": "7759:46:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1033, + "id": 1016, "nodeType": "ExpressionStatement", - "src": "7427:46:2" + "src": "7759:46:1" }, { "expression": { "argumentTypes": null, - "id": 1040, + "id": 1023, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1034, + "id": 1017, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1012, - "src": "7487:13:2", + "referencedDeclaration": 995, + "src": "7819:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20521,12 +23321,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1036, + "id": 1019, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "7516:5:2", + "referencedDeclaration": 970, + "src": "7848:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20540,18 +23340,18 @@ "typeString": "address" } ], - "id": 1035, + "id": 1018, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "7503:12:2", + "referencedDeclaration": 1725, + "src": "7835:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1736_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1037, + "id": 1020, "isConstant": false, "isLValue": false, "isPure": false, @@ -20559,28 +23359,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7503:19:2", + "src": "7835:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1736", + "typeIdentifier": "t_contract$_WrappedAsset_$1725", "typeString": "contract WrappedAsset" } }, - "id": 1038, + "id": 1021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "assetAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1206, - "src": "7503:32:2", + "referencedDeclaration": 1195, + "src": "7835:32:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", "typeString": "function () view external returns (bytes32)" } }, - "id": 1039, + "id": 1022, "isConstant": false, "isLValue": false, "isPure": false, @@ -20588,22 +23388,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7503:34:2", + "src": "7835:34:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7487:50:2", + "src": "7819:50:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1041, + "id": 1024, "nodeType": "ExpressionStatement", - "src": "7487:50:2" + "src": "7819:50:1" } ] } @@ -20614,12 +23414,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1100, + "id": 1083, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "8124:12:2", + "referencedDeclaration": 976, + "src": "8456:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20627,12 +23427,12 @@ }, { "argumentTypes": null, - "id": 1101, + "id": 1084, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1008, - "src": "8138:11:2", + "referencedDeclaration": 991, + "src": "8470:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20640,12 +23440,12 @@ }, { "argumentTypes": null, - "id": 1102, + "id": 1085, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1012, - "src": "8151:13:2", + "referencedDeclaration": 995, + "src": "8483:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20661,18 +23461,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1107, + "id": 1090, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8182:3:2", + "src": "8514:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1108, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, @@ -20680,7 +23480,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8182:10:2", + "src": "8514:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -20694,29 +23494,29 @@ "typeString": "address payable" } ], - "id": 1106, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8174:7:2", + "src": "8506:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1105, + "id": 1088, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8174:7:2", + "src": "8506:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1109, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, @@ -20724,7 +23524,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8174:19:2", + "src": "8506:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20739,29 +23539,29 @@ "typeString": "uint256" } ], - "id": 1104, + "id": 1087, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8166:7:2", + "src": "8498:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1103, + "id": 1086, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8166:7:2", + "src": "8498:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1110, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, @@ -20769,7 +23569,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8166:28:2", + "src": "8498:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -20778,12 +23578,12 @@ }, { "argumentTypes": null, - "id": 1111, + "id": 1094, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "8196:9:2", + "referencedDeclaration": 974, + "src": "8528:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20791,16 +23591,29 @@ }, { "argumentTypes": null, - "id": 1112, + "id": 1095, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 993, - "src": "8207:6:2", + "referencedDeclaration": 972, + "src": "8539:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 1096, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 978, + "src": "8547:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } } ], "expression": { @@ -20828,20 +23641,24 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" } ], - "id": 1099, + "id": 1082, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "8108:15:2", + "referencedDeclaration": 389, + "src": "8440:15:1", "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)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)" } }, - "id": 1113, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -20849,41 +23666,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8108:106:2", + "src": "8440:113:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1114, + "id": 1098, "nodeType": "EmitStatement", - "src": "8103:111:2" + "src": "8435:118:1" } ] }, "documentation": null, - "functionSelector": "e66fd373", - "id": 1116, + "functionSelector": "13cca1a9", + "id": 1100, "implemented": true, "kind": "function", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 981, + "modifierName": { + "argumentTypes": null, + "id": 980, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2478, + "src": "7513:12:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7513:12:1" + } + ], "name": "lockAssets", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 998, + "id": 979, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 991, + "id": 970, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1116, - "src": "7088:13:2", + "scope": 1100, + "src": "7385:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20891,10 +23728,10 @@ "typeString": "address" }, "typeName": { - "id": 990, + "id": 969, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7088:7:2", + "src": "7385:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20906,13 +23743,13 @@ }, { "constant": false, - "id": 993, + "id": 972, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1116, - "src": "7111:14:2", + "scope": 1100, + "src": "7408:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20920,10 +23757,10 @@ "typeString": "uint256" }, "typeName": { - "id": 992, + "id": 971, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7111:7:2", + "src": "7408:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20934,13 +23771,13 @@ }, { "constant": false, - "id": 995, + "id": 974, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1116, - "src": "7135:17:2", + "scope": 1100, + "src": "7432:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20948,10 +23785,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 994, + "id": 973, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7135:7:2", + "src": "7432:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20962,13 +23799,13 @@ }, { "constant": false, - "id": 997, + "id": 976, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1116, - "src": "7162:18:2", + "scope": 1100, + "src": "7459:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20976,10 +23813,10 @@ "typeString": "uint8" }, "typeName": { - "id": 996, + "id": 975, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7162:5:2", + "src": "7459:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20987,27 +23824,55 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 978, + "mutability": "mutable", + "name": "nonce", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1100, + "src": "7487:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 977, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "7487:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "7078:108:2" + "src": "7375:130:1" }, "returnParameters": { - "id": 999, + "id": 982, "nodeType": "ParameterList", "parameters": [], - "src": "7194:0:2" + "src": "7526:0:1" }, - "scope": 1181, - "src": "7059:1162:2", + "scope": 1170, + "src": "7356:1204:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1163, + "id": 1152, "nodeType": "Block", - "src": "8320:323:2", + "src": "8694:330:1", "statements": [ { "expression": { @@ -21019,7 +23884,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1127, + "id": 1115, "isConstant": false, "isLValue": false, "isPure": false, @@ -21028,18 +23893,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1124, + "id": 1112, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8338:3:2", + "src": "8712:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1125, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, @@ -21047,7 +23912,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8338:9:2", + "src": "8712:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21058,14 +23923,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1126, + "id": 1114, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8351:1:2", + "src": "8725:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21073,7 +23938,7 @@ }, "value": "0" }, - "src": "8338:14:2", + "src": "8712:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21082,14 +23947,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 1128, + "id": 1116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8354:22:2", + "src": "8728:22:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -21109,7 +23974,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 1123, + "id": 1111, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -21117,13 +23982,13 @@ -18 ], "referencedDeclaration": -18, - "src": "8330:7:2", + "src": "8704:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1129, + "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, @@ -21131,16 +23996,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8330:47:2", + "src": "8704:47:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1130, + "id": 1118, "nodeType": "ExpressionStatement", - "src": "8330:47:2" + "src": "8704:47:1" }, { "expression": { @@ -21155,12 +24020,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1132, + "id": 1120, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 479, - "src": "8426:11:2", + "referencedDeclaration": 361, + "src": "8800:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21174,18 +24039,18 @@ "typeString": "address" } ], - "id": 1131, + "id": 1119, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1192, - "src": "8421:4:2", + "referencedDeclaration": 1181, + "src": "8795:4:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WETH_$1192_$", + "typeIdentifier": "t_type$_t_contract$_WETH_$1181_$", "typeString": "type(contract WETH)" } }, - "id": 1133, + "id": 1121, "isConstant": false, "isLValue": false, "isPure": true, @@ -21193,28 +24058,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8421:17:2", + "src": "8795:17:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WETH_$1192", + "typeIdentifier": "t_contract$_WETH_$1181", "typeString": "contract WETH" } }, - "id": 1134, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": 1186, - "src": "8421:25:2", + "referencedDeclaration": 1175, + "src": "8795:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, - "id": 1137, + "id": 1125, "isConstant": false, "isLValue": false, "isPure": false, @@ -21228,18 +24093,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1135, + "id": 1123, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8455:3:2", + "src": "8829:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1136, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": false, @@ -21247,20 +24112,20 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8455:9:2", + "src": "8829:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "8421:44:2", + "src": "8795:44:1", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 1138, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": false, @@ -21268,16 +24133,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8421:46:2", + "src": "8795:46:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1139, + "id": 1127, "nodeType": "ExpressionStatement", - "src": "8421:46:2" + "src": "8795:46:1" }, { "eventCall": { @@ -21285,12 +24150,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1141, + "id": 1129, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1120, - "src": "8530:12:2", + "referencedDeclaration": 1104, + "src": "8904:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -21298,12 +24163,12 @@ }, { "argumentTypes": null, - "id": 1142, + "id": 1130, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "8544:8:2", + "referencedDeclaration": 358, + "src": "8918:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -21317,12 +24182,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1147, + "id": 1135, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 479, - "src": "8570:11:2", + "referencedDeclaration": 361, + "src": "8944:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21336,29 +24201,29 @@ "typeString": "address" } ], - "id": 1146, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8562:7:2", + "src": "8936:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1145, + "id": 1133, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8562:7:2", + "src": "8936:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1148, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": true, @@ -21366,7 +24231,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8562:20:2", + "src": "8936:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21381,29 +24246,29 @@ "typeString": "uint256" } ], - "id": 1144, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8554:7:2", + "src": "8928:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1143, + "id": 1131, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8554:7:2", + "src": "8928:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1149, + "id": 1137, "isConstant": false, "isLValue": false, "isPure": true, @@ -21411,7 +24276,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8554:29:2", + "src": "8928:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -21428,18 +24293,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1154, + "id": 1142, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8601:3:2", + "src": "8975:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1155, + "id": 1143, "isConstant": false, "isLValue": false, "isPure": false, @@ -21447,7 +24312,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8601:10:2", + "src": "8975:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -21461,29 +24326,29 @@ "typeString": "address payable" } ], - "id": 1153, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8593:7:2", + "src": "8967:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1152, + "id": 1140, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8593:7:2", + "src": "8967:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1156, + "id": 1144, "isConstant": false, "isLValue": false, "isPure": false, @@ -21491,7 +24356,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8593:19:2", + "src": "8967:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21506,29 +24371,29 @@ "typeString": "uint256" } ], - "id": 1151, + "id": 1139, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8585:7:2", + "src": "8959:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1150, + "id": 1138, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8585:7:2", + "src": "8959:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1157, + "id": 1145, "isConstant": false, "isLValue": false, "isPure": false, @@ -21536,7 +24401,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8585:28:2", + "src": "8959:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -21545,12 +24410,12 @@ }, { "argumentTypes": null, - "id": 1158, + "id": 1146, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1118, - "src": "8615:9:2", + "referencedDeclaration": 1102, + "src": "8989:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21560,18 +24425,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1159, + "id": 1147, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8626:3:2", + "src": "9000:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1160, + "id": 1148, "isConstant": false, "isLValue": false, "isPure": false, @@ -21579,11 +24444,24 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8626:9:2", + "src": "9000:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 1149, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1106, + "src": "9011:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } } ], "expression": { @@ -21611,20 +24489,24 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" } ], - "id": 1140, + "id": 1128, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "8514:15:2", + "referencedDeclaration": 389, + "src": "8888:15:1", "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)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$", + "typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)" } }, - "id": 1161, + "id": 1150, "isConstant": false, "isLValue": false, "isPure": false, @@ -21632,41 +24514,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8514:122:2", + "src": "8888:129:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1162, + "id": 1151, "nodeType": "EmitStatement", - "src": "8509:127:2" + "src": "8883:134:1" } ] }, "documentation": null, - "functionSelector": "780e2183", - "id": 1164, + "functionSelector": "58d62e46", + "id": 1153, "implemented": true, "kind": "function", - "modifiers": [], + "modifiers": [ + { + "arguments": null, + "id": 1109, + "modifierName": { + "argumentTypes": null, + "id": 1108, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2478, + "src": "8681:12:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8681:12:1" + } + ], "name": "lockETH", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1121, + "id": 1107, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1118, + "id": 1102, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1164, - "src": "8253:17:2", + "scope": 1153, + "src": "8592:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21674,10 +24576,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1117, + "id": 1101, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8253:7:2", + "src": "8592:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21688,13 +24590,13 @@ }, { "constant": false, - "id": 1120, + "id": 1104, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1164, - "src": "8280:18:2", + "scope": 1153, + "src": "8619:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21702,10 +24604,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1119, + "id": 1103, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "8280:5:2", + "src": "8619:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -21713,27 +24615,55 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1106, + "mutability": "mutable", + "name": "nonce", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1153, + "src": "8647:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1105, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "8243:61:2" + "src": "8582:83:1" }, "returnParameters": { - "id": 1122, + "id": 1110, "nodeType": "ParameterList", "parameters": [], - "src": "8320:0:2" + "src": "8694:0:1" }, - "scope": 1181, - "src": "8227:416:2", + "scope": 1170, + "src": "8566:458:1", "stateMutability": "payable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1171, + "id": 1160, "nodeType": "Block", - "src": "8674:57:2", + "src": "9055:57:1", "statements": [ { "expression": { @@ -21742,14 +24672,14 @@ { "argumentTypes": null, "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1168, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8682:46:2", + "src": "9063:46:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -21765,7 +24695,7 @@ "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\"" } ], - "id": 1167, + "id": 1156, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -21773,13 +24703,13 @@ -19 ], "referencedDeclaration": -19, - "src": "8675:6:2", + "src": "9056:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1169, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -21787,21 +24717,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8675:54:2", + "src": "9056:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1170, + "id": 1159, "nodeType": "ExpressionStatement", - "src": "8675:54:2" + "src": "9056:54:1" } ] }, "documentation": null, - "id": 1172, + "id": 1161, "implemented": true, "kind": "fallback", "modifiers": [], @@ -21809,28 +24739,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1165, + "id": 1154, "nodeType": "ParameterList", "parameters": [], - "src": "8654:2:2" + "src": "9035:2:1" }, "returnParameters": { - "id": 1166, + "id": 1155, "nodeType": "ParameterList", "parameters": [], - "src": "8674:0:2" + "src": "9055:0:1" }, - "scope": 1181, - "src": "8646:85:2", + "scope": 1170, + "src": "9027:85:1", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1179, + "id": 1168, "nodeType": "Block", - "src": "8759:57:2", + "src": "9140:57:1", "statements": [ { "expression": { @@ -21839,14 +24769,14 @@ { "argumentTypes": null, "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1176, + "id": 1165, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8767:46:2", + "src": "9148:46:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -21862,7 +24792,7 @@ "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\"" } ], - "id": 1175, + "id": 1164, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -21870,13 +24800,13 @@ -19 ], "referencedDeclaration": -19, - "src": "8760:6:2", + "src": "9141:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1177, + "id": 1166, "isConstant": false, "isLValue": false, "isPure": false, @@ -21884,21 +24814,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8760:54:2", + "src": "9141:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1178, + "id": 1167, "nodeType": "ExpressionStatement", - "src": "8760:54:2" + "src": "9141:54:1" } ] }, "documentation": null, - "id": 1180, + "id": 1169, "implemented": true, "kind": "receive", "modifiers": [], @@ -21906,26 +24836,26 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1173, + "id": 1162, "nodeType": "ParameterList", "parameters": [], - "src": "8739:2:2" + "src": "9120:2:1" }, "returnParameters": { - "id": 1174, + "id": 1163, "nodeType": "ParameterList", "parameters": [], - "src": "8759:0:2" + "src": "9140:0:1" }, - "scope": 1181, - "src": "8732:84:2", + "scope": 1170, + "src": "9113:84:1", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 1193, - "src": "380:8438:2" + "scope": 1182, + "src": "446:8753:1" }, { "abstract": false, @@ -21934,31 +24864,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1182, + "id": 1171, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2033, - "src": "8839:6:2", + "referencedDeclaration": 2022, + "src": "9220:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2033", + "typeIdentifier": "t_contract$_IERC20_$2022", "typeString": "contract IERC20" } }, - "id": 1183, + "id": 1172, "nodeType": "InheritanceSpecifier", - "src": "8839:6:2" + "src": "9220:6:1" } ], "contractDependencies": [ - 2033 + 2022 ], "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 1192, + "id": 1181, "linearizedBaseContracts": [ - 1192, - 2033 + 1181, + 2022 ], "name": "WETH", "nodeType": "ContractDefinition", @@ -21967,7 +24897,7 @@ "body": null, "documentation": null, "functionSelector": "d0e30db0", - "id": 1186, + "id": 1175, "implemented": false, "kind": "function", "modifiers": [], @@ -21975,19 +24905,19 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1184, + "id": 1173, "nodeType": "ParameterList", "parameters": [], - "src": "8864:2:2" + "src": "9245:2:1" }, "returnParameters": { - "id": 1185, + "id": 1174, "nodeType": "ParameterList", "parameters": [], - "src": "8883:0:2" + "src": "9264:0:1" }, - "scope": 1192, - "src": "8848:36:2", + "scope": 1181, + "src": "9229:36:1", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -21996,7 +24926,7 @@ "body": null, "documentation": null, "functionSelector": "2e1a7d4d", - "id": 1191, + "id": 1180, "implemented": false, "kind": "function", "modifiers": [], @@ -22004,18 +24934,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1189, + "id": 1178, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1188, + "id": 1177, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1191, - "src": "8904:14:2", + "scope": 1180, + "src": "9285:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22023,10 +24953,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1187, + "id": 1176, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8904:7:2", + "src": "9285:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22036,26 +24966,26 @@ "visibility": "internal" } ], - "src": "8903:16:2" + "src": "9284:16:1" }, "returnParameters": { - "id": 1190, + "id": 1179, "nodeType": "ParameterList", "parameters": [], - "src": "8928:0:2" + "src": "9309:0:1" }, - "scope": 1192, - "src": "8886:43:2", + "scope": 1181, + "src": "9267:43:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1193, - "src": "8821:110:2" + "scope": 1182, + "src": "9202:110:1" } ], - "src": "64:8868:2" + "src": "103:9210:1" }, "compiler": { "name": "solc", @@ -22063,7 +24993,7 @@ }, "networks": {}, "schemaVersion": "3.2.3", - "updatedAt": "2020-08-09T18:58:34.074Z", + "updatedAt": "2020-08-20T18:32:51.829Z", "devdoc": { "kind": "dev", "methods": {}, @@ -22074,4 +25004,4 @@ "methods": {}, "version": 1 } -} \ No newline at end of file +} diff --git a/web/contracts/WrappedAsset.json b/web/contracts/WrappedAsset.json index b8b88aa2..e52e003d 100644 --- a/web/contracts/WrappedAsset.json +++ b/web/contracts/WrappedAsset.json @@ -14865,4 +14865,4 @@ "methods": {}, "version": 1 } -} \ No newline at end of file +} diff --git a/web/src/components/SplBalances.tsx b/web/src/components/SplBalances.tsx index 850e5d6c..56c3f282 100644 --- a/web/src/components/SplBalances.tsx +++ b/web/src/components/SplBalances.tsx @@ -2,31 +2,32 @@ import React, {useContext} from "react" import {BalanceInfo, SolanaTokenContext} from "../providers/SolanaTokenContext"; import {Table} from "antd"; import {CHAIN_ID_SOLANA} from "../utils/bridge"; +import {BigNumber} from "ethers/utils"; function SplBalances() { let t = useContext(SolanaTokenContext); const columns = [ - { - title: 'Mint', - dataIndex: 'mint', - key: 'mint', - }, { title: 'Account', key: 'account', render: (n: any, v: BalanceInfo) => v.account.toString() }, + { + title: 'Mint', + dataIndex: 'mint', + key: 'mint', + }, { title: 'Balance', key: 'balance', - render: (n: any, v: BalanceInfo) => v.balance.div(Math.pow(10, v.decimals)).toString() + render: (n: any, v: BalanceInfo) => v.balance.div(new BigNumber(10).pow(v.decimals)).toString() }, { title: 'Wrapped', key: 'wrapped', render: (n: any, v: BalanceInfo) => { - return v.assetMeta.chain != CHAIN_ID_SOLANA ? `Wrapped (${v.assetMeta.chain})` : "Native" + return v.assetMeta.chain != CHAIN_ID_SOLANA ? `Wrapped (${v.assetMeta.chain} - 0x${v.assetMeta.address.slice(12).toString("hex")})` : "Native" } }, ]; diff --git a/web/src/config.ts b/web/src/config.ts index 749b8a85..4136c0f3 100644 --- a/web/src/config.ts +++ b/web/src/config.ts @@ -1,6 +1,6 @@ import {PublicKey} from "@solana/web3.js"; -const BRIDGE_ADDRESS = "0xac3eB48829fFC3C37437ce4459cE63F1F4d4E0b4"; +const BRIDGE_ADDRESS = "0x5b1869D9A4C187F2EAa108f3062412ecf0526b24"; const SOLANA_BRIDGE_PROGRAM = new PublicKey("Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o"); const TOKEN_PROGRAM = new PublicKey("TokenSVp5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o"); diff --git a/web/src/contracts/Wormhole.d.ts b/web/src/contracts/Wormhole.d.ts index aaa2d85f..a4a63131 100644 --- a/web/src/contracts/Wormhole.d.ts +++ b/web/src/contracts/Wormhole.d.ts @@ -26,35 +26,36 @@ interface WormholeInterface extends Interface { wrappedAssets: TypedFunctionDescription<{ encode([]: [Arrayish]): string }>; + getGuardianSet: TypedFunctionDescription<{ + encode([idx]: [BigNumberish]): string; + }>; + submitVAA: TypedFunctionDescription<{ encode([vaa]: [Arrayish]): string }>; lockAssets: TypedFunctionDescription<{ - encode([asset, amount, recipient, target_chain]: [ + encode([asset, amount, recipient, target_chain, nonce]: [ string, BigNumberish, Arrayish, + BigNumberish, BigNumberish ]): string; }>; lockETH: TypedFunctionDescription<{ - encode([recipient, target_chain]: [Arrayish, BigNumberish]): string; + encode([recipient, target_chain, nonce]: [ + Arrayish, + BigNumberish, + BigNumberish + ]): string; }>; }; events: { LogGuardianSetChanged: TypedEventDescription<{ - encodeTopics([oldGuardian, newGuardian]: [ - { - x: BigNumberish; - parity: BigNumberish; - expiration_time: BigNumberish; - } | null, - { - x: BigNumberish; - parity: BigNumberish; - expiration_time: BigNumberish; - } | null + encodeTopics([oldGuardianIndex, newGuardianIndex]: [ + null, + null ]): string[]; }>; @@ -65,8 +66,17 @@ interface WormholeInterface extends Interface { token, sender, recipient, - amount - ]: [null, null, Arrayish | null, Arrayish | null, null, null]): string[]; + amount, + nonce + ]: [ + null, + null, + Arrayish | null, + Arrayish | null, + null, + null, + null + ]): string[]; }>; }; } @@ -92,26 +102,12 @@ export class Wormhole extends Contract { guardian_sets( arg0: BigNumberish, overrides?: TransactionOverrides - ): Promise<{ - x: BigNumber; - parity: number; - expiration_time: number; - 0: BigNumber; - 1: number; - 2: number; - }>; + ): Promise; "guardian_sets(uint32)"( arg0: BigNumberish, overrides?: TransactionOverrides - ): Promise<{ - x: BigNumber; - parity: number; - expiration_time: number; - 0: BigNumber; - 1: number; - 2: number; - }>; + ): Promise; isWrappedAsset( arg0: string, @@ -141,6 +137,26 @@ export class Wormhole extends Contract { overrides?: TransactionOverrides ): Promise; + getGuardianSet( + idx: BigNumberish, + overrides?: TransactionOverrides + ): Promise<{ + keys: string[]; + expiration_time: number; + 0: string[]; + 1: number; + }>; + + "getGuardianSet(uint32)"( + idx: BigNumberish, + overrides?: TransactionOverrides + ): Promise<{ + keys: string[]; + expiration_time: number; + 0: string[]; + 1: number; + }>; + submitVAA( vaa: Arrayish, overrides?: TransactionOverrides @@ -156,26 +172,30 @@ export class Wormhole extends Contract { amount: BigNumberish, recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; - "lockAssets(address,uint256,bytes32,uint8)"( + "lockAssets(address,uint256,bytes32,uint8,uint32)"( asset: string, amount: BigNumberish, recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; lockETH( recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; - "lockETH(bytes32,uint8)"( + "lockETH(bytes32,uint8,uint32)"( recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; }; @@ -187,26 +207,12 @@ export class Wormhole extends Contract { guardian_sets( arg0: BigNumberish, overrides?: TransactionOverrides - ): Promise<{ - x: BigNumber; - parity: number; - expiration_time: number; - 0: BigNumber; - 1: number; - 2: number; - }>; + ): Promise; "guardian_sets(uint32)"( arg0: BigNumberish, overrides?: TransactionOverrides - ): Promise<{ - x: BigNumber; - parity: number; - expiration_time: number; - 0: BigNumber; - 1: number; - 2: number; - }>; + ): Promise; isWrappedAsset( arg0: string, @@ -236,6 +242,26 @@ export class Wormhole extends Contract { overrides?: TransactionOverrides ): Promise; + getGuardianSet( + idx: BigNumberish, + overrides?: TransactionOverrides + ): Promise<{ + keys: string[]; + expiration_time: number; + 0: string[]; + 1: number; + }>; + + "getGuardianSet(uint32)"( + idx: BigNumberish, + overrides?: TransactionOverrides + ): Promise<{ + keys: string[]; + expiration_time: number; + 0: string[]; + 1: number; + }>; + submitVAA( vaa: Arrayish, overrides?: TransactionOverrides @@ -251,41 +277,37 @@ export class Wormhole extends Contract { amount: BigNumberish, recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; - "lockAssets(address,uint256,bytes32,uint8)"( + "lockAssets(address,uint256,bytes32,uint8,uint32)"( asset: string, amount: BigNumberish, recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; lockETH( recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; - "lockETH(bytes32,uint8)"( + "lockETH(bytes32,uint8,uint32)"( recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; filters: { LogGuardianSetChanged( - oldGuardian: { - x: BigNumberish; - parity: BigNumberish; - expiration_time: BigNumberish; - } | null, - newGuardian: { - x: BigNumberish; - parity: BigNumberish; - expiration_time: BigNumberish; - } | null + oldGuardianIndex: null, + newGuardianIndex: null ): EventFilter; LogTokensLocked( @@ -294,7 +316,8 @@ export class Wormhole extends Contract { token: Arrayish | null, sender: Arrayish | null, recipient: null, - amount: null + amount: null, + nonce: null ): EventFilter; }; @@ -345,6 +368,16 @@ export class Wormhole extends Contract { overrides?: TransactionOverrides ): Promise; + getGuardianSet( + idx: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + "getGuardianSet(uint32)"( + idx: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + submitVAA( vaa: Arrayish, overrides?: TransactionOverrides @@ -360,26 +393,30 @@ export class Wormhole extends Contract { amount: BigNumberish, recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; - "lockAssets(address,uint256,bytes32,uint8)"( + "lockAssets(address,uint256,bytes32,uint8,uint32)"( asset: string, amount: BigNumberish, recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; lockETH( recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; - "lockETH(bytes32,uint8)"( + "lockETH(bytes32,uint8,uint32)"( recipient: Arrayish, target_chain: BigNumberish, + nonce: BigNumberish, overrides?: TransactionOverrides ): Promise; }; diff --git a/web/src/contracts/WormholeFactory.ts b/web/src/contracts/WormholeFactory.ts index 58af8bc4..e46f201a 100644 --- a/web/src/contracts/WormholeFactory.ts +++ b/web/src/contracts/WormholeFactory.ts @@ -10,29 +10,12 @@ import { TransactionOverrides } from "."; import { Wormhole } from "./Wormhole"; export class WormholeFactory extends ContractFactory { - constructor(linkLibraryAddresses: WormholeLibraryAddresses, signer?: Signer) { - super(_abi, WormholeFactory.linkBytecode(linkLibraryAddresses), signer); - } - - static linkBytecode(linkLibraryAddresses: WormholeLibraryAddresses): string { - let linkedBytecode = _bytecode; - - linkedBytecode = linkedBytecode.replace( - new RegExp("__Schnorr_______________________________", "g"), - linkLibraryAddresses["__Schnorr_______________________________"] - .replace(/^0x/, "") - .toLowerCase() - ); - - return linkedBytecode; + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); } deploy( - initial_guardian_set: { - x: BigNumberish; - parity: BigNumberish; - expiration_time: BigNumberish; - }, + initial_guardian_set: { keys: string[]; expiration_time: BigNumberish }, wrapped_asset_master: string, _vaa_expiry: BigNumberish, overrides?: TransactionOverrides @@ -45,11 +28,7 @@ export class WormholeFactory extends ContractFactory { ) as Promise; } getDeployTransaction( - initial_guardian_set: { - x: BigNumberish; - parity: BigNumberish; - expiration_time: BigNumberish; - }, + initial_guardian_set: { keys: string[]; expiration_time: BigNumberish }, wrapped_asset_master: string, _vaa_expiry: BigNumberish, overrides?: TransactionOverrides @@ -81,14 +60,9 @@ const _abi = [ { components: [ { - internalType: "uint256", - name: "x", - type: "uint256" - }, - { - internalType: "uint8", - name: "parity", - type: "uint8" + internalType: "address[]", + name: "keys", + type: "address[]" }, { internalType: "uint32", @@ -118,50 +92,16 @@ const _abi = [ 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" + indexed: false, + internalType: "uint32", + name: "oldGuardianIndex", + type: "uint32" }, { - 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" + indexed: false, + internalType: "uint32", + name: "newGuardianIndex", + type: "uint32" } ], name: "LogGuardianSetChanged", @@ -205,6 +145,12 @@ const _abi = [ internalType: "uint256", name: "amount", type: "uint256" + }, + { + indexed: false, + internalType: "uint32", + name: "nonce", + type: "uint32" } ], name: "LogTokensLocked", @@ -237,16 +183,6 @@ const _abi = [ ], name: "guardian_sets", outputs: [ - { - internalType: "uint256", - name: "x", - type: "uint256" - }, - { - internalType: "uint8", - name: "parity", - type: "uint8" - }, { internalType: "uint32", name: "expiration_time", @@ -324,6 +260,37 @@ const _abi = [ stateMutability: "payable", type: "receive" }, + { + inputs: [ + { + internalType: "uint32", + name: "idx", + type: "uint32" + } + ], + name: "getGuardianSet", + outputs: [ + { + components: [ + { + internalType: "address[]", + name: "keys", + type: "address[]" + }, + { + internalType: "uint32", + name: "expiration_time", + type: "uint32" + } + ], + internalType: "struct Wormhole.GuardianSet", + name: "gs", + type: "tuple" + } + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -358,6 +325,11 @@ const _abi = [ internalType: "uint8", name: "target_chain", type: "uint8" + }, + { + internalType: "uint32", + name: "nonce", + type: "uint32" } ], name: "lockAssets", @@ -376,6 +348,11 @@ const _abi = [ internalType: "uint8", name: "target_chain", type: "uint8" + }, + { + internalType: "uint32", + name: "nonce", + type: "uint32" } ], name: "lockETH", @@ -386,8 +363,4 @@ const _abi = [ ]; const _bytecode = - "0x60806040526002600060146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b506040516200334a3803806200334a833981810160405281019062000053919062000213565b82600160008063ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff1602179055509050506000600260006101000a81548163ffffffff021916908363ffffffff16021790555080600260046101000a81548163ffffffff021916908363ffffffff160217905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200035a565b6000815190506200015f81620002f2565b92915050565b6000606082840312156200017857600080fd5b62000184606062000269565b905060006200019684828501620001ce565b6000830152506020620001ac84828501620001fc565b6020830152506040620001c284828501620001e5565b60408301525092915050565b600081519050620001df816200030c565b92915050565b600081519050620001f68162000326565b92915050565b6000815190506200020d8162000340565b92915050565b600080600060a084860312156200022957600080fd5b6000620002398682870162000165565b93505060606200024c868287016200014e565b92505060806200025f86828701620001e5565b9150509250925092565b6000604051905081810181811067ffffffffffffffff821117156200028d57600080fd5b8060405250919050565b6000620002a482620002ab565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b620002fd8162000297565b81146200030957600080fd5b50565b6200031781620002cb565b81146200032357600080fd5b50565b6200033181620002d5565b81146200033d57600080fd5b50565b6200034b81620002e5565b81146200035757600080fd5b50565b612fe0806200036a6000396000f3fe60806040526004361061008a5760003560e01c80637f04d9e6116100595780637f04d9e6146101c6578063822d82b3146101f157806399da1d3c1461021c578063b6694c2a14610247578063e66fd37314610284576100ca565b80631a2be4da146101055780633bc0aee61461014257806342b0aefa1461016b578063780e2183146101aa576100ca565b366100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100c190612a5a565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100fc90612a5a565b60405180910390fd5b34801561011157600080fd5b5061012c60048036038101906101279190611f41565b6102ad565b60405161013991906129dd565b60405180910390f35b34801561014e57600080fd5b5061016960048036038101906101649190612084565b6102cd565b005b34801561017757600080fd5b50610192600480360381019061018d91906120f2565b6109e4565b6040516101a193929190612c8d565b60405180910390f35b6101c460048036038101906101bf9190612048565b610a2b565b005b3480156101d257600080fd5b506101db610b7c565b6040516101e89190612cc4565b60405180910390f35b3480156101fd57600080fd5b50610206610b92565b6040516102139190612cc4565b60405180910390f35b34801561022857600080fd5b50610231610ba8565b60405161023e919061291e565b60405180910390f35b34801561025357600080fd5b5061026e60048036038101906102699190611ff6565b610bcc565b60405161027b919061291e565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a69190611f6a565b610bff565b005b60056020528060005260406000206000915054906101000a900460ff1681565b6000610327600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b905060018160ff161461036f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036690612ada565b60405180910390fd5b60006103c9600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061105590919063ffffffff16565b90506000610425600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506110b390919063ffffffff16565b90506000610481602587878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061111190919063ffffffff16565b905060006104dd603988888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061105590919063ffffffff16565b905042600260049054906101000a900463ffffffff16820163ffffffff161161053b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053290612afa565b60405180910390fd5b600061059c6039808a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061117e9092919063ffffffff16565b8051906020012090506003600082815260200190815260200160002060009054906101000a900460ff1615610606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fd90612a3a565b60405180910390fd5b61060e611e10565b600160008763ffffffff1663ffffffff168152602001908152602001600020604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816040015163ffffffff1614806106a9575042816040015163ffffffff16115b6106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df90612bba565b60405180910390fd5b73__Schnorr_______________________________63ff51dff282600001518360200151888660001c896040518663ffffffff1660e01b8152600401610732959493929190612c3a565b60206040518083038186803b15801561074a57600080fd5b505af415801561075e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107829190611fcd565b6107c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b890612b1a565b60405180910390fd5b600061081b603d8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b90506000610877603e8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ff790919063ffffffff16565b905060606108d8603f8360ff168e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061117e9092919063ffffffff16565b905060018360ff16141561095457600260009054906101000a900463ffffffff1663ffffffff168963ffffffff1614610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d90612a9a565b60405180910390fd5b61094f81611240565b6109aa565b60108360ff16141561096e5761096981611558565b6109a9565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a090612a1a565b60405180910390fd5b5b60016003600087815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505050505050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900463ffffffff16905083565b6000341415610a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6690612b7a565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b83600060149054906101000a900460ff168634604051610b709493929190612d08565b60405180910390a35050565b600260049054906101000a900463ffffffff1681565b600260009054906101000a900463ffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000831415610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a90612b7a565b60405180910390fd5b60008060149054906101000a900460ff1690506000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e1c578573ffffffffffffffffffffffffffffffffffffffff16639dc29fac33876040518363ffffffff1660e01b8152600401610ce5929190612954565b600060405180830381600087803b158015610cff57600080fd5b505af1158015610d13573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5d57600080fd5b505afa158015610d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d95919061211b565b91508573ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ddd57600080fd5b505afa158015610df1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e15919061201f565b9050610f97565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e579190612939565b60206040518083038186803b158015610e6f57600080fd5b505afa158015610e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea791906120c9565b9050610ed63330888a73ffffffffffffffffffffffffffffffffffffffff1661180e909392919063ffffffff16565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f119190612939565b60206040518083038186803b158015610f2957600080fd5b505afa158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6191906120c9565b9050610f76828261189790919063ffffffff16565b96508773ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f84b445260a99044cc9529b3033663c078031a14e31f3c255ff02c62667bab14b8585888a604051610fe79493929190612d08565b60405180910390a3505050505050565b60006001820183511015611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612aba565b60405180910390fd5b60008260018501015190508091505092915050565b6000600482018351101561109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109590612aba565b60405180910390fd5b60008260048501015190508091505092915050565b600060208201835110156110fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f390612aba565b60405180910390fd5b60008260208501015190508091505092915050565b6000601482018351101561115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612aba565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b6060818301845110156111c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bd90612aba565b60405180910390fd5b60608215600081146111e357604051915060208201604052611234565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156112215780518352602083019250602081019050611204565b50868552601f19601f8301166040525050505b50809150509392505050565b60006112566000836110b390919063ffffffff16565b9050600061126e602084610ff790919063ffffffff16565b60ff169050600061128960218561105590919063ffffffff16565b9050600260009054906101000a900463ffffffff1663ffffffff168163ffffffff16116112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e290612b3a565b60405180910390fd5b6001807ffffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141901c018310611353576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134a90612b5a565b60405180910390fd5b6001821115611397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138e90612a7a565b60405180910390fd5b6000600260009054906101000a900463ffffffff16905081600260006101000a81548163ffffffff021916908363ffffffff1602179055506113d7611e10565b60405180606001604052808681526020018560ff168152602001600063ffffffff1681525090508060016000600260009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548163ffffffff021916908363ffffffff160217905550905050600260049054906101000a900463ffffffff164201600160008463ffffffff1663ffffffff16815260200190815260200160002060010160016101000a81548163ffffffff021916908363ffffffff160217905550806040516114e891906128bc565b6040518091039020600160008463ffffffff1663ffffffff16815260200190815260200160002060405161151c91906128d7565b60405180910390207f776a7721d091beb15fb219d7be3c92b83fa7c10428af15a7312461bc3bc52e0b60405160405180910390a3505050505050565b600061156e600483610ff790919063ffffffff16565b90506000611586600584610ff790919063ffffffff16565b9050600061159e60328561111190919063ffffffff16565b905060006115b6604686610ff790919063ffffffff16565b905060006115ce6067876110b390919063ffffffff16565b90508360ff168560ff161415611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090612c1a565b60405180910390fd5b600060149054906101000a900460ff1660ff168460ff1614611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612b9a565b60405180910390fd5b600060149054906101000a900460ff1660ff168260ff16146117c15760006116a26047886118e190919063ffffffff16565b9050600083826040516020016116b99291906128f2565b60405160208183030381529060405280519060200120905060006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561174c5761174982868561193f565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b81526004016117879291906129b4565b600060405180830381600087803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b50505050505050611806565b60006117d760538861111190919063ffffffff16565b905061180484838373ffffffffffffffffffffffffffffffffffffffff16611ae29092919063ffffffff16565b505b505050505050565b611891846323b872dd60e01b85858560405160240161182f9392919061297d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b68565b50505050565b60006118d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c2f565b905092915050565b6000602082018351101561192a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192190612aba565b60405180910390fd5b60008260208501015190508091505092915050565b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b81526004016119fe929190612cdf565b600060405180830381600087803b158015611a1857600080fd5b505af1158015611a2c573d6000803e3d6000fd5b50505050816004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b611b638363a9059cbb60e01b8484604051602401611b019291906129b4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611b68565b505050565b6060611bca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c8a9092919063ffffffff16565b9050600081511115611c2a5780806020019051810190611bea9190611fcd565b611c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2090612bfa565b60405180910390fd5b5b505050565b6000838311158290611c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6e91906129f8565b60405180910390fd5b5060008385039050809150509392505050565b6060611c998484600085611ca2565b90509392505050565b6060611cad85611dc5565b611cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce390612bda565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611d1691906128a5565b60006040518083038185875af1925050503d8060008114611d53576040519150601f19603f3d011682016040523d82523d6000602084013e611d58565b606091505b50915091508115611d6d578092505050611dbd565b600081511115611d805780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db491906129f8565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015611e0757506000801b8214155b92505050919050565b604051806060016040528060008152602001600060ff168152602001600063ffffffff1681525090565b600081359050611e4981612f20565b92915050565b600081519050611e5e81612f37565b92915050565b600081359050611e7381612f4e565b92915050565b600081519050611e8881612f4e565b92915050565b60008083601f840112611ea057600080fd5b8235905067ffffffffffffffff811115611eb957600080fd5b602083019150836001820283011115611ed157600080fd5b9250929050565b600081359050611ee781612f65565b92915050565b600081519050611efc81612f65565b92915050565b600081359050611f1181612f7c565b92915050565b600081359050611f2681612f93565b92915050565b600081519050611f3b81612f93565b92915050565b600060208284031215611f5357600080fd5b6000611f6184828501611e3a565b91505092915050565b60008060008060808587031215611f8057600080fd5b6000611f8e87828801611e3a565b9450506020611f9f87828801611ed8565b9350506040611fb087828801611e64565b9250506060611fc187828801611f17565b91505092959194509250565b600060208284031215611fdf57600080fd5b6000611fed84828501611e4f565b91505092915050565b60006020828403121561200857600080fd5b600061201684828501611e64565b91505092915050565b60006020828403121561203157600080fd5b600061203f84828501611e79565b91505092915050565b6000806040838503121561205b57600080fd5b600061206985828601611e64565b925050602061207a85828601611f17565b9150509250929050565b6000806020838503121561209757600080fd5b600083013567ffffffffffffffff8111156120b157600080fd5b6120bd85828601611e8e565b92509250509250929050565b6000602082840312156120db57600080fd5b60006120e984828501611eed565b91505092915050565b60006020828403121561210457600080fd5b600061211284828501611f02565b91505092915050565b60006020828403121561212d57600080fd5b600061213b84828501611f2c565b91505092915050565b60006121508383612834565b60208301905092915050565b60006121688383612852565b60208301905092915050565b6000612180838361287f565b60208301905092915050565b61219581612e15565b82525050565b6121a481612da6565b82525050565b6121b381612da6565b82525050565b6121c281612db8565b82525050565b6121d181612dc4565b82525050565b6121e86121e382612dc4565b612ecc565b82525050565b60006121f982612d4d565b6122038185612d63565b9350612213818560208601612e4b565b80840191505092915050565b600061222a82612d58565b6122348185612d6e565b9350612244818560208601612e4b565b61224d81612ee8565b840191505092915050565b6000612265601283612d6e565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b60006122a5601883612d6e565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b60006122e5602c83612d6e565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b600061234b601083612d6e565b91507f696e76616c6964207920706172697479000000000000000000000000000000006000830152602082019050919050565b600061238b603983612d6e565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b60006123f1601283612d6e565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000612431601883612d6e565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000612471600f83612d6e565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b60006124b1601583612d6e565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b60006124f1602b83612d6e565b91507f696e646578206f66206e657720677561726469616e20736574206d757374206260008301527f65203e2063757272656e740000000000000000000000000000000000000000006020830152604082019050919050565b6000612557602983612d6e565b91507f696e76616c6964206b657920666f722066617374205363686e6f72722076657260008301527f696669636174696f6e00000000000000000000000000000000000000000000006020830152604082019050919050565b60006125bd601483612d6e565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b60006125fd601983612d6e565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b600061263d601883612d6e565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b600061267d601d83612d6e565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b60006126bd602a83612d6e565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612723602683612d6e565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60008201600082015161278f8482612144565b93505060208201516127a18482612174565b93505060408201516127b3848261215c565b935050505050565b6000820160008083015490506127d081612e7e565b6127da8582612144565b945050600183015490506127ed81612e98565b6127f78582612174565b94505061280381612eb2565b61280d858261215c565b94505050505050565b61281f81612dee565b82525050565b61282e81612dee565b82525050565b61283d81612dee565b82525050565b61284c81612df8565b82525050565b61285b81612df8565b82525050565b61286a81612e08565b82525050565b61287981612e08565b82525050565b61288881612e08565b82525050565b61289f61289a82612e08565b612ed6565b82525050565b60006128b182846121ee565b915081905092915050565b60006128c8828461277c565b60608201915081905092915050565b60006128e382846127bb565b60608201915081905092915050565b60006128fe828561288e565b60018201915061290e82846121d7565b6020820191508190509392505050565b6000602082019050612933600083018461219b565b92915050565b600060208201905061294e600083018461218c565b92915050565b6000604082019050612969600083018561218c565b6129766020830184612816565b9392505050565b6000606082019050612992600083018661219b565b61299f602083018561219b565b6129ac6040830184612816565b949350505050565b60006040820190506129c9600083018561219b565b6129d66020830184612816565b9392505050565b60006020820190506129f260008301846121b9565b92915050565b60006020820190508181036000830152612a12818461221f565b905092915050565b60006020820190508181036000830152612a3381612258565b9050919050565b60006020820190508181036000830152612a5381612298565b9050919050565b60006020820190508181036000830152612a73816122d8565b9050919050565b60006020820190508181036000830152612a938161233e565b9050919050565b60006020820190508181036000830152612ab38161237e565b9050919050565b60006020820190508181036000830152612ad3816123e4565b9050919050565b60006020820190508181036000830152612af381612424565b9050919050565b60006020820190508181036000830152612b1381612464565b9050919050565b60006020820190508181036000830152612b33816124a4565b9050919050565b60006020820190508181036000830152612b53816124e4565b9050919050565b60006020820190508181036000830152612b738161254a565b9050919050565b60006020820190508181036000830152612b93816125b0565b9050919050565b60006020820190508181036000830152612bb3816125f0565b9050919050565b60006020820190508181036000830152612bd381612630565b9050919050565b60006020820190508181036000830152612bf381612670565b9050919050565b60006020820190508181036000830152612c13816126b0565b9050919050565b60006020820190508181036000830152612c3381612716565b9050919050565b600060a082019050612c4f6000830188612825565b612c5c6020830187612870565b612c696040830186612825565b612c766060830185612825565b612c8360808301846121aa565b9695505050505050565b6000606082019050612ca26000830186612816565b612caf6020830185612861565b612cbc6040830184612843565b949350505050565b6000602082019050612cd96000830184612843565b92915050565b6000604082019050612cf46000830185612861565b612d0160208301846121c8565b9392505050565b6000608082019050612d1d6000830187612861565b612d2a6020830186612861565b612d3760408301856121c8565b612d446060830184612816565b95945050505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612db182612dce565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612e2082612e27565b9050919050565b6000612e3282612e39565b9050919050565b6000612e4482612dce565b9050919050565b60005b83811015612e69578082015181840152602081019050612e4e565b83811115612e78576000848401525b50505050565b6000612e91612e8c83612f06565b612d7f565b9050919050565b6000612eab612ea683612f06565b612d99565b9050919050565b6000612ec5612ec083612f13565b612d89565b9050919050565b6000819050919050565b6000612ee182612ef9565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160001c9050919050565b60008160081c9050919050565b612f2981612da6565b8114612f3457600080fd5b50565b612f4081612db8565b8114612f4b57600080fd5b50565b612f5781612dc4565b8114612f6257600080fd5b50565b612f6e81612dee565b8114612f7957600080fd5b50565b612f8581612df8565b8114612f9057600080fd5b50565b612f9c81612e08565b8114612fa757600080fd5b5056fea264697066735822122047d9c8466a232ae962552bd67dd62980ed6d384b15b4bbc45385e966dcc4ef8d64736f6c634300060c0033"; - -export interface WormholeLibraryAddresses { - ["__Schnorr_______________________________"]: string; -} + "0x60806040526002600160146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b506040516200370b3803806200370b83398181016040528101906200005391906200033e565b600160008190555082600260008063ffffffff1681526020019081526020016000206000820151816000019080519060200190620000939291906200014b565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055509050506000600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200047c565b828054828255906000526020600020908101928215620001c7579160200282015b82811115620001c65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200016c565b5b509050620001d69190620001da565b5090565b5b808211156200021357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620001db565b5090565b600081519050620002288162000448565b92915050565b600082601f8301126200024057600080fd5b8151620002576200025182620003db565b620003ad565b915081818352602084019350602081019050838560208402820111156200027d57600080fd5b60005b83811015620002b1578162000296888262000217565b84526020840193506020830192505060018101905062000280565b5050505092915050565b600060408284031215620002ce57600080fd5b620002da6040620003ad565b9050600082015167ffffffffffffffff811115620002f757600080fd5b62000305848285016200022e565b60008301525060206200031b8482850162000327565b60208301525092915050565b600081519050620003388162000462565b92915050565b6000806000606084860312156200035457600080fd5b600084015167ffffffffffffffff8111156200036f57600080fd5b6200037d86828701620002bb565b9350506020620003908682870162000217565b9250506040620003a38682870162000327565b9150509250925092565b6000604051905081810181811067ffffffffffffffff82111715620003d157600080fd5b8060405250919050565b600067ffffffffffffffff821115620003f357600080fd5b602082029050602081019050919050565b6000620004118262000418565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600063ffffffff82169050919050565b620004538162000404565b81146200045f57600080fd5b50565b6200046d8162000438565b81146200047957600080fd5b50565b61327f806200048c6000396000f3fe6080604052600436106100955760003560e01c80637f04d9e6116100595780637f04d9e6146101f8578063822d82b31461022357806399da1d3c1461024e578063b6694c2a14610279578063f951975a146102b6576100d5565b806313cca1a9146101105780631a2be4da146101395780633bc0aee61461017657806342b0aefa1461019f57806358d62e46146101dc576100d5565b366100d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90612da0565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790612da0565b60405180910390fd5b34801561011c57600080fd5b5061013760048036038101906101329190612371565b6102f3565b005b34801561014557600080fd5b50610160600480360381019061015b9190612348565b610745565b60405161016d9190612cde565b60405180910390f35b34801561018257600080fd5b5061019d600480360381019061019891906124b2565b610765565b005b3480156101ab57600080fd5b506101c660048036038101906101c19190612520565b611091565b6040516101d39190612f82565b60405180910390f35b6101f660048036038101906101f19190612463565b6110bf565b005b34801561020457600080fd5b5061020d611269565b60405161021a9190612f82565b60405180910390f35b34801561022f57600080fd5b5061023861127f565b6040516102459190612f82565b60405180910390f35b34801561025a57600080fd5b50610263611295565b6040516102709190612c1f565b60405180910390f35b34801561028557600080fd5b506102a0600480360381019061029b9190612411565b6112bb565b6040516102ad9190612c1f565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190612520565b6112ee565b6040516102ea9190612f60565b60405180910390f35b60026000541415610339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033090612f40565b60405180910390fd5b60026000819055506000841415610385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037c90612e80565b60405180910390fd5b6000600160149054906101000a900460ff1690506000600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561055f578673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33886040518363ffffffff1660e01b8152600401610428929190612c55565b600060405180830381600087803b15801561044257600080fd5b505af1158015610456573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a057600080fd5b505afa1580156104b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d89190612549565b91508673ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052057600080fd5b505afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610558919061243a565b90506106da565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161059a9190612c3a565b60206040518083038186803b1580156105b257600080fd5b505afa1580156105c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ea91906124f7565b90506106193330898b73ffffffffffffffffffffffffffffffffffffffff166113db909392919063ffffffff16565b60008873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106549190612c3a565b60206040518083038186803b15801561066c57600080fd5b505afa158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a491906124f7565b90506106b9828261146490919063ffffffff16565b97508873ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f5742f26a345471409566883d5cac5a7d295eee7092e5be3a7d6c60bc2a3e24208685898b8960405161072c959493929190612fef565b60405180910390a3505060016000819055505050505050565b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a290612f40565b60405180910390fd5b6002600081905550600061080d600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b905060018160ff1614610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c90612e00565b60405180910390fd5b60006108af600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061150c90919063ffffffff16565b9050600061090b600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b60ff169050600081604202600601905060006109748288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061150c90919063ffffffff16565b905042600360049054906101000a900463ffffffff16820163ffffffff16116109d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c990612e20565b60405180910390fd5b6000610a3283848a8a9050038a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156a9092919063ffffffff16565b8051906020012090506004600082815260200190815260200160002060009054906101000a900460ff1615610a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9390612d80565b60405180910390fd5b610aa461215c565b600260008763ffffffff1663ffffffff16815260200190815260200160002060405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610b5357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b09575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816020015163ffffffff161480610ba6575042816020015163ffffffff16115b610be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdc90612ec0565b60405180910390fd5b846001600460038460000151510281610bfa57fe5b04011115610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490612e60565b60405180910390fd5b60005b85811015610eb9576000610ca7604283026006018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b90506000610d08604284026007018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061162c90919063ffffffff16565b90506000610d69604285026027018e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061162c90919063ffffffff16565b90506000610dca604286026047018f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b9050601b8101905085600001518460ff1681518110610de557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660018883868660405160008152602001604052604051610e269493929190612cf9565b6020604051602081039080840390855afa158015610e48573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f90612e40565b60405180910390fd5b505050508080600101915050610c40565b506000610f16600486018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114ae90919063ffffffff16565b90506060610f7e60058701600588018d8d9050038d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061156a9092919063ffffffff16565b905060018260ff161415610ffa57600360009054906101000a900463ffffffff1663ffffffff168863ffffffff1614610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390612dc0565b60405180910390fd5b610ff58161168a565b611050565b60108260ff1614156110145761100f81611908565b61104f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690612d60565b60405180910390fd5b5b60016004600086815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050505050505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b60026000541415611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc90612f40565b60405180910390fd5b60026000819055506000341415611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114890612e80565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156111ad57600080fd5b505af11580156111c1573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f5742f26a345471409566883d5cac5a7d295eee7092e5be3a7d6c60bc2a3e242084600160149054906101000a900460ff16873487604051611254959493929190612fef565b60405180910390a36001600081905550505050565b600360049054906101000a900463ffffffff1681565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112f661215c565b600260008363ffffffff1663ffffffff168152602001908152602001600020604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156113a557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161135b575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b61145e846323b872dd60e01b8585856040516024016113fc93929190612c7e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611bbe565b50505050565b60006114a683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c85565b905092915050565b600060018201835110156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee90612de0565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90612de0565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a990612de0565b60405180910390fd5b60608215600081146115cf57604051915060208201604052611620565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561160d57805183526020830192506020810190506115f0565b50868552601f19601f8301166040525050505b50809150509392505050565b60006020820183511015611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c90612de0565b60405180910390fd5b60008260208501015190508091505092915050565b60006116a060008361150c90919063ffffffff16565b905060006116b86004846114ae90919063ffffffff16565b905060608160ff1667ffffffffffffffff811180156116d657600080fd5b506040519080825280602002602001820160405280156117055781602001602082028036833780820191505090505b50905060005b8260ff168110156117885760006117316014830260050187611ce090919063ffffffff16565b90508083838151811061174057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061170b565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff1602179055506117c961215c565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020600082015181600001908051906020019061183592919061217c565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff166040516118f8929190612f9d565b60405180910390a1505050505050565b600061191e6004836114ae90919063ffffffff16565b905060006119366005846114ae90919063ffffffff16565b9050600061194e603285611ce090919063ffffffff16565b905060006119666046866114ae90919063ffffffff16565b9050600061197e606787611d4d90919063ffffffff16565b90508360ff168560ff1614156119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090612f20565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1790612ea0565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611b71576000611a5260478861162c90919063ffffffff16565b905060008382604051602001611a69929190612bf3565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afc57611af9828685611dab565b90505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611b37929190612cb5565b600060405180830381600087803b158015611b5157600080fd5b505af1158015611b65573d6000803e3d6000fd5b50505050505050611bb6565b6000611b87605388611ce090919063ffffffff16565b9050611bb484838373ffffffffffffffffffffffffffffffffffffffff16611f509092919063ffffffff16565b505b505050505050565b6060611c20826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611fd69092919063ffffffff16565b9050600081511115611c805780806020019051810190611c4091906123e8565b611c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7690612f00565b60405180910390fd5b5b505050565b6000838311158290611ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc49190612d3e565b60405180910390fd5b5060008385039050809150509392505050565b60006014820183511015611d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2090612de0565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b60006020820183511015611d96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8d90612de0565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250508173ffffffffffffffffffffffffffffffffffffffff166302a0958585856040518363ffffffff1660e01b8152600401611e6c929190612fc6565b600060405180830381600087803b158015611e8657600080fd5b505af1158015611e9a573d6000803e3d6000fd5b50505050816005600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550509392505050565b611fd18363a9059cbb60e01b8484604051602401611f6f929190612cb5565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611bbe565b505050565b6060611fe58484600085611fee565b90509392505050565b6060611ff985612111565b612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90612ee0565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516120629190612bdc565b60006040518083038185875af1925050503d806000811461209f576040519150601f19603f3d011682016040523d82523d6000602084013e6120a4565b606091505b509150915081156120b9578092505050612109565b6000815111156120cc5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121009190612d3e565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561215357506000801b8214155b92505050919050565b604051806040016040528060608152602001600063ffffffff1681525090565b8280548282559060005260206000209081019282156121f5579160200282015b828111156121f45782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061219c565b5b5090506122029190612206565b5090565b5b8082111561223d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612207565b5090565b600081359050612250816131bf565b92915050565b600081519050612265816131d6565b92915050565b60008135905061227a816131ed565b92915050565b60008151905061228f816131ed565b92915050565b60008083601f8401126122a757600080fd5b8235905067ffffffffffffffff8111156122c057600080fd5b6020830191508360018202830111156122d857600080fd5b9250929050565b6000813590506122ee81613204565b92915050565b60008151905061230381613204565b92915050565b6000813590506123188161321b565b92915050565b60008135905061232d81613232565b92915050565b60008151905061234281613232565b92915050565b60006020828403121561235a57600080fd5b600061236884828501612241565b91505092915050565b600080600080600060a0868803121561238957600080fd5b600061239788828901612241565b95505060206123a8888289016122df565b94505060406123b98882890161226b565b93505060606123ca8882890161231e565b92505060806123db88828901612309565b9150509295509295909350565b6000602082840312156123fa57600080fd5b600061240884828501612256565b91505092915050565b60006020828403121561242357600080fd5b60006124318482850161226b565b91505092915050565b60006020828403121561244c57600080fd5b600061245a84828501612280565b91505092915050565b60008060006060848603121561247857600080fd5b60006124868682870161226b565b93505060206124978682870161231e565b92505060406124a886828701612309565b9150509250925092565b600080602083850312156124c557600080fd5b600083013567ffffffffffffffff8111156124df57600080fd5b6124eb85828601612295565b92509250509250929050565b60006020828403121561250957600080fd5b6000612517848285016122f4565b91505092915050565b60006020828403121561253257600080fd5b600061254084828501612309565b91505092915050565b60006020828403121561255b57600080fd5b600061256984828501612333565b91505092915050565b600061257e8383612599565b60208301905092915050565b6125938161311c565b82525050565b6125a2816130ad565b82525050565b6125b1816130ad565b82525050565b60006125c282613052565b6125cc8185613080565b93506125d783613042565b8060005b838110156126085781516125ef8882612572565b97506125fa83613073565b9250506001810190506125db565b5085935050505092915050565b61261e816130bf565b82525050565b61262d816130cb565b82525050565b61264461263f826130cb565b613185565b82525050565b60006126558261305d565b61265f8185613091565b935061266f818560208601613152565b80840191505092915050565b600061268682613068565b612690818561309c565b93506126a0818560208601613152565b6126a9816131a1565b840191505092915050565b60006126c160128361309c565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b600061270160188361309c565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612741602c8361309c565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b60006127a760398361309c565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b600061280d60128361309c565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b600061284d60188361309c565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b600061288d600f8361309c565b91507f56414120686173206578706972656400000000000000000000000000000000006000830152602082019050919050565b60006128cd60158361309c565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061290d60098361309c565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b600061294d60148361309c565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b600061298d60198361309c565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006129cd60188361309c565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612a0d601d8361309c565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612a4d602a8361309c565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ab360268361309c565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b19601f8361309c565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006040830160008301518482036000860152612b6982826125b7565b9150506020830151612b7e6020860182612b98565b508091505092915050565b612b92816130f5565b82525050565b612ba1816130ff565b82525050565b612bb0816130ff565b82525050565b612bbf8161310f565b82525050565b612bd6612bd18261310f565b61318f565b82525050565b6000612be8828461264a565b915081905092915050565b6000612bff8285612bc5565b600182019150612c0f8284612633565b6020820191508190509392505050565b6000602082019050612c3460008301846125a8565b92915050565b6000602082019050612c4f600083018461258a565b92915050565b6000604082019050612c6a600083018561258a565b612c776020830184612b89565b9392505050565b6000606082019050612c9360008301866125a8565b612ca060208301856125a8565b612cad6040830184612b89565b949350505050565b6000604082019050612cca60008301856125a8565b612cd76020830184612b89565b9392505050565b6000602082019050612cf36000830184612615565b92915050565b6000608082019050612d0e6000830187612624565b612d1b6020830186612bb6565b612d286040830185612624565b612d356060830184612624565b95945050505050565b60006020820190508181036000830152612d58818461267b565b905092915050565b60006020820190508181036000830152612d79816126b4565b9050919050565b60006020820190508181036000830152612d99816126f4565b9050919050565b60006020820190508181036000830152612db981612734565b9050919050565b60006020820190508181036000830152612dd98161279a565b9050919050565b60006020820190508181036000830152612df981612800565b9050919050565b60006020820190508181036000830152612e1981612840565b9050919050565b60006020820190508181036000830152612e3981612880565b9050919050565b60006020820190508181036000830152612e59816128c0565b9050919050565b60006020820190508181036000830152612e7981612900565b9050919050565b60006020820190508181036000830152612e9981612940565b9050919050565b60006020820190508181036000830152612eb981612980565b9050919050565b60006020820190508181036000830152612ed9816129c0565b9050919050565b60006020820190508181036000830152612ef981612a00565b9050919050565b60006020820190508181036000830152612f1981612a40565b9050919050565b60006020820190508181036000830152612f3981612aa6565b9050919050565b60006020820190508181036000830152612f5981612b0c565b9050919050565b60006020820190508181036000830152612f7a8184612b4c565b905092915050565b6000602082019050612f976000830184612ba7565b92915050565b6000604082019050612fb26000830185612ba7565b612fbf6020830184612ba7565b9392505050565b6000604082019050612fdb6000830185612bb6565b612fe86020830184612624565b9392505050565b600060a0820190506130046000830188612bb6565b6130116020830187612bb6565b61301e6040830186612624565b61302b6060830185612b89565b6130386080830184612ba7565b9695505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006130b8826130d5565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006131278261312e565b9050919050565b600061313982613140565b9050919050565b600061314b826130d5565b9050919050565b60005b83811015613170578082015181840152602081019050613155565b8381111561317f576000848401525b50505050565b6000819050919050565b600061319a826131b2565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b6131c8816130ad565b81146131d357600080fd5b50565b6131df816130bf565b81146131ea57600080fd5b50565b6131f6816130cb565b811461320157600080fd5b50565b61320d816130f5565b811461321857600080fd5b50565b613224816130ff565b811461322f57600080fd5b50565b61323b8161310f565b811461324657600080fd5b5056fea2646970667358221220093e64f2de68a8ba56b15335745c5182b42d2cffc846382a42044fbb6a6793ec64736f6c634300060c0033"; diff --git a/web/src/pages/Transfer.tsx b/web/src/pages/Transfer.tsx index c1410072..c53196fc 100644 --- a/web/src/pages/Transfer.tsx +++ b/web/src/pages/Transfer.tsx @@ -14,6 +14,7 @@ import {BridgeContext} from "../providers/BridgeContext"; import {AssetMeta, SolanaBridge} from "../utils/bridge"; import KeyContext from "../providers/KeyContext"; import {FormInstance} from "antd/lib/form"; +import SplBalances from "../components/SplBalances"; // @ts-ignore @@ -29,11 +30,12 @@ async function lockAssets(asset: string, let wh = WormholeFactory.connect(BRIDGE_ADDRESS, signer); try { message.loading({content: "Signing transaction...", key: "eth_tx", duration: 1000},) - let res = await wh.lockAssets(asset, amount, recipient, target_chain) + let res = await wh.lockAssets(asset, amount, recipient, target_chain, 10) message.loading({content: "Waiting for transaction to be mined...", key: "eth_tx", duration: 1000}) await res.wait(1); message.success({content: "Transfer on ETH succeeded!", key: "eth_tx"}) } catch (e) { + console.log(e) message.error({content: "Transfer failed", key: "eth_tx"}) } } @@ -102,6 +104,8 @@ function Transfer() { let [wrappedMint, setWrappedMint] = useState("") let [recipient, setRecipient] = useState("") + let [transacting, setTransacting] = useState(false); + let formRef = React.createRef(); useEffect(() => { @@ -137,7 +141,7 @@ function Transfer() { } } fetchBalance(address) - }, [address]) + }, [address, transacting]) useEffect(() => { if (!addressValid) { @@ -184,10 +188,15 @@ function Transfer() {
{ let recipient = new solanaWeb3.PublicKey(values["recipient"]).toBuffer() let transferAmount = new BigNumber(values["amount"]).mul(new BigNumber(10).pow(coinInfo.decimals)); + setTransacting(true) if (coinInfo.allowance.gte(amount) || coinInfo.isWrapped) { - lockAssets(values["address"], transferAmount, recipient, values["target_chain"]) + lockAssets(values["address"], transferAmount, recipient, values["target_chain"]).finally(() => { + setTransacting(false) + }) } else { - approveAssets(values["address"], transferAmount) + approveAssets(values["address"], transferAmount).finally(() => { + setTransacting(false) + }) } }} style={{width: "100%"}} ref={formRef} layout={"vertical"}> @@ -206,7 +215,7 @@ function Transfer() { - Solana @@ -220,7 +229,8 @@ function Transfer() { }}/> - @@ -264,6 +274,11 @@ function Transfer() { + + + + + ); } diff --git a/web/src/pages/TransferSolana.tsx b/web/src/pages/TransferSolana.tsx index 79d8fbef..d92eba36 100644 --- a/web/src/pages/TransferSolana.tsx +++ b/web/src/pages/TransferSolana.tsx @@ -115,7 +115,7 @@ function TransferSolana() { - Ethereum