From 7dc309c490df48dd56aa7ba0eb20d37ee9d2b6ab Mon Sep 17 00:00:00 2001 From: Hendrik Hofstadt Date: Sun, 30 Aug 2020 11:25:02 +0200 Subject: [PATCH] web: update ABI --- web/contracts/Wormhole.json | 12003 +++++++++++++++---------- web/src/contracts/Wormhole.d.ts | 17 +- web/src/contracts/WormholeFactory.ts | 7 +- web/src/pages/Transfer.tsx | 2 +- 4 files changed, 7233 insertions(+), 4796 deletions(-) diff --git a/web/contracts/Wormhole.json b/web/contracts/Wormhole.json index bf24e9b2..12a599ee 100644 --- a/web/contracts/Wormhole.json +++ b/web/contracts/Wormhole.json @@ -301,6 +301,11 @@ "internalType": "uint32", "name": "nonce", "type": "uint32" + }, + { + "internalType": "bool", + "name": "refund_dust", + "type": "bool" } ], "name": "lockAssets", @@ -332,25 +337,25 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"initial_guardian_set\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"wrapped_asset_master\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_guardian_set_expirity\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"oldGuardianIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newGuardianIndex\",\"type\":\"uint32\"}],\"name\":\"LogGuardianSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"token_chain\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"token_decimals\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"LogTokensLocked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"consumedVAAs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"idx\",\"type\":\"uint32\"}],\"name\":\"getGuardianSet\",\"outputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"gs\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian_set_expirity\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian_set_index\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"guardian_sets\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isWrappedAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"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\":\"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\":\"0x1415692227a00f25800adfbfc266790a6fa1cb7603cd7140c82896edac01ecc2\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://41ac673638b9c36e57e0c13d05ccf278e63dda2026ae13bb19fbe4d6ba9a3a00\",\"dweb:/ipfs/QmcS7zasHQJVRVAoZtSHZcwHub2w1FRsAEK88YsPPQrY6U\"]},\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/WrappedAsset.sol\":{\"keccak256\":\"0xf7ce817c18d74da0e2b15fed25b3e7dcb79cc41f422f641bb863f9a40d62ffcf\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://6c931162370f9d24a56743a3f769734e2d7d00c9fc7fcceec81c8765b17ab4b6\",\"dweb:/ipfs/QmQfs7Td14iy6fGF56PrGYq7VKUQtYqjhjebQ2Um1E6fUT\"]},\"@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/ERC20.sol\":{\"keccak256\":\"0xf204d98eef08edacf5a02a2af1516ea4febdb6aba7a1ae5ac8deb6e568fd3dbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4dea62bffbd180772a6cfe7cb90e3a045c52d6b502bdb2fdff83193da42d8d0\",\"dweb:/ipfs/QmW8qGZ5nngajmv5Aamdrpkeuq7S5YCVaR7rtcqNekKHtK\"]},\"@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": "0x60806040526002600160146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b50604051620037993803806200379983398181016040528101906200005391906200033e565b600160008190555082600260008063ffffffff1681526020019081526020016000206000820151816000019080519060200190620000939291906200014b565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055509050506000600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200047c565b828054828255906000526020600020908101928215620001c7579160200282015b82811115620001c65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200016c565b5b509050620001d69190620001da565b5090565b5b808211156200021357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620001db565b5090565b600081519050620002288162000448565b92915050565b600082601f8301126200024057600080fd5b8151620002576200025182620003db565b620003ad565b915081818352602084019350602081019050838560208402820111156200027d57600080fd5b60005b83811015620002b1578162000296888262000217565b84526020840193506020830192505060018101905062000280565b5050505092915050565b600060408284031215620002ce57600080fd5b620002da6040620003ad565b9050600082015167ffffffffffffffff811115620002f757600080fd5b62000305848285016200022e565b60008301525060206200031b8482850162000327565b60208301525092915050565b600081519050620003388162000462565b92915050565b6000806000606084860312156200035457600080fd5b600084015167ffffffffffffffff8111156200036f57600080fd5b6200037d86828701620002bb565b9350506020620003908682870162000217565b9250506040620003a38682870162000327565b9150509250925092565b6000604051905081810181811067ffffffffffffffff82111715620003d157600080fd5b8060405250919050565b600067ffffffffffffffff821115620003f357600080fd5b602082029050602081019050919050565b6000620004118262000418565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600063ffffffff82169050919050565b620004538162000404565b81146200045f57600080fd5b50565b6200046d8162000438565b81146200047957600080fd5b50565b61330d806200048c6000396000f3fe6080604052600436106100a05760003560e01c806358d62e461161006457806358d62e4614610212578063822d82b31461022e57806399da1d3c14610259578063a31fe40914610284578063b6694c2a146102c1578063f951975a146102fe576100e0565b806313cca1a91461011b5780631a2be4da146101445780633bc0aee61461018157806342b0aefa146101aa5780634db47840146101e7576100e0565b366100e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d790612dbf565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011290612dbf565b60405180910390fd5b34801561012757600080fd5b50610142600480360381019061013d91906123c1565b61033b565b005b34801561015057600080fd5b5061016b60048036038101906101669190612398565b61080c565b6040516101789190612cfd565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a39190612502565b61082c565b005b3480156101b657600080fd5b506101d160048036038101906101cc9190612570565b6110a0565b6040516101de9190612f81565b60405180910390f35b3480156101f357600080fd5b506101fc6110ce565b6040516102099190612f81565b60405180910390f35b61022c600480360381019061022791906124b3565b6110e4565b005b34801561023a57600080fd5b50610243611291565b6040516102509190612f81565b60405180910390f35b34801561026557600080fd5b5061026e6112a7565b60405161027b9190612c3e565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a69190612461565b6112cd565b6040516102b89190612cfd565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e39190612461565b6112ed565b6040516102f59190612c3e565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612570565b611320565b6040516103329190612f5f565b60405180910390f35b60026000541415610381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037890612f3f565b60405180910390fd5b600260008190555060008414156103cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c490612e7f565b60405180910390fd5b6000600160149054906101000a900460ff1690506000600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105a7578673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33886040518363ffffffff1660e01b8152600401610470929190612c74565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e857600080fd5b505afa1580156104fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105209190612599565b91508673ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561056857600080fd5b505afa15801561057c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a0919061248a565b9050610722565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105e29190612c59565b60206040518083038186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190612547565b90506106613330898b73ffffffffffffffffffffffffffffffffffffffff1661140d909392919063ffffffff16565b60008873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161069c9190612c59565b60206040518083038186803b1580156106b457600080fd5b505afa1580156106c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ec9190612547565b9050610701828261149690919063ffffffff16565b97508873ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab886858b73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156107a657600080fd5b505afa1580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de9190612599565b8a8c8a6040516107f39695949392919061305d565b60405180910390a3505060016000819055505050505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60026000541415610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086990612f3f565b60405180910390fd5b600260008190555060006108d4600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b905060018160ff161461091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390612e1f565b60405180910390fd5b6000610976600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061153e90919063ffffffff16565b905060006109d2600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b60ff16905060008160420260060190506000610a428283898990500389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061159c9092919063ffffffff16565b8051906020012090506004600082815260200190815260200160002060009054906101000a900460ff1615610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390612d9f565b60405180910390fd5b610ab46121ac565b600260008663ffffffff1663ffffffff16815260200190815260200160002060405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610b6357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b19575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816020015163ffffffff161480610bb6575042816020015163ffffffff16115b610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90612ebf565b60405180910390fd5b8360016003600484600001515181610c0957fe5b0402011115610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490612e5f565b60405180910390fd5b60005b84811015610ec9576000610cb7604283026006018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b90506000610d18604284026007018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061165e90919063ffffffff16565b90506000610d79604285026027018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061165e90919063ffffffff16565b90506000610dda604286026047018e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b9050601b8101905085600001518460ff1681518110610df557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660018883868660405160008152602001604052604051610e369493929190612d18565b6020604051602081039080840390855afa158015610e58573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614610eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaf90612e3f565b60405180910390fd5b505050508080600101915050610c50565b506000610f26600485018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b90506060610f8e60058601600587018c8c9050038c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061159c9092919063ffffffff16565b905060018260ff16141561100a57600360009054906101000a900463ffffffff1663ffffffff168763ffffffff1614610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390612ddf565b60405180910390fd5b611005816116bc565b611060565b60108260ff1614156110245761101f8161193a565b61105f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690612d7f565b60405180910390fd5b5b60016004600086815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b600360049054906101000a900463ffffffff1681565b6002600054141561112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190612f3f565b60405180910390fd5b60026000819055506000341415611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90612e7f565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156111d257600080fd5b505af11580156111e6573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab884600160149054906101000a900460ff16601288348860405161127c96959493929190612ffc565b60405180910390a36001600081905550505050565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113286121ac565b600260008363ffffffff1663ffffffff168152602001908152602001600020604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156113d757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161138d575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b611490846323b872dd60e01b85858560405160240161142e93929190612c9d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611c0a565b50505050565b60006114d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cd1565b905092915050565b60006001820183511015611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152090612dff565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90612dff565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90612dff565b60405180910390fd5b606082156000811461160157604051915060208201604052611652565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561163f5780518352602083019250602081019050611622565b50868552601f19601f8301166040525050505b50809150509392505050565b600060208201835110156116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e90612dff565b60405180910390fd5b60008260208501015190508091505092915050565b60006116d260008361153e90919063ffffffff16565b905060006116ea6004846114e090919063ffffffff16565b905060608160ff1667ffffffffffffffff8111801561170857600080fd5b506040519080825280602002602001820160405280156117375781602001602082028036833780820191505090505b50905060005b8260ff168110156117ba5760006117636014830260050187611d2c90919063ffffffff16565b90508083838151811061177257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061173d565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff1602179055506117fb6121ac565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060008201518160000190805190602001906118679291906121cc565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff1660405161192a929190612f9c565b60405180910390a1505050505050565b60006119506004836114e090919063ffffffff16565b905060006119686005846114e090919063ffffffff16565b90506000611980603285611d2c90919063ffffffff16565b905060006119986046866114e090919063ffffffff16565b905060006119b0606887611d9990919063ffffffff16565b90508360ff168560ff1614156119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290612f1f565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4990612e9f565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611bbd576000611a8460478861165e90919063ffffffff16565b905060008382604051602001611a9b929190612c12565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b48576000611b3660678b6114e090919063ffffffff16565b9050611b4483878684611df7565b9150505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611b83929190612cd4565b600060405180830381600087803b158015611b9d57600080fd5b505af1158015611bb1573d6000803e3d6000fd5b50505050505050611c02565b6000611bd3605388611d2c90919063ffffffff16565b9050611c0084838373ffffffffffffffffffffffffffffffffffffffff16611fa09092919063ffffffff16565b505b505050505050565b6060611c6c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166120269092919063ffffffff16565b9050600081511115611ccc5780806020019051810190611c8c9190612438565b611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc290612eff565b60405180910390fd5b5b505050565b6000838311158290611d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d109190612d5d565b60405180910390fd5b5060008385039050809150509392505050565b60006014820183511015611d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6c90612dff565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b60006020820183511015611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd990612dff565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152866037826000f59250508173ffffffffffffffffffffffffffffffffffffffff1663a7a2d3fb8686866040518463ffffffff1660e01b8152600401611ebb93929190612fc5565b600060405180830381600087803b158015611ed557600080fd5b505af1158015611ee9573d6000803e3d6000fd5b50505050816005600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050949350505050565b6120218363a9059cbb60e01b8484604051602401611fbf929190612cd4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611c0a565b505050565b6060612035848460008561203e565b90509392505050565b606061204985612161565b612088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207f90612edf565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516120b29190612bfb565b60006040518083038185875af1925050503d80600081146120ef576040519150601f19603f3d011682016040523d82523d6000602084013e6120f4565b606091505b50915091508115612109578092505050612159565b60008151111561211c5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121509190612d5d565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156121a357506000801b8214155b92505050919050565b604051806040016040528060608152602001600063ffffffff1681525090565b828054828255906000526020600020908101928215612245579160200282015b828111156122445782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906121ec565b5b5090506122529190612256565b5090565b5b8082111561228d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612257565b5090565b6000813590506122a08161324d565b92915050565b6000815190506122b581613264565b92915050565b6000813590506122ca8161327b565b92915050565b6000815190506122df8161327b565b92915050565b60008083601f8401126122f757600080fd5b8235905067ffffffffffffffff81111561231057600080fd5b60208301915083600182028301111561232857600080fd5b9250929050565b60008135905061233e81613292565b92915050565b60008151905061235381613292565b92915050565b600081359050612368816132a9565b92915050565b60008135905061237d816132c0565b92915050565b600081519050612392816132c0565b92915050565b6000602082840312156123aa57600080fd5b60006123b884828501612291565b91505092915050565b600080600080600060a086880312156123d957600080fd5b60006123e788828901612291565b95505060206123f88882890161232f565b9450506040612409888289016122bb565b935050606061241a8882890161236e565b925050608061242b88828901612359565b9150509295509295909350565b60006020828403121561244a57600080fd5b6000612458848285016122a6565b91505092915050565b60006020828403121561247357600080fd5b6000612481848285016122bb565b91505092915050565b60006020828403121561249c57600080fd5b60006124aa848285016122d0565b91505092915050565b6000806000606084860312156124c857600080fd5b60006124d6868287016122bb565b93505060206124e78682870161236e565b92505060406124f886828701612359565b9150509250925092565b6000806020838503121561251557600080fd5b600083013567ffffffffffffffff81111561252f57600080fd5b61253b858286016122e5565b92509250509250929050565b60006020828403121561255957600080fd5b600061256784828501612344565b91505092915050565b60006020828403121561258257600080fd5b600061259084828501612359565b91505092915050565b6000602082840312156125ab57600080fd5b60006125b984828501612383565b91505092915050565b60006125ce83836125e9565b60208301905092915050565b6125e381613198565b82525050565b6125f281613129565b82525050565b61260181613129565b82525050565b6000612612826130ce565b61261c81856130fc565b9350612627836130be565b8060005b8381101561265857815161263f88826125c2565b975061264a836130ef565b92505060018101905061262b565b5085935050505092915050565b61266e8161313b565b82525050565b61267d81613147565b82525050565b61269461268f82613147565b613213565b82525050565b60006126a5826130d9565b6126af818561310d565b93506126bf8185602086016131e0565b80840191505092915050565b6126d4816131aa565b82525050565b60006126e5826130e4565b6126ef8185613118565b93506126ff8185602086016131e0565b6127088161322f565b840191505092915050565b6000612720601283613118565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000612760601883613118565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b60006127a0602c83613118565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b6000612806603983613118565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b600061286c601283613118565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b60006128ac601883613118565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b60006128ec601583613118565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061292c600983613118565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b600061296c601483613118565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b60006129ac601983613118565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006129ec601883613118565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612a2c601d83613118565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612a6c602a83613118565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ad2602683613118565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b38601f83613118565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006040830160008301518482036000860152612b888282612607565b9150506020830151612b9d6020860182612bb7565b508091505092915050565b612bb181613171565b82525050565b612bc08161317b565b82525050565b612bcf8161317b565b82525050565b612bde8161318b565b82525050565b612bf5612bf08261318b565b61321d565b82525050565b6000612c07828461269a565b915081905092915050565b6000612c1e8285612be4565b600182019150612c2e8284612683565b6020820191508190509392505050565b6000602082019050612c5360008301846125f8565b92915050565b6000602082019050612c6e60008301846125da565b92915050565b6000604082019050612c8960008301856125da565b612c966020830184612ba8565b9392505050565b6000606082019050612cb260008301866125f8565b612cbf60208301856125f8565b612ccc6040830184612ba8565b949350505050565b6000604082019050612ce960008301856125f8565b612cf66020830184612ba8565b9392505050565b6000602082019050612d126000830184612665565b92915050565b6000608082019050612d2d6000830187612674565b612d3a6020830186612bd5565b612d476040830185612674565b612d546060830184612674565b95945050505050565b60006020820190508181036000830152612d7781846126da565b905092915050565b60006020820190508181036000830152612d9881612713565b9050919050565b60006020820190508181036000830152612db881612753565b9050919050565b60006020820190508181036000830152612dd881612793565b9050919050565b60006020820190508181036000830152612df8816127f9565b9050919050565b60006020820190508181036000830152612e188161285f565b9050919050565b60006020820190508181036000830152612e388161289f565b9050919050565b60006020820190508181036000830152612e58816128df565b9050919050565b60006020820190508181036000830152612e788161291f565b9050919050565b60006020820190508181036000830152612e988161295f565b9050919050565b60006020820190508181036000830152612eb88161299f565b9050919050565b60006020820190508181036000830152612ed8816129df565b9050919050565b60006020820190508181036000830152612ef881612a1f565b9050919050565b60006020820190508181036000830152612f1881612a5f565b9050919050565b60006020820190508181036000830152612f3881612ac5565b9050919050565b60006020820190508181036000830152612f5881612b2b565b9050919050565b60006020820190508181036000830152612f798184612b6b565b905092915050565b6000602082019050612f966000830184612bc6565b92915050565b6000604082019050612fb16000830185612bc6565b612fbe6020830184612bc6565b9392505050565b6000606082019050612fda6000830186612bd5565b612fe76020830185612674565b612ff46040830184612bd5565b949350505050565b600060c0820190506130116000830189612bd5565b61301e6020830188612bd5565b61302b60408301876126cb565b6130386060830186612674565b6130456080830185612ba8565b61305260a0830184612bc6565b979650505050505050565b600060c0820190506130726000830189612bd5565b61307f6020830188612bd5565b61308c6040830187612bd5565b6130996060830186612674565b6130a66080830185612ba8565b6130b360a0830184612bc6565b979650505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061313482613151565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006131a3826131bc565b9050919050565b60006131b58261318b565b9050919050565b60006131c7826131ce565b9050919050565b60006131d982613151565b9050919050565b60005b838110156131fe5780820151818401526020810190506131e3565b8381111561320d576000848401525b50505050565b6000819050919050565b600061322882613240565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b61325681613129565b811461326157600080fd5b50565b61326d8161313b565b811461327857600080fd5b50565b61328481613147565b811461328f57600080fd5b50565b61329b81613171565b81146132a657600080fd5b50565b6132b28161317b565b81146132bd57600080fd5b50565b6132c98161318b565b81146132d457600080fd5b5056fea26469706673582212208f3f419adeb7ca3cd853715b74fc3a8cacdc215c41169446b0565304bd3fa34364736f6c634300060c0033", - "deployedBytecode": "0x6080604052600436106100a05760003560e01c806358d62e461161006457806358d62e4614610212578063822d82b31461022e57806399da1d3c14610259578063a31fe40914610284578063b6694c2a146102c1578063f951975a146102fe576100e0565b806313cca1a91461011b5780631a2be4da146101445780633bc0aee61461018157806342b0aefa146101aa5780634db47840146101e7576100e0565b366100e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d790612dbf565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011290612dbf565b60405180910390fd5b34801561012757600080fd5b50610142600480360381019061013d91906123c1565b61033b565b005b34801561015057600080fd5b5061016b60048036038101906101669190612398565b61080c565b6040516101789190612cfd565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a39190612502565b61082c565b005b3480156101b657600080fd5b506101d160048036038101906101cc9190612570565b6110a0565b6040516101de9190612f81565b60405180910390f35b3480156101f357600080fd5b506101fc6110ce565b6040516102099190612f81565b60405180910390f35b61022c600480360381019061022791906124b3565b6110e4565b005b34801561023a57600080fd5b50610243611291565b6040516102509190612f81565b60405180910390f35b34801561026557600080fd5b5061026e6112a7565b60405161027b9190612c3e565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a69190612461565b6112cd565b6040516102b89190612cfd565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e39190612461565b6112ed565b6040516102f59190612c3e565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612570565b611320565b6040516103329190612f5f565b60405180910390f35b60026000541415610381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037890612f3f565b60405180910390fd5b600260008190555060008414156103cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c490612e7f565b60405180910390fd5b6000600160149054906101000a900460ff1690506000600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105a7578673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33886040518363ffffffff1660e01b8152600401610470929190612c74565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e857600080fd5b505afa1580156104fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105209190612599565b91508673ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561056857600080fd5b505afa15801561057c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a0919061248a565b9050610722565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105e29190612c59565b60206040518083038186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190612547565b90506106613330898b73ffffffffffffffffffffffffffffffffffffffff1661140d909392919063ffffffff16565b60008873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161069c9190612c59565b60206040518083038186803b1580156106b457600080fd5b505afa1580156106c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ec9190612547565b9050610701828261149690919063ffffffff16565b97508873ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab886858b73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156107a657600080fd5b505afa1580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de9190612599565b8a8c8a6040516107f39695949392919061305d565b60405180910390a3505060016000819055505050505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60026000541415610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086990612f3f565b60405180910390fd5b600260008190555060006108d4600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b905060018160ff161461091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390612e1f565b60405180910390fd5b6000610976600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061153e90919063ffffffff16565b905060006109d2600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b60ff16905060008160420260060190506000610a428283898990500389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061159c9092919063ffffffff16565b8051906020012090506004600082815260200190815260200160002060009054906101000a900460ff1615610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390612d9f565b60405180910390fd5b610ab46121ac565b600260008663ffffffff1663ffffffff16815260200190815260200160002060405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610b6357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b19575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816020015163ffffffff161480610bb6575042816020015163ffffffff16115b610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90612ebf565b60405180910390fd5b8360016003600484600001515181610c0957fe5b0402011115610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490612e5f565b60405180910390fd5b60005b84811015610ec9576000610cb7604283026006018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b90506000610d18604284026007018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061165e90919063ffffffff16565b90506000610d79604285026027018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061165e90919063ffffffff16565b90506000610dda604286026047018e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b9050601b8101905085600001518460ff1681518110610df557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660018883868660405160008152602001604052604051610e369493929190612d18565b6020604051602081039080840390855afa158015610e58573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614610eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaf90612e3f565b60405180910390fd5b505050508080600101915050610c50565b506000610f26600485018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b90506060610f8e60058601600587018c8c9050038c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061159c9092919063ffffffff16565b905060018260ff16141561100a57600360009054906101000a900463ffffffff1663ffffffff168763ffffffff1614610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390612ddf565b60405180910390fd5b611005816116bc565b611060565b60108260ff1614156110245761101f8161193a565b61105f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690612d7f565b60405180910390fd5b5b60016004600086815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b600360049054906101000a900463ffffffff1681565b6002600054141561112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190612f3f565b60405180910390fd5b60026000819055506000341415611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90612e7f565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156111d257600080fd5b505af11580156111e6573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab884600160149054906101000a900460ff16601288348860405161127c96959493929190612ffc565b60405180910390a36001600081905550505050565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113286121ac565b600260008363ffffffff1663ffffffff168152602001908152602001600020604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156113d757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161138d575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b611490846323b872dd60e01b85858560405160240161142e93929190612c9d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611c0a565b50505050565b60006114d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cd1565b905092915050565b60006001820183511015611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152090612dff565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90612dff565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90612dff565b60405180910390fd5b606082156000811461160157604051915060208201604052611652565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561163f5780518352602083019250602081019050611622565b50868552601f19601f8301166040525050505b50809150509392505050565b600060208201835110156116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e90612dff565b60405180910390fd5b60008260208501015190508091505092915050565b60006116d260008361153e90919063ffffffff16565b905060006116ea6004846114e090919063ffffffff16565b905060608160ff1667ffffffffffffffff8111801561170857600080fd5b506040519080825280602002602001820160405280156117375781602001602082028036833780820191505090505b50905060005b8260ff168110156117ba5760006117636014830260050187611d2c90919063ffffffff16565b90508083838151811061177257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061173d565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff1602179055506117fb6121ac565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060008201518160000190805190602001906118679291906121cc565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff1660405161192a929190612f9c565b60405180910390a1505050505050565b60006119506004836114e090919063ffffffff16565b905060006119686005846114e090919063ffffffff16565b90506000611980603285611d2c90919063ffffffff16565b905060006119986046866114e090919063ffffffff16565b905060006119b0606887611d9990919063ffffffff16565b90508360ff168560ff1614156119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290612f1f565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4990612e9f565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611bbd576000611a8460478861165e90919063ffffffff16565b905060008382604051602001611a9b929190612c12565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b48576000611b3660678b6114e090919063ffffffff16565b9050611b4483878684611df7565b9150505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611b83929190612cd4565b600060405180830381600087803b158015611b9d57600080fd5b505af1158015611bb1573d6000803e3d6000fd5b50505050505050611c02565b6000611bd3605388611d2c90919063ffffffff16565b9050611c0084838373ffffffffffffffffffffffffffffffffffffffff16611fa09092919063ffffffff16565b505b505050505050565b6060611c6c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166120269092919063ffffffff16565b9050600081511115611ccc5780806020019051810190611c8c9190612438565b611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc290612eff565b60405180910390fd5b5b505050565b6000838311158290611d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d109190612d5d565b60405180910390fd5b5060008385039050809150509392505050565b60006014820183511015611d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6c90612dff565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b60006020820183511015611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd990612dff565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152866037826000f59250508173ffffffffffffffffffffffffffffffffffffffff1663a7a2d3fb8686866040518463ffffffff1660e01b8152600401611ebb93929190612fc5565b600060405180830381600087803b158015611ed557600080fd5b505af1158015611ee9573d6000803e3d6000fd5b50505050816005600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050949350505050565b6120218363a9059cbb60e01b8484604051602401611fbf929190612cd4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611c0a565b505050565b6060612035848460008561203e565b90509392505050565b606061204985612161565b612088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207f90612edf565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516120b29190612bfb565b60006040518083038185875af1925050503d80600081146120ef576040519150601f19603f3d011682016040523d82523d6000602084013e6120f4565b606091505b50915091508115612109578092505050612159565b60008151111561211c5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121509190612d5d565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156121a357506000801b8214155b92505050919050565b604051806040016040528060608152602001600063ffffffff1681525090565b828054828255906000526020600020908101928215612245579160200282015b828111156122445782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906121ec565b5b5090506122529190612256565b5090565b5b8082111561228d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612257565b5090565b6000813590506122a08161324d565b92915050565b6000815190506122b581613264565b92915050565b6000813590506122ca8161327b565b92915050565b6000815190506122df8161327b565b92915050565b60008083601f8401126122f757600080fd5b8235905067ffffffffffffffff81111561231057600080fd5b60208301915083600182028301111561232857600080fd5b9250929050565b60008135905061233e81613292565b92915050565b60008151905061235381613292565b92915050565b600081359050612368816132a9565b92915050565b60008135905061237d816132c0565b92915050565b600081519050612392816132c0565b92915050565b6000602082840312156123aa57600080fd5b60006123b884828501612291565b91505092915050565b600080600080600060a086880312156123d957600080fd5b60006123e788828901612291565b95505060206123f88882890161232f565b9450506040612409888289016122bb565b935050606061241a8882890161236e565b925050608061242b88828901612359565b9150509295509295909350565b60006020828403121561244a57600080fd5b6000612458848285016122a6565b91505092915050565b60006020828403121561247357600080fd5b6000612481848285016122bb565b91505092915050565b60006020828403121561249c57600080fd5b60006124aa848285016122d0565b91505092915050565b6000806000606084860312156124c857600080fd5b60006124d6868287016122bb565b93505060206124e78682870161236e565b92505060406124f886828701612359565b9150509250925092565b6000806020838503121561251557600080fd5b600083013567ffffffffffffffff81111561252f57600080fd5b61253b858286016122e5565b92509250509250929050565b60006020828403121561255957600080fd5b600061256784828501612344565b91505092915050565b60006020828403121561258257600080fd5b600061259084828501612359565b91505092915050565b6000602082840312156125ab57600080fd5b60006125b984828501612383565b91505092915050565b60006125ce83836125e9565b60208301905092915050565b6125e381613198565b82525050565b6125f281613129565b82525050565b61260181613129565b82525050565b6000612612826130ce565b61261c81856130fc565b9350612627836130be565b8060005b8381101561265857815161263f88826125c2565b975061264a836130ef565b92505060018101905061262b565b5085935050505092915050565b61266e8161313b565b82525050565b61267d81613147565b82525050565b61269461268f82613147565b613213565b82525050565b60006126a5826130d9565b6126af818561310d565b93506126bf8185602086016131e0565b80840191505092915050565b6126d4816131aa565b82525050565b60006126e5826130e4565b6126ef8185613118565b93506126ff8185602086016131e0565b6127088161322f565b840191505092915050565b6000612720601283613118565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000612760601883613118565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b60006127a0602c83613118565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b6000612806603983613118565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b600061286c601283613118565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b60006128ac601883613118565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b60006128ec601583613118565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061292c600983613118565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b600061296c601483613118565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b60006129ac601983613118565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006129ec601883613118565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612a2c601d83613118565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612a6c602a83613118565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ad2602683613118565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b38601f83613118565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006040830160008301518482036000860152612b888282612607565b9150506020830151612b9d6020860182612bb7565b508091505092915050565b612bb181613171565b82525050565b612bc08161317b565b82525050565b612bcf8161317b565b82525050565b612bde8161318b565b82525050565b612bf5612bf08261318b565b61321d565b82525050565b6000612c07828461269a565b915081905092915050565b6000612c1e8285612be4565b600182019150612c2e8284612683565b6020820191508190509392505050565b6000602082019050612c5360008301846125f8565b92915050565b6000602082019050612c6e60008301846125da565b92915050565b6000604082019050612c8960008301856125da565b612c966020830184612ba8565b9392505050565b6000606082019050612cb260008301866125f8565b612cbf60208301856125f8565b612ccc6040830184612ba8565b949350505050565b6000604082019050612ce960008301856125f8565b612cf66020830184612ba8565b9392505050565b6000602082019050612d126000830184612665565b92915050565b6000608082019050612d2d6000830187612674565b612d3a6020830186612bd5565b612d476040830185612674565b612d546060830184612674565b95945050505050565b60006020820190508181036000830152612d7781846126da565b905092915050565b60006020820190508181036000830152612d9881612713565b9050919050565b60006020820190508181036000830152612db881612753565b9050919050565b60006020820190508181036000830152612dd881612793565b9050919050565b60006020820190508181036000830152612df8816127f9565b9050919050565b60006020820190508181036000830152612e188161285f565b9050919050565b60006020820190508181036000830152612e388161289f565b9050919050565b60006020820190508181036000830152612e58816128df565b9050919050565b60006020820190508181036000830152612e788161291f565b9050919050565b60006020820190508181036000830152612e988161295f565b9050919050565b60006020820190508181036000830152612eb88161299f565b9050919050565b60006020820190508181036000830152612ed8816129df565b9050919050565b60006020820190508181036000830152612ef881612a1f565b9050919050565b60006020820190508181036000830152612f1881612a5f565b9050919050565b60006020820190508181036000830152612f3881612ac5565b9050919050565b60006020820190508181036000830152612f5881612b2b565b9050919050565b60006020820190508181036000830152612f798184612b6b565b905092915050565b6000602082019050612f966000830184612bc6565b92915050565b6000604082019050612fb16000830185612bc6565b612fbe6020830184612bc6565b9392505050565b6000606082019050612fda6000830186612bd5565b612fe76020830185612674565b612ff46040830184612bd5565b949350505050565b600060c0820190506130116000830189612bd5565b61301e6020830188612bd5565b61302b60408301876126cb565b6130386060830186612674565b6130456080830185612ba8565b61305260a0830184612bc6565b979650505050505050565b600060c0820190506130726000830189612bd5565b61307f6020830188612bd5565b61308c6040830187612bd5565b6130996060830186612674565b6130a66080830185612ba8565b6130b360a0830184612bc6565b979650505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061313482613151565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006131a3826131bc565b9050919050565b60006131b58261318b565b9050919050565b60006131c7826131ce565b9050919050565b60006131d982613151565b9050919050565b60005b838110156131fe5780820151818401526020810190506131e3565b8381111561320d576000848401525b50505050565b6000819050919050565b600061322882613240565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b61325681613129565b811461326157600080fd5b50565b61326d8161313b565b811461327857600080fd5b50565b61328481613147565b811461328f57600080fd5b50565b61329b81613171565b81146132a657600080fd5b50565b6132b28161317b565b81146132bd57600080fd5b50565b6132c98161318b565b81146132d457600080fd5b5056fea26469706673582212208f3f419adeb7ca3cd853715b74fc3a8cacdc215c41169446b0565304bd3fa34364736f6c634300060c0033", + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"initial_guardian_set\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"wrapped_asset_master\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_guardian_set_expirity\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"oldGuardianIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newGuardianIndex\",\"type\":\"uint32\"}],\"name\":\"LogGuardianSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"token_chain\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"token_decimals\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"LogTokensLocked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"consumedVAAs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"idx\",\"type\":\"uint32\"}],\"name\":\"getGuardianSet\",\"outputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"gs\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian_set_expirity\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian_set_index\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"guardian_sets\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isWrappedAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"refund_dust\",\"type\":\"bool\"}],\"name\":\"lockAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"lockETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"vaa\",\"type\":\"bytes\"}],\"name\":\"submitVAA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedAssetMaster\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"wrappedAssets\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/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\":\"0x843bd25fef0d2a9e47bc76387e86f0ca927625e6557fa1b262ea4a420bb59ac6\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://023ad00a5f095e8172b3cbf337262a35c4a3341299f1989c30c662a0d357236b\",\"dweb:/ipfs/QmPP1gTKNvz6hdfDQgL95xSw35vCK5MFvr4yKRcPexXuwK\"]},\"/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/WrappedAsset.sol\":{\"keccak256\":\"0xf7ce817c18d74da0e2b15fed25b3e7dcb79cc41f422f641bb863f9a40d62ffcf\",\"license\":\"Apache 2\",\"urls\":[\"bzz-raw://6c931162370f9d24a56743a3f769734e2d7d00c9fc7fcceec81c8765b17ab4b6\",\"dweb:/ipfs/QmQfs7Td14iy6fGF56PrGYq7VKUQtYqjhjebQ2Um1E6fUT\"]},\"@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/ERC20.sol\":{\"keccak256\":\"0xf204d98eef08edacf5a02a2af1516ea4febdb6aba7a1ae5ac8deb6e568fd3dbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4dea62bffbd180772a6cfe7cb90e3a045c52d6b502bdb2fdff83193da42d8d0\",\"dweb:/ipfs/QmW8qGZ5nngajmv5Aamdrpkeuq7S5YCVaR7rtcqNekKHtK\"]},\"@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": "0x60806040526002600160146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b5060405162003b6738038062003b6783398181016040528101906200005391906200033e565b600160008190555082600260008063ffffffff1681526020019081526020016000206000820151816000019080519060200190620000939291906200014b565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055509050506000600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200047c565b828054828255906000526020600020908101928215620001c7579160200282015b82811115620001c65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200016c565b5b509050620001d69190620001da565b5090565b5b808211156200021357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620001db565b5090565b600081519050620002288162000448565b92915050565b600082601f8301126200024057600080fd5b8151620002576200025182620003db565b620003ad565b915081818352602084019350602081019050838560208402820111156200027d57600080fd5b60005b83811015620002b1578162000296888262000217565b84526020840193506020830192505060018101905062000280565b5050505092915050565b600060408284031215620002ce57600080fd5b620002da6040620003ad565b9050600082015167ffffffffffffffff811115620002f757600080fd5b62000305848285016200022e565b60008301525060206200031b8482850162000327565b60208301525092915050565b600081519050620003388162000462565b92915050565b6000806000606084860312156200035457600080fd5b600084015167ffffffffffffffff8111156200036f57600080fd5b6200037d86828701620002bb565b9350506020620003908682870162000217565b9250506040620003a38682870162000327565b9150509250925092565b6000604051905081810181811067ffffffffffffffff82111715620003d157600080fd5b8060405250919050565b600067ffffffffffffffff821115620003f357600080fd5b602082029050602081019050919050565b6000620004118262000418565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600063ffffffff82169050919050565b620004538162000404565b81146200045f57600080fd5b50565b6200046d8162000438565b81146200047957600080fd5b50565b6136db806200048c6000396000f3fe6080604052600436106100a05760003560e01c806370713960116100645780637071396014610205578063822d82b31461022e57806399da1d3c14610259578063a31fe40914610284578063b6694c2a146102c1578063f951975a146102fe576100e0565b80631a2be4da1461011b5780633bc0aee61461015857806342b0aefa146101815780634db47840146101be57806358d62e46146101e9576100e0565b366100e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d79061318d565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101129061318d565b60405180910390fd5b34801561012757600080fd5b50610142600480360381019061013d91906126ce565b61033b565b60405161014f91906130ab565b60405180910390f35b34801561016457600080fd5b5061017f600480360381019061017a919061284a565b61035b565b005b34801561018d57600080fd5b506101a860048036038101906101a391906128b8565b610bcf565b6040516101b5919061334f565b60405180910390f35b3480156101ca57600080fd5b506101d3610bfd565b6040516101e0919061334f565b60405180910390f35b61020360048036038101906101fe91906127fb565b610c13565b005b34801561021157600080fd5b5061022c600480360381019061022791906126f7565b610dc0565b005b34801561023a57600080fd5b50610243611461565b604051610250919061334f565b60405180910390f35b34801561026557600080fd5b5061026e611477565b60405161027b9190612fec565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a691906127a9565b61149d565b6040516102b891906130ab565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e391906127a9565b6114bd565b6040516102f59190612fec565b60405180910390f35b34801561030a57600080fd5b50610325600480360381019061032091906128b8565b6114f0565b604051610332919061332d565b60405180910390f35b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156103a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103989061330d565b60405180910390fd5b60026000819055506000610403600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b905060018160ff161461044b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610442906131ed565b60405180910390fd5b60006104a5600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061163b90919063ffffffff16565b90506000610501600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b60ff169050600081604202600601905060006105718283898990500389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506116999092919063ffffffff16565b8051906020012090506004600082815260200190815260200160002060009054906101000a900460ff16156105db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d29061316d565b60405180910390fd5b6105e36124cd565b600260008663ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561069257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610648575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816020015163ffffffff1614806106e5575042816020015163ffffffff16115b610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b9061328d565b60405180910390fd5b836001600360048460000151518161073857fe5b040201111561077c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107739061322d565b60405180910390fd5b60005b848110156109f85760006107e6604283026006018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b90506000610847604284026007018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061175b90919063ffffffff16565b905060006108a8604285026027018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061175b90919063ffffffff16565b90506000610909604286026047018e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b9050601b8101905085600001518460ff168151811061092457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166001888386866040516000815260200160405260405161096594939291906130c6565b6020604051602081039080840390855afa158015610987573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff16146109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de9061320d565b60405180910390fd5b50505050808060010191505061077f565b506000610a55600485018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b90506060610abd60058601600587018c8c9050038c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506116999092919063ffffffff16565b905060018260ff161415610b3957600360009054906101000a900463ffffffff1663ffffffff168763ffffffff1614610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b22906131ad565b60405180910390fd5b610b34816117b9565b610b8f565b60108260ff161415610b5357610b4e81611a37565b610b8e565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b859061314d565b60405180910390fd5b5b60016004600086815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b600360049054906101000a900463ffffffff1681565b60026000541415610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c509061330d565b60405180910390fd5b60026000819055506000341415610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c9061324d565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610d0157600080fd5b505af1158015610d15573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab884600160149054906101000a900460ff166012883488604051610dab969594939291906133ca565b60405180910390a36001600081905550505050565b60026000541415610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd9061330d565b60405180910390fd5b60026000819055506000851415610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e499061324d565b60405180910390fd5b6000600160149054906101000a900460ff1690506000808873ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610eaf57600080fd5b505afa158015610ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee791906128e1565b9050600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110ad578873ffffffffffffffffffffffffffffffffffffffff16639dc29fac338a6040518363ffffffff1660e01b8152600401610f76929190613022565b600060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050508873ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610fee57600080fd5b505afa158015611002573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102691906128e1565b92508873ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561106e57600080fd5b505afa158015611082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a691906127d2565b91506113f2565b60008973ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110e89190613007565b60206040518083038186803b15801561110057600080fd5b505afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611138919061288f565b905061116733308b8d73ffffffffffffffffffffffffffffffffffffffff16611d07909392919063ffffffff16565b60008a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111a29190613007565b60206040518083038186803b1580156111ba57600080fd5b505afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f2919061288f565b90506112078282611d9090919063ffffffff16565b995060098360ff1611156112ee5760008a90506112366009850360ff16600a0a8c611dda90919063ffffffff16565b9a5086156112e8578b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336112776009880360ff16600a0a85611e2490919063ffffffff16565b6040518363ffffffff1660e01b8152600401611294929190613022565b602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190612780565b505b60099350505b67ffffffffffffffff801661139260098d73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561134457600080fd5b505afa158015611358573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137c91906128e1565b0360ff16600a0a83611dda90919063ffffffff16565b11156113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca9061312d565b60405180910390fd5b8a73ffffffffffffffffffffffffffffffffffffffff1660001b935050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b827f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab88886858c8e8c6040516114469695949392919061342b565b60405180910390a35050506001600081905550505050505050565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114f86124cd565b600260008363ffffffff1663ffffffff168152602001908152602001600020604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156115a757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161155d575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b60006001820183511015611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d906131cd565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015611684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167b906131cd565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d8906131cd565b60405180910390fd5b60608215600081146116fe5760405191506020820160405261174f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561173c578051835260208301925060208101905061171f565b50868552601f19601f8301166040525050505b50809150509392505050565b600060208201835110156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b906131cd565b60405180910390fd5b60008260208501015190508091505092915050565b60006117cf60008361163b90919063ffffffff16565b905060006117e76004846115dd90919063ffffffff16565b905060608160ff1667ffffffffffffffff8111801561180557600080fd5b506040519080825280602002602001820160405280156118345781602001602082028036833780820191505090505b50905060005b8260ff168110156118b75760006118606014830260050187611e6e90919063ffffffff16565b90508083838151811061186f57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061183a565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff1602179055506118f86124cd565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060008201518160000190805190602001906119649291906124ed565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff16604051611a2792919061336a565b60405180910390a1505050505050565b6000611a4d6004836115dd90919063ffffffff16565b90506000611a656005846115dd90919063ffffffff16565b90506000611a7d603285611e6e90919063ffffffff16565b90506000611a956046866115dd90919063ffffffff16565b90506000611aad606887611edb90919063ffffffff16565b90508360ff168560ff161415611af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aef906132ed565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b469061326d565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611cba576000611b8160478861175b90919063ffffffff16565b905060008382604051602001611b98929190612fc0565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c45576000611c3360678b6115dd90919063ffffffff16565b9050611c4183878684611f39565b9150505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611c80929190613082565b600060405180830381600087803b158015611c9a57600080fd5b505af1158015611cae573d6000803e3d6000fd5b50505050505050611cff565b6000611cd0605388611e6e90919063ffffffff16565b9050611cfd84838373ffffffffffffffffffffffffffffffffffffffff166120e29092919063ffffffff16565b505b505050505050565b611d8a846323b872dd60e01b858585604051602401611d289392919061304b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612168565b50505050565b6000611dd283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061222f565b905092915050565b6000611e1c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228a565b905092915050565b6000611e6683836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506122eb565b905092915050565b60006014820183511015611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae906131cd565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b60006020820183511015611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b906131cd565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152866037826000f59250508173ffffffffffffffffffffffffffffffffffffffff1663a7a2d3fb8686866040518463ffffffff1660e01b8152600401611ffd93929190613393565b600060405180830381600087803b15801561201757600080fd5b505af115801561202b573d6000803e3d6000fd5b50505050816005600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050949350505050565b6121638363a9059cbb60e01b8484604051602401612101929190613082565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612168565b505050565b60606121ca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123479092919063ffffffff16565b905060008151111561222a57808060200190518101906121ea9190612780565b612229576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612220906132cd565b60405180910390fd5b5b505050565b6000838311158290612277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226e919061310b565b60405180910390fd5b5060008385039050809150509392505050565b600080831182906122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c8919061310b565b60405180910390fd5b5060008385816122dd57fe5b049050809150509392505050565b6000808314158290612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a919061310b565b60405180910390fd5b5082848161233d57fe5b0690509392505050565b6060612356848460008561235f565b90509392505050565b606061236a85612482565b6123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a0906132ad565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516123d39190612fa9565b60006040518083038185875af1925050503d8060008114612410576040519150601f19603f3d011682016040523d82523d6000602084013e612415565b606091505b5091509150811561242a57809250505061247a565b60008151111561243d5780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612471919061310b565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156124c457506000801b8214155b92505050919050565b604051806040016040528060608152602001600063ffffffff1681525090565b828054828255906000526020600020908101928215612566579160200282015b828111156125655782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061250d565b5b5090506125739190612577565b5090565b5b808211156125ae57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612578565b5090565b6000813590506125c18161361b565b92915050565b6000813590506125d681613632565b92915050565b6000815190506125eb81613632565b92915050565b60008135905061260081613649565b92915050565b60008151905061261581613649565b92915050565b60008083601f84011261262d57600080fd5b8235905067ffffffffffffffff81111561264657600080fd5b60208301915083600182028301111561265e57600080fd5b9250929050565b60008135905061267481613660565b92915050565b60008151905061268981613660565b92915050565b60008135905061269e81613677565b92915050565b6000813590506126b38161368e565b92915050565b6000815190506126c88161368e565b92915050565b6000602082840312156126e057600080fd5b60006126ee848285016125b2565b91505092915050565b60008060008060008060c0878903121561271057600080fd5b600061271e89828a016125b2565b965050602061272f89828a01612665565b955050604061274089828a016125f1565b945050606061275189828a016126a4565b935050608061276289828a0161268f565b92505060a061277389828a016125c7565b9150509295509295509295565b60006020828403121561279257600080fd5b60006127a0848285016125dc565b91505092915050565b6000602082840312156127bb57600080fd5b60006127c9848285016125f1565b91505092915050565b6000602082840312156127e457600080fd5b60006127f284828501612606565b91505092915050565b60008060006060848603121561281057600080fd5b600061281e868287016125f1565b935050602061282f868287016126a4565b92505060406128408682870161268f565b9150509250925092565b6000806020838503121561285d57600080fd5b600083013567ffffffffffffffff81111561287757600080fd5b6128838582860161261b565b92509250509250929050565b6000602082840312156128a157600080fd5b60006128af8482850161267a565b91505092915050565b6000602082840312156128ca57600080fd5b60006128d88482850161268f565b91505092915050565b6000602082840312156128f357600080fd5b6000612901848285016126b9565b91505092915050565b60006129168383612931565b60208301905092915050565b61292b81613566565b82525050565b61293a816134f7565b82525050565b612949816134f7565b82525050565b600061295a8261349c565b61296481856134ca565b935061296f8361348c565b8060005b838110156129a0578151612987888261290a565b9750612992836134bd565b925050600181019050612973565b5085935050505092915050565b6129b681613509565b82525050565b6129c581613515565b82525050565b6129dc6129d782613515565b6135e1565b82525050565b60006129ed826134a7565b6129f781856134db565b9350612a078185602086016135ae565b80840191505092915050565b612a1c81613578565b82525050565b6000612a2d826134b2565b612a3781856134e6565b9350612a478185602086016135ae565b612a50816135fd565b840191505092915050565b6000612a686023836134e6565b91507f6272696467652062616c616e636520776f756c6420657863656564206d61786960008301527f6d756d00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ace6012836134e6565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000612b0e6018836134e6565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612b4e602c836134e6565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b6000612bb46039836134e6565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b6000612c1a6012836134e6565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000612c5a6018836134e6565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000612c9a6015836134e6565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b6000612cda6009836134e6565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b6000612d1a6014836134e6565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b6000612d5a6019836134e6565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b6000612d9a6018836134e6565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612dda601d836134e6565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612e1a602a836134e6565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612e806026836134e6565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ee6601f836134e6565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006040830160008301518482036000860152612f36828261294f565b9150506020830151612f4b6020860182612f65565b508091505092915050565b612f5f8161353f565b82525050565b612f6e81613549565b82525050565b612f7d81613549565b82525050565b612f8c81613559565b82525050565b612fa3612f9e82613559565b6135eb565b82525050565b6000612fb582846129e2565b915081905092915050565b6000612fcc8285612f92565b600182019150612fdc82846129cb565b6020820191508190509392505050565b60006020820190506130016000830184612940565b92915050565b600060208201905061301c6000830184612922565b92915050565b60006040820190506130376000830185612922565b6130446020830184612f56565b9392505050565b60006060820190506130606000830186612940565b61306d6020830185612940565b61307a6040830184612f56565b949350505050565b60006040820190506130976000830185612940565b6130a46020830184612f56565b9392505050565b60006020820190506130c060008301846129ad565b92915050565b60006080820190506130db60008301876129bc565b6130e86020830186612f83565b6130f560408301856129bc565b61310260608301846129bc565b95945050505050565b600060208201905081810360008301526131258184612a22565b905092915050565b6000602082019050818103600083015261314681612a5b565b9050919050565b6000602082019050818103600083015261316681612ac1565b9050919050565b6000602082019050818103600083015261318681612b01565b9050919050565b600060208201905081810360008301526131a681612b41565b9050919050565b600060208201905081810360008301526131c681612ba7565b9050919050565b600060208201905081810360008301526131e681612c0d565b9050919050565b6000602082019050818103600083015261320681612c4d565b9050919050565b6000602082019050818103600083015261322681612c8d565b9050919050565b6000602082019050818103600083015261324681612ccd565b9050919050565b6000602082019050818103600083015261326681612d0d565b9050919050565b6000602082019050818103600083015261328681612d4d565b9050919050565b600060208201905081810360008301526132a681612d8d565b9050919050565b600060208201905081810360008301526132c681612dcd565b9050919050565b600060208201905081810360008301526132e681612e0d565b9050919050565b6000602082019050818103600083015261330681612e73565b9050919050565b6000602082019050818103600083015261332681612ed9565b9050919050565b600060208201905081810360008301526133478184612f19565b905092915050565b60006020820190506133646000830184612f74565b92915050565b600060408201905061337f6000830185612f74565b61338c6020830184612f74565b9392505050565b60006060820190506133a86000830186612f83565b6133b560208301856129bc565b6133c26040830184612f83565b949350505050565b600060c0820190506133df6000830189612f83565b6133ec6020830188612f83565b6133f96040830187612a13565b61340660608301866129bc565b6134136080830185612f56565b61342060a0830184612f74565b979650505050505050565b600060c0820190506134406000830189612f83565b61344d6020830188612f83565b61345a6040830187612f83565b61346760608301866129bc565b6134746080830185612f56565b61348160a0830184612f74565b979650505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006135028261351f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006135718261358a565b9050919050565b600061358382613559565b9050919050565b60006135958261359c565b9050919050565b60006135a78261351f565b9050919050565b60005b838110156135cc5780820151818401526020810190506135b1565b838111156135db576000848401525b50505050565b6000819050919050565b60006135f68261360e565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b613624816134f7565b811461362f57600080fd5b50565b61363b81613509565b811461364657600080fd5b50565b61365281613515565b811461365d57600080fd5b50565b6136698161353f565b811461367457600080fd5b50565b61368081613549565b811461368b57600080fd5b50565b61369781613559565b81146136a257600080fd5b5056fea2646970667358221220c2c5c5efcbf02fa3995baa2a1d9f45dfa7344533b3f1c0232cdb372ed8dc4c0764736f6c634300060c0033", + "deployedBytecode": "0x6080604052600436106100a05760003560e01c806370713960116100645780637071396014610205578063822d82b31461022e57806399da1d3c14610259578063a31fe40914610284578063b6694c2a146102c1578063f951975a146102fe576100e0565b80631a2be4da1461011b5780633bc0aee61461015857806342b0aefa146101815780634db47840146101be57806358d62e46146101e9576100e0565b366100e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d79061318d565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101129061318d565b60405180910390fd5b34801561012757600080fd5b50610142600480360381019061013d91906126ce565b61033b565b60405161014f91906130ab565b60405180910390f35b34801561016457600080fd5b5061017f600480360381019061017a919061284a565b61035b565b005b34801561018d57600080fd5b506101a860048036038101906101a391906128b8565b610bcf565b6040516101b5919061334f565b60405180910390f35b3480156101ca57600080fd5b506101d3610bfd565b6040516101e0919061334f565b60405180910390f35b61020360048036038101906101fe91906127fb565b610c13565b005b34801561021157600080fd5b5061022c600480360381019061022791906126f7565b610dc0565b005b34801561023a57600080fd5b50610243611461565b604051610250919061334f565b60405180910390f35b34801561026557600080fd5b5061026e611477565b60405161027b9190612fec565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a691906127a9565b61149d565b6040516102b891906130ab565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e391906127a9565b6114bd565b6040516102f59190612fec565b60405180910390f35b34801561030a57600080fd5b50610325600480360381019061032091906128b8565b6114f0565b604051610332919061332d565b60405180910390f35b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156103a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103989061330d565b60405180910390fd5b60026000819055506000610403600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b905060018160ff161461044b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610442906131ed565b60405180910390fd5b60006104a5600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061163b90919063ffffffff16565b90506000610501600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b60ff169050600081604202600601905060006105718283898990500389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506116999092919063ffffffff16565b8051906020012090506004600082815260200190815260200160002060009054906101000a900460ff16156105db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d29061316d565b60405180910390fd5b6105e36124cd565b600260008663ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561069257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610648575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816020015163ffffffff1614806106e5575042816020015163ffffffff16115b610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b9061328d565b60405180910390fd5b836001600360048460000151518161073857fe5b040201111561077c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107739061322d565b60405180910390fd5b60005b848110156109f85760006107e6604283026006018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b90506000610847604284026007018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061175b90919063ffffffff16565b905060006108a8604285026027018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061175b90919063ffffffff16565b90506000610909604286026047018e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b9050601b8101905085600001518460ff168151811061092457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166001888386866040516000815260200160405260405161096594939291906130c6565b6020604051602081039080840390855afa158015610987573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff16146109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de9061320d565b60405180910390fd5b50505050808060010191505061077f565b506000610a55600485018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b90506060610abd60058601600587018c8c9050038c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506116999092919063ffffffff16565b905060018260ff161415610b3957600360009054906101000a900463ffffffff1663ffffffff168763ffffffff1614610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b22906131ad565b60405180910390fd5b610b34816117b9565b610b8f565b60108260ff161415610b5357610b4e81611a37565b610b8e565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b859061314d565b60405180910390fd5b5b60016004600086815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b600360049054906101000a900463ffffffff1681565b60026000541415610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c509061330d565b60405180910390fd5b60026000819055506000341415610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c9061324d565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610d0157600080fd5b505af1158015610d15573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab884600160149054906101000a900460ff166012883488604051610dab969594939291906133ca565b60405180910390a36001600081905550505050565b60026000541415610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd9061330d565b60405180910390fd5b60026000819055506000851415610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e499061324d565b60405180910390fd5b6000600160149054906101000a900460ff1690506000808873ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610eaf57600080fd5b505afa158015610ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee791906128e1565b9050600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110ad578873ffffffffffffffffffffffffffffffffffffffff16639dc29fac338a6040518363ffffffff1660e01b8152600401610f76929190613022565b600060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050508873ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610fee57600080fd5b505afa158015611002573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102691906128e1565b92508873ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561106e57600080fd5b505afa158015611082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a691906127d2565b91506113f2565b60008973ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110e89190613007565b60206040518083038186803b15801561110057600080fd5b505afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611138919061288f565b905061116733308b8d73ffffffffffffffffffffffffffffffffffffffff16611d07909392919063ffffffff16565b60008a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111a29190613007565b60206040518083038186803b1580156111ba57600080fd5b505afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f2919061288f565b90506112078282611d9090919063ffffffff16565b995060098360ff1611156112ee5760008a90506112366009850360ff16600a0a8c611dda90919063ffffffff16565b9a5086156112e8578b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336112776009880360ff16600a0a85611e2490919063ffffffff16565b6040518363ffffffff1660e01b8152600401611294929190613022565b602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190612780565b505b60099350505b67ffffffffffffffff801661139260098d73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561134457600080fd5b505afa158015611358573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137c91906128e1565b0360ff16600a0a83611dda90919063ffffffff16565b11156113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca9061312d565b60405180910390fd5b8a73ffffffffffffffffffffffffffffffffffffffff1660001b935050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b827f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab88886858c8e8c6040516114469695949392919061342b565b60405180910390a35050506001600081905550505050505050565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114f86124cd565b600260008363ffffffff1663ffffffff168152602001908152602001600020604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156115a757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161155d575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b60006001820183511015611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d906131cd565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015611684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167b906131cd565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d8906131cd565b60405180910390fd5b60608215600081146116fe5760405191506020820160405261174f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561173c578051835260208301925060208101905061171f565b50868552601f19601f8301166040525050505b50809150509392505050565b600060208201835110156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b906131cd565b60405180910390fd5b60008260208501015190508091505092915050565b60006117cf60008361163b90919063ffffffff16565b905060006117e76004846115dd90919063ffffffff16565b905060608160ff1667ffffffffffffffff8111801561180557600080fd5b506040519080825280602002602001820160405280156118345781602001602082028036833780820191505090505b50905060005b8260ff168110156118b75760006118606014830260050187611e6e90919063ffffffff16565b90508083838151811061186f57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061183a565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff1602179055506118f86124cd565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060008201518160000190805190602001906119649291906124ed565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff16604051611a2792919061336a565b60405180910390a1505050505050565b6000611a4d6004836115dd90919063ffffffff16565b90506000611a656005846115dd90919063ffffffff16565b90506000611a7d603285611e6e90919063ffffffff16565b90506000611a956046866115dd90919063ffffffff16565b90506000611aad606887611edb90919063ffffffff16565b90508360ff168560ff161415611af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aef906132ed565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b469061326d565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611cba576000611b8160478861175b90919063ffffffff16565b905060008382604051602001611b98929190612fc0565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c45576000611c3360678b6115dd90919063ffffffff16565b9050611c4183878684611f39565b9150505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611c80929190613082565b600060405180830381600087803b158015611c9a57600080fd5b505af1158015611cae573d6000803e3d6000fd5b50505050505050611cff565b6000611cd0605388611e6e90919063ffffffff16565b9050611cfd84838373ffffffffffffffffffffffffffffffffffffffff166120e29092919063ffffffff16565b505b505050505050565b611d8a846323b872dd60e01b858585604051602401611d289392919061304b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612168565b50505050565b6000611dd283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061222f565b905092915050565b6000611e1c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228a565b905092915050565b6000611e6683836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506122eb565b905092915050565b60006014820183511015611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae906131cd565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b60006020820183511015611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b906131cd565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152866037826000f59250508173ffffffffffffffffffffffffffffffffffffffff1663a7a2d3fb8686866040518463ffffffff1660e01b8152600401611ffd93929190613393565b600060405180830381600087803b15801561201757600080fd5b505af115801561202b573d6000803e3d6000fd5b50505050816005600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050949350505050565b6121638363a9059cbb60e01b8484604051602401612101929190613082565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612168565b505050565b60606121ca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123479092919063ffffffff16565b905060008151111561222a57808060200190518101906121ea9190612780565b612229576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612220906132cd565b60405180910390fd5b5b505050565b6000838311158290612277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226e919061310b565b60405180910390fd5b5060008385039050809150509392505050565b600080831182906122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c8919061310b565b60405180910390fd5b5060008385816122dd57fe5b049050809150509392505050565b6000808314158290612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a919061310b565b60405180910390fd5b5082848161233d57fe5b0690509392505050565b6060612356848460008561235f565b90509392505050565b606061236a85612482565b6123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a0906132ad565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516123d39190612fa9565b60006040518083038185875af1925050503d8060008114612410576040519150601f19603f3d011682016040523d82523d6000602084013e612415565b606091505b5091509150811561242a57809250505061247a565b60008151111561243d5780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612471919061310b565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156124c457506000801b8214155b92505050919050565b604051806040016040528060608152602001600063ffffffff1681525090565b828054828255906000526020600020908101928215612566579160200282015b828111156125655782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061250d565b5b5090506125739190612577565b5090565b5b808211156125ae57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612578565b5090565b6000813590506125c18161361b565b92915050565b6000813590506125d681613632565b92915050565b6000815190506125eb81613632565b92915050565b60008135905061260081613649565b92915050565b60008151905061261581613649565b92915050565b60008083601f84011261262d57600080fd5b8235905067ffffffffffffffff81111561264657600080fd5b60208301915083600182028301111561265e57600080fd5b9250929050565b60008135905061267481613660565b92915050565b60008151905061268981613660565b92915050565b60008135905061269e81613677565b92915050565b6000813590506126b38161368e565b92915050565b6000815190506126c88161368e565b92915050565b6000602082840312156126e057600080fd5b60006126ee848285016125b2565b91505092915050565b60008060008060008060c0878903121561271057600080fd5b600061271e89828a016125b2565b965050602061272f89828a01612665565b955050604061274089828a016125f1565b945050606061275189828a016126a4565b935050608061276289828a0161268f565b92505060a061277389828a016125c7565b9150509295509295509295565b60006020828403121561279257600080fd5b60006127a0848285016125dc565b91505092915050565b6000602082840312156127bb57600080fd5b60006127c9848285016125f1565b91505092915050565b6000602082840312156127e457600080fd5b60006127f284828501612606565b91505092915050565b60008060006060848603121561281057600080fd5b600061281e868287016125f1565b935050602061282f868287016126a4565b92505060406128408682870161268f565b9150509250925092565b6000806020838503121561285d57600080fd5b600083013567ffffffffffffffff81111561287757600080fd5b6128838582860161261b565b92509250509250929050565b6000602082840312156128a157600080fd5b60006128af8482850161267a565b91505092915050565b6000602082840312156128ca57600080fd5b60006128d88482850161268f565b91505092915050565b6000602082840312156128f357600080fd5b6000612901848285016126b9565b91505092915050565b60006129168383612931565b60208301905092915050565b61292b81613566565b82525050565b61293a816134f7565b82525050565b612949816134f7565b82525050565b600061295a8261349c565b61296481856134ca565b935061296f8361348c565b8060005b838110156129a0578151612987888261290a565b9750612992836134bd565b925050600181019050612973565b5085935050505092915050565b6129b681613509565b82525050565b6129c581613515565b82525050565b6129dc6129d782613515565b6135e1565b82525050565b60006129ed826134a7565b6129f781856134db565b9350612a078185602086016135ae565b80840191505092915050565b612a1c81613578565b82525050565b6000612a2d826134b2565b612a3781856134e6565b9350612a478185602086016135ae565b612a50816135fd565b840191505092915050565b6000612a686023836134e6565b91507f6272696467652062616c616e636520776f756c6420657863656564206d61786960008301527f6d756d00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ace6012836134e6565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000612b0e6018836134e6565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612b4e602c836134e6565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b6000612bb46039836134e6565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b6000612c1a6012836134e6565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000612c5a6018836134e6565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000612c9a6015836134e6565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b6000612cda6009836134e6565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b6000612d1a6014836134e6565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b6000612d5a6019836134e6565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b6000612d9a6018836134e6565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612dda601d836134e6565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612e1a602a836134e6565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612e806026836134e6565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ee6601f836134e6565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006040830160008301518482036000860152612f36828261294f565b9150506020830151612f4b6020860182612f65565b508091505092915050565b612f5f8161353f565b82525050565b612f6e81613549565b82525050565b612f7d81613549565b82525050565b612f8c81613559565b82525050565b612fa3612f9e82613559565b6135eb565b82525050565b6000612fb582846129e2565b915081905092915050565b6000612fcc8285612f92565b600182019150612fdc82846129cb565b6020820191508190509392505050565b60006020820190506130016000830184612940565b92915050565b600060208201905061301c6000830184612922565b92915050565b60006040820190506130376000830185612922565b6130446020830184612f56565b9392505050565b60006060820190506130606000830186612940565b61306d6020830185612940565b61307a6040830184612f56565b949350505050565b60006040820190506130976000830185612940565b6130a46020830184612f56565b9392505050565b60006020820190506130c060008301846129ad565b92915050565b60006080820190506130db60008301876129bc565b6130e86020830186612f83565b6130f560408301856129bc565b61310260608301846129bc565b95945050505050565b600060208201905081810360008301526131258184612a22565b905092915050565b6000602082019050818103600083015261314681612a5b565b9050919050565b6000602082019050818103600083015261316681612ac1565b9050919050565b6000602082019050818103600083015261318681612b01565b9050919050565b600060208201905081810360008301526131a681612b41565b9050919050565b600060208201905081810360008301526131c681612ba7565b9050919050565b600060208201905081810360008301526131e681612c0d565b9050919050565b6000602082019050818103600083015261320681612c4d565b9050919050565b6000602082019050818103600083015261322681612c8d565b9050919050565b6000602082019050818103600083015261324681612ccd565b9050919050565b6000602082019050818103600083015261326681612d0d565b9050919050565b6000602082019050818103600083015261328681612d4d565b9050919050565b600060208201905081810360008301526132a681612d8d565b9050919050565b600060208201905081810360008301526132c681612dcd565b9050919050565b600060208201905081810360008301526132e681612e0d565b9050919050565b6000602082019050818103600083015261330681612e73565b9050919050565b6000602082019050818103600083015261332681612ed9565b9050919050565b600060208201905081810360008301526133478184612f19565b905092915050565b60006020820190506133646000830184612f74565b92915050565b600060408201905061337f6000830185612f74565b61338c6020830184612f74565b9392505050565b60006060820190506133a86000830186612f83565b6133b560208301856129bc565b6133c26040830184612f83565b949350505050565b600060c0820190506133df6000830189612f83565b6133ec6020830188612f83565b6133f96040830187612a13565b61340660608301866129bc565b6134136080830185612f56565b61342060a0830184612f74565b979650505050505050565b600060c0820190506134406000830189612f83565b61344d6020830188612f83565b61345a6040830187612f83565b61346760608301866129bc565b6134746080830185612f56565b61348160a0830184612f74565b979650505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006135028261351f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006135718261358a565b9050919050565b600061358382613559565b9050919050565b60006135958261359c565b9050919050565b60006135a78261351f565b9050919050565b60005b838110156135cc5780820151818401526020810190506135b1565b838111156135db576000848401525b50505050565b6000819050919050565b60006135f68261360e565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b613624816134f7565b811461362f57600080fd5b50565b61363b81613509565b811461364657600080fd5b50565b61365281613515565b811461365d57600080fd5b50565b6136698161353f565b811461367457600080fd5b50565b61368081613549565b811461368b57600080fd5b50565b61369781613559565b81146136a257600080fd5b5056fea2646970667358221220c2c5c5efcbf02fa3995baa2a1d9f45dfa7344533b3f1c0232cdb372ed8dc4c0764736f6c634300060c0033", "immutableReferences": {}, - "sourceMap": "502:8862:1:-:0;;;770:1;753:18;;;;;;;;;;;;;;;;;;;;1902:360;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1628:1:9;1743:7;:22;;;;2052:20:1;2033:13;:16;2047:1;2033:16;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2146:1;2125:18;;:22;;;;;;;;;;;;;;;;;;2181;2157:21;;:46;;;;;;;;;;;;;;;;;;2235:20;2214:18;;:41;;;;;;;;;;;;;;;;;;1902:360;;;502:8862;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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;502:8862:1:-;;;;;;;", - "deployedSourceMap": "502:8862:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9306:54;;;;;;;;;;:::i;:::-;;;;;;;;502:8862;9221:54;;;;;;;;;;:::i;:::-;;;;;;;;7492:1229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1849:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2396:1874;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1405:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1615:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8727:462;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1497:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;685:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1696:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1795:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2268:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7492:1229;1671:1:9;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;7690:1:1::1;7680:6;:11;;7672:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7727:17;7747:8;;;;;;;;;;;7727:28;;7765:21;7800:14;:21;7815:5;7800:21;;;;;;;;;;;;;;;;;;;;;;;;;7796:765;;;7850:5;7837:24;;;7862:10;7874:6;7837:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7922:5;7909:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7895:46;;7984:5;7971:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7955:50;;7796:765;;;8036:21;8067:5;8060:23;;;8092:4;8060:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8036:62;;8112:65;8143:10;8163:4;8170:6;8119:5;8112:30;;;;:65;;;;;;:::i;:::-;8191:20;8221:5;8214:23;;;8246:4;8214:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8191:61;;8466:31;8483:13;8466:12;:16;;:31;;;;:::i;:::-;8457:40;;8543:5;8535:14;;8527:23;;8511:39;;7796:765;;;8675:10;8667:19;;8659:28;;8644:13;8576:138;8592:12;8606:11;8625:5;8619:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8689:9;8700:6;8708:5;8576:138;;;;;;;;;;;:::i;:::-;;;;;;;;2419:1:9;;1628::::0;2563:7;:22;;;;7492:1229:1;;;;;:::o;1849:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;2396:1874::-;1671:1:9;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;2479:13:1::1;2495:14;2507:1;2495:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2479:30;;2538:1;2527:7;:12;;;2519:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2625:29;2657:15;2670:1;2657:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;2625:47;;2683:19;2705:14;2717:1;2705:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2683:36;;;;2729:11;2752;2747:2;:16;2743:1;:20;2729:34;;2885:12;2910:38;2920:6;2941;2928:3;;:10;;:19;2910:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;:::i;:::-;2900:49;;;;;;2885:64;;2968:12;:18;2981:4;2968:18;;;;;;;;;;;;;;;;;;;;;2967:19;2959:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3026:31;;:::i;:::-;3060:13;:37;3074:22;3060:37;;;;;;;;;;;;;;;3026:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;3147:1;3115:12;:28;;;:33;;;:83;;;;3183:15;3152:12;:28;;;:46;;;3115:83;3107:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3289:11;3284:1;3279;3274;3247:12;:17;;;:24;:28;;;;;;3246:34;3245:40;:55;;3237:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;3330:6;3325:373;3346:11;3342:1;:15;3325:373;;;3378:11;3392:23;3412:2;3408:1;:6;3404:1;:10;3392:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;3378:37;;3429:9;3441:25;3463:2;3459:1;:6;3455:1;:10;3441:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;3429:37;;3480:9;3492:26;3515:2;3511:1;:6;3506:2;:11;3492:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;3480:38;;3532:7;3542:24;3563:2;3559:1;:6;3554:2;:11;3542:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;3532:34;;3585:2;3580:7;;;;3637:12;:17;;;3655:5;3637:24;;;;;;;;;;;;;;;;3609:52;;:24;3619:4;3625:1;3628;3631;3609:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;:52;;;3601:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;3325:373;;;;3359:3;;;;;;;3325:373;;;;3708:12;3723:23;3744:1;3735:6;:10;3723:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;3708:38;;3756:20;3779:48;3798:1;3789:6;:10;3824:1;3815:6;:10;3801:3;;:10;;:25;3779:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;:::i;:::-;3756:71;;3875:4;3865:6;:14;;;3861:332;;;3929:18;;;;;;;;;;;3903:44;;:22;:44;;;3895:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;4023:29;4044:7;4023:20;:29::i;:::-;3861:332;;;4083:4;4073:6;:14;;;4069:124;;;4103:20;4115:7;4103:11;:20::i;:::-;4069:124;;;4154:28;;;;;;;;;;:::i;:::-;;;;;;;;4069:124;3861:332;4259:4;4238:12;:18;4251:4;4238:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;2419:1:9;;;;;;;;1628::::0;2563:7;:22;;;;2396:1874:1;;:::o;1405:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1615:35::-;;;;;;;;;;;;;:::o;8727:462::-;1671:1:9;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;8886:1:1::1;8873:9;:14;;8865:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;854:42;8956:25;;;8990:9;8956:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;9140:10;9132:19;;9124:28;;854:42;9101:20;;9093:29;;9049:133;9065:12;9079:8;;;;;;;;;;;9089:2;9154:9;9165;9176:5;9049:133;;;;;;;;;;;:::i;:::-;;;;;;;;1628:1:9::0;2563:7;:22;;;;8727:462:1;;;:::o;1497:32::-;;;;;;;;;;;;;:::o;685:33::-;;;;;;;;;;;;;:::o;1696:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;1795:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2268:122::-;2325:21;;:::i;:::-;2365:13;:18;2379:3;2365:18;;;;;;;;;;;;;;;2358:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2268:122;;;:::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: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;4276:812:1:-;4343:29;4375:16;4389:1;4375:4;:13;;:16;;;;:::i;:::-;4343:48;;4401:9;4413:15;4426:1;4413:4;:12;;:15;;;;:::i;:::-;4401:27;;4439:30;4486:3;4472:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4439:51;;4505:6;4500:134;4521:3;4517:7;;:1;:7;4500:134;;;4545:12;4560:26;4583:2;4579:1;:6;4575:1;:10;4560:4;:14;;:26;;;;:::i;:::-;4545:41;;4619:4;4600:13;4614:1;4600:16;;;;;;;;;;;;;:23;;;;;;;;;;;4500:134;4526:3;;;;;;;4500:134;;;;4644:29;4676:18;;;;;;;;;;;4644:50;;4725:22;4704:18;;:43;;;;;;;;;;;;;;;;;;4758:35;;:::i;:::-;4796:29;;;;;;;;4808:13;4796:29;;;;4823:1;4796:29;;;;;4758:67;;4871:16;4835:13;:33;4849:18;;;;;;;;;;;4835:33;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4979:21;;;;;;;;;;;4960:15;4953:47;4897:13;:37;4911:22;4897:37;;;;;;;;;;;;;;;:53;;;:103;;;;;;;;;;;;;;;;;;5016:65;5038:22;5062:18;;;;;;;;;;;5016:65;;;;;;;:::i;:::-;;;;;;;;4276:812;;;;;;:::o;5094:1447::-;5195:18;5216:15;5229:1;5216:4;:12;;:15;;;;:::i;:::-;5195:36;;5242:18;5263:15;5276:1;5263:4;:12;;:15;;;;:::i;:::-;5242:36;;5397:22;5422:23;5437:7;5422:4;:14;;:23;;;;:::i;:::-;5397:48;;5456:17;5476:16;5489:2;5476:4;:12;;:16;;;;:::i;:::-;5456:36;;5556:14;5573:19;5588:3;5573:4;:14;;:19;;;;:::i;:::-;5556:36;;5627:12;5611:28;;:12;:28;;;;5603:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5716:8;;;;;;;;;;;5700:24;;:12;:24;;;5692:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5784:8;;;;;;;;;;;5769:23;;:11;:23;;;5765:770;;5808:21;5832:18;5847:2;5832:4;:14;;:18;;;;:::i;:::-;5808:42;;5864:16;5910:11;5923:13;5893:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5883:55;;;;;;5864:74;;6030:21;6054:13;:23;6068:8;6054:23;;;;;;;;;;;;;;;;;;;;;6030:47;;6120:1;6095:27;;:13;:27;;;6091:212;;;6142:20;6165:17;6178:3;6165:4;:12;;:17;;;;:::i;:::-;6142:40;;6216:72;6235:8;6245:11;6258:13;6273:14;6216:18;:72::i;:::-;6200:88;;6091:212;;6330:13;6317:32;;;6350:14;6366:6;6317:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5765:770;;;;;;6404:21;6428:23;6443:7;6428:4;:14;;:23;;;;:::i;:::-;6404:47;;6466:58;6501:14;6517:6;6473:13;6466:34;;;;:58;;;;;:::i;:::-;5765:770;;5094:1447;;;;;;:::o;2959:751:7:-;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;6547:939:1:-;6664:13;6856:19;6886:18;;;;;;;;;;;6878:27;;6856:49;;6957:4;6951:11;6989:66;6982:5;6975:81;7094:11;7087:4;7080:5;7076:16;7069:37;7144:66;7137:4;7130:5;7126:16;7119:92;7257:4;7251;7244:5;7241:1;7233:29;7224:38;;6924:348;7323:5;7310:30;;;7341:11;7354:13;7369:8;7310:68;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7436:5;7414:13;:19;7428:4;7414:19;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7475:4;7451:14;:21;7466:5;7451:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6547:939;;;;;;;:::o;696:175:7:-;778:86;798:5;828:23;;;853:2;857:5;805:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;778:19;:86::i;:::-;696:175;;;:::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;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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:140::-;7129:44;7167:5;7129:44;:::i;:::-;7124:3;7117:57;7111:68;;:::o;7186:347::-;;7298:39;7331:5;7298:39;:::i;:::-;7349:71;7413:6;7408:3;7349:71;:::i;:::-;7342:78;;7425:52;7470:6;7465:3;7458:4;7451:5;7447:16;7425:52;:::i;:::-;7498:29;7520:6;7498:29;:::i;:::-;7493:3;7489:39;7482:46;;7278:255;;;;;:::o;7541:318::-;;7701:67;7765:2;7760:3;7701:67;:::i;:::-;7694:74;;7801:20;7797:1;7792:3;7788:11;7781:41;7850:2;7845:3;7841:12;7834:19;;7687:172;;;:::o;7868:324::-;;8028:67;8092:2;8087:3;8028:67;:::i;:::-;8021:74;;8128:26;8124:1;8119:3;8115:11;8108:47;8183:2;8178:3;8174:12;8167:19;;8014:178;;;:::o;8201:381::-;;8361:67;8425:2;8420:3;8361:67;:::i;:::-;8354:74;;8461:34;8457:1;8452:3;8448:11;8441:55;8530:14;8525:2;8520:3;8516:12;8509:36;8573:2;8568:3;8564:12;8557:19;;8347:235;;;:::o;8591:394::-;;8751:67;8815:2;8810:3;8751:67;:::i;:::-;8744:74;;8851:34;8847:1;8842:3;8838:11;8831:55;8920:27;8915:2;8910:3;8906:12;8899:49;8976:2;8971:3;8967:12;8960:19;;8737:248;;;:::o;8994:318::-;;9154:67;9218:2;9213:3;9154:67;:::i;:::-;9147:74;;9254:20;9250:1;9245:3;9241:11;9234:41;9303:2;9298:3;9294:12;9287:19;;9140:172;;;:::o;9321:324::-;;9481:67;9545:2;9540:3;9481:67;:::i;:::-;9474:74;;9581:26;9577:1;9572:3;9568:11;9561:47;9636:2;9631:3;9627:12;9620:19;;9467:178;;;:::o;9654:321::-;;9814:67;9878:2;9873:3;9814:67;:::i;:::-;9807:74;;9914:23;9910:1;9905:3;9901:11;9894:44;9966:2;9961:3;9957:12;9950:19;;9800:175;;;:::o;9984:308::-;;10144:66;10208:1;10203:3;10144:66;:::i;:::-;10137:73;;10243:11;10239:1;10234:3;10230:11;10223:32;10283:2;10278:3;10274:12;10267:19;;10130:162;;;:::o;10301:320::-;;10461:67;10525:2;10520:3;10461:67;:::i;:::-;10454:74;;10561:22;10557:1;10552:3;10548:11;10541:43;10612:2;10607:3;10603:12;10596:19;;10447:174;;;:::o;10630:325::-;;10790:67;10854:2;10849:3;10790:67;:::i;:::-;10783:74;;10890:27;10886:1;10881:3;10877:11;10870:48;10946:2;10941:3;10937:12;10930:19;;10776:179;;;:::o;10964:324::-;;11124:67;11188:2;11183:3;11124:67;:::i;:::-;11117:74;;11224:26;11220:1;11215:3;11211:11;11204:47;11279:2;11274:3;11270:12;11263:19;;11110:178;;;:::o;11297:329::-;;11457:67;11521:2;11516:3;11457:67;:::i;:::-;11450:74;;11557:31;11553:1;11548:3;11544:11;11537:52;11617:2;11612:3;11608:12;11601:19;;11443:183;;;:::o;11635:379::-;;11795:67;11859:2;11854:3;11795:67;:::i;:::-;11788:74;;11895:34;11891:1;11886:3;11882:11;11875:55;11964:12;11959:2;11954:3;11950:12;11943:34;12005:2;12000:3;11996:12;11989:19;;11781:233;;;:::o;12023:375::-;;12183:67;12247:2;12242:3;12183:67;:::i;:::-;12176:74;;12283:34;12279:1;12274:3;12270:11;12263:55;12352:8;12347:2;12342:3;12338:12;12331:30;12389:2;12384:3;12380:12;12373:19;;12169:229;;;:::o;12407:331::-;;12567:67;12631:2;12626:3;12567:67;:::i;:::-;12560:74;;12667:33;12663:1;12658:3;12654:11;12647:54;12729:2;12724:3;12720:12;12713:19;;12553:185;;;:::o;12811:616::-;;12968:4;12963:3;12959:14;13051:4;13044:5;13040:16;13034:23;13103:3;13097:4;13093:14;13086:4;13081:3;13077:14;13070:38;13123:103;13221:4;13207:12;13123:103;:::i;:::-;13115:111;;12988:250;13322:4;13315:5;13311:16;13305:23;13334:61;13389:4;13384:3;13380:14;13366:12;13334:61;:::i;:::-;13248:153;13418:4;13411:11;;12941:486;;;;;:::o;13434:113::-;13517:24;13535:5;13517:24;:::i;:::-;13512:3;13505:37;13499:48;;:::o;13554:100::-;13625:23;13642:5;13625:23;:::i;:::-;13620:3;13613:36;13607:47;;:::o;13661:110::-;13742:23;13759:5;13742:23;:::i;:::-;13737:3;13730:36;13724:47;;:::o;13778:107::-;13857:22;13873:5;13857:22;:::i;:::-;13852:3;13845:35;13839:46;;:::o;13892:144::-;13989:41;14007:22;14023:5;14007:22;:::i;:::-;13989:41;:::i;:::-;13984:3;13977:54;13971:65;;:::o;14043:271::-;;14196:93;14285:3;14276:6;14196:93;:::i;:::-;14189:100;;14306:3;14299:10;;14177:137;;;;:::o;14321:383::-;;14473:71;14540:3;14531:6;14473:71;:::i;:::-;14566:1;14561:3;14557:11;14550:18;;14579:75;14650:3;14641:6;14579:75;:::i;:::-;14676:2;14671:3;14667:12;14660:19;;14696:3;14689:10;;14461:243;;;;;:::o;14711:222::-;;14838:2;14827:9;14823:18;14815:26;;14852:71;14920:1;14909:9;14905:17;14896:6;14852:71;:::i;:::-;14809:124;;;;:::o;14940:238::-;;15075:2;15064:9;15060:18;15052:26;;15089:79;15165:1;15154:9;15150:17;15141:6;15089:79;:::i;:::-;15046:132;;;;:::o;15185:349::-;;15348:2;15337:9;15333:18;15325:26;;15362:79;15438:1;15427:9;15423:17;15414:6;15362:79;:::i;:::-;15452:72;15520:2;15509:9;15505:18;15496:6;15452:72;:::i;:::-;15319:215;;;;;:::o;15541:444::-;;15724:2;15713:9;15709:18;15701:26;;15738:71;15806:1;15795:9;15791:17;15782:6;15738:71;:::i;:::-;15820:72;15888:2;15877:9;15873:18;15864:6;15820:72;:::i;:::-;15903;15971:2;15960:9;15956:18;15947:6;15903:72;:::i;:::-;15695:290;;;;;;:::o;15992:333::-;;16147:2;16136:9;16132:18;16124:26;;16161:71;16229:1;16218:9;16214:17;16205:6;16161:71;:::i;:::-;16243:72;16311:2;16300:9;16296:18;16287:6;16243:72;:::i;:::-;16118:207;;;;;:::o;16332:210::-;;16453:2;16442:9;16438:18;16430:26;;16467:65;16529:1;16518:9;16514:17;16505:6;16467:65;:::i;:::-;16424:118;;;;:::o;16549:548::-;;16756:3;16745:9;16741:19;16733:27;;16771:71;16839:1;16828:9;16824:17;16815:6;16771:71;:::i;:::-;16853:68;16917:2;16906:9;16902:18;16893:6;16853:68;:::i;:::-;16932:72;17000:2;16989:9;16985:18;16976:6;16932:72;:::i;:::-;17015;17083:2;17072:9;17068:18;17059:6;17015:72;:::i;:::-;16727:370;;;;;;;:::o;17104:310::-;;17251:2;17240:9;17236:18;17228:26;;17301:9;17295:4;17291:20;17287:1;17276:9;17272:17;17265:47;17326:78;17399:4;17390:6;17326:78;:::i;:::-;17318:86;;17222:192;;;;:::o;17421:416::-;;17621:2;17610:9;17606:18;17598:26;;17671:9;17665:4;17661:20;17657:1;17646:9;17642:17;17635:47;17696:131;17822:4;17696:131;:::i;:::-;17688:139;;17592:245;;;:::o;17844:416::-;;18044:2;18033:9;18029:18;18021:26;;18094:9;18088:4;18084:20;18080:1;18069:9;18065:17;18058:47;18119:131;18245:4;18119:131;:::i;:::-;18111:139;;18015:245;;;:::o;18267:416::-;;18467:2;18456:9;18452:18;18444:26;;18517:9;18511:4;18507:20;18503:1;18492:9;18488:17;18481:47;18542:131;18668:4;18542:131;:::i;:::-;18534:139;;18438:245;;;:::o;18690:416::-;;18890:2;18879:9;18875:18;18867:26;;18940:9;18934:4;18930:20;18926:1;18915:9;18911:17;18904:47;18965:131;19091:4;18965:131;:::i;:::-;18957:139;;18861:245;;;:::o;19113:416::-;;19313:2;19302:9;19298:18;19290:26;;19363:9;19357:4;19353:20;19349:1;19338:9;19334:17;19327:47;19388:131;19514:4;19388:131;:::i;:::-;19380:139;;19284:245;;;:::o;19536:416::-;;19736:2;19725:9;19721:18;19713:26;;19786:9;19780:4;19776:20;19772:1;19761:9;19757:17;19750:47;19811:131;19937:4;19811:131;:::i;:::-;19803:139;;19707:245;;;:::o;19959:416::-;;20159:2;20148:9;20144:18;20136:26;;20209:9;20203:4;20199:20;20195:1;20184:9;20180:17;20173:47;20234:131;20360:4;20234:131;:::i;:::-;20226:139;;20130:245;;;:::o;20382:416::-;;20582:2;20571:9;20567:18;20559:26;;20632:9;20626:4;20622:20;20618:1;20607:9;20603:17;20596:47;20657:131;20783:4;20657:131;:::i;:::-;20649:139;;20553:245;;;:::o;20805:416::-;;21005:2;20994:9;20990:18;20982:26;;21055:9;21049:4;21045:20;21041:1;21030:9;21026:17;21019:47;21080:131;21206:4;21080:131;:::i;:::-;21072:139;;20976:245;;;:::o;21228:416::-;;21428:2;21417:9;21413:18;21405:26;;21478:9;21472:4;21468:20;21464:1;21453:9;21449:17;21442:47;21503:131;21629:4;21503:131;:::i;:::-;21495:139;;21399:245;;;:::o;21651:416::-;;21851:2;21840:9;21836:18;21828:26;;21901:9;21895:4;21891:20;21887:1;21876:9;21872:17;21865:47;21926:131;22052:4;21926:131;:::i;:::-;21918:139;;21822:245;;;:::o;22074:416::-;;22274:2;22263:9;22259:18;22251:26;;22324:9;22318:4;22314:20;22310:1;22299:9;22295:17;22288:47;22349:131;22475:4;22349:131;:::i;:::-;22341:139;;22245:245;;;:::o;22497:416::-;;22697:2;22686:9;22682:18;22674:26;;22747:9;22741:4;22737:20;22733:1;22722:9;22718:17;22711:47;22772:131;22898:4;22772:131;:::i;:::-;22764:139;;22668:245;;;:::o;22920:416::-;;23120:2;23109:9;23105:18;23097:26;;23170:9;23164:4;23160:20;23156:1;23145:9;23141:17;23134:47;23195:131;23321:4;23195:131;:::i;:::-;23187:139;;23091:245;;;:::o;23343:416::-;;23543:2;23532:9;23528:18;23520:26;;23593:9;23587:4;23583:20;23579:1;23568:9;23564:17;23557:47;23618:131;23744:4;23618:131;:::i;:::-;23610:139;;23514:245;;;:::o;23766:382::-;;23949:2;23938:9;23934:18;23926:26;;23999:9;23993:4;23989:20;23985:1;23974:9;23970:17;23963:47;24024:114;24133:4;24124:6;24024:114;:::i;:::-;24016:122;;23920:228;;;;:::o;24155:218::-;;24280:2;24269:9;24265:18;24257:26;;24294:69;24360:1;24349:9;24345:17;24336:6;24294:69;:::i;:::-;24251:122;;;;:::o;24380:325::-;;24531:2;24520:9;24516:18;24508:26;;24545:69;24611:1;24600:9;24596:17;24587:6;24545:69;:::i;:::-;24625:70;24691:2;24680:9;24676:18;24667:6;24625:70;:::i;:::-;24502:203;;;;;:::o;24712:428::-;;24887:2;24876:9;24872:18;24864:26;;24901:67;24965:1;24954:9;24950:17;24941:6;24901:67;:::i;:::-;24979:72;25047:2;25036:9;25032:18;25023:6;24979:72;:::i;:::-;25062:68;25126:2;25115:9;25111:18;25102:6;25062:68;:::i;:::-;24858:282;;;;;;:::o;25147:774::-;;25411:3;25400:9;25396:19;25388:27;;25426:67;25490:1;25479:9;25475:17;25466:6;25426:67;:::i;:::-;25504:68;25568:2;25557:9;25553:18;25544:6;25504:68;:::i;:::-;25583:79;25658:2;25647:9;25643:18;25634:6;25583:79;:::i;:::-;25673:72;25741:2;25730:9;25726:18;25717:6;25673:72;:::i;:::-;25756:73;25824:3;25813:9;25809:19;25800:6;25756:73;:::i;:::-;25840:71;25906:3;25895:9;25891:19;25882:6;25840:71;:::i;:::-;25382:539;;;;;;;;;:::o;25928:752::-;;26181:3;26170:9;26166:19;26158:27;;26196:67;26260:1;26249:9;26245:17;26236:6;26196:67;:::i;:::-;26274:68;26338:2;26327:9;26323:18;26314:6;26274:68;:::i;:::-;26353;26417:2;26406:9;26402:18;26393:6;26353:68;:::i;:::-;26432:72;26500:2;26489:9;26485:18;26476:6;26432:72;:::i;:::-;26515:73;26583:3;26572:9;26568:19;26559:6;26515:73;:::i;:::-;26599:71;26665:3;26654:9;26650:19;26641:6;26599:71;:::i;:::-;26152:528;;;;;;;;;:::o;26687:151::-;;26773:3;26765:11;;26811:4;26806:3;26802:14;26794:22;;26759:79;;;:::o;26845:137::-;;26954:5;26948:12;26938:22;;26919:63;;;:::o;26989:121::-;;27082:5;27076:12;27066:22;;27047:63;;;:::o;27117:122::-;;27211:5;27205:12;27195:22;;27176:63;;;:::o;27246:108::-;;27344:4;27339:3;27335:14;27327:22;;27321:33;;;:::o;27362:168::-;;27482:6;27477:3;27470:19;27519:4;27514:3;27510:14;27495:29;;27463:67;;;;:::o;27539:144::-;;27674:3;27659:18;;27652:31;;;;:::o;27692:163::-;;27807:6;27802:3;27795:19;27844:4;27839:3;27835:14;27820:29;;27788:67;;;;:::o;27863:91::-;;27925:24;27943:5;27925:24;:::i;:::-;27914:35;;27908:46;;;:::o;27961:85::-;;28034:5;28027:13;28020:21;28009:32;;28003:43;;;:::o;28053:72::-;;28115:5;28104:16;;28098:27;;;:::o;28132:121::-;;28205:42;28198:5;28194:54;28183:65;;28177:76;;;:::o;28260:72::-;;28322:5;28311:16;;28305:27;;;:::o;28339:88::-;;28411:10;28404:5;28400:22;28389:33;;28383:44;;;:::o;28434:81::-;;28505:4;28498:5;28494:16;28483:27;;28477:38;;;:::o;28522:129::-;;28609:37;28640:5;28609:37;:::i;:::-;28596:50;;28590:61;;;:::o;28658:113::-;;28744:22;28760:5;28744:22;:::i;:::-;28731:35;;28725:46;;;:::o;28778:121::-;;28857:37;28888:5;28857:37;:::i;:::-;28844:50;;28838:61;;;:::o;28906:108::-;;28985:24;29003:5;28985:24;:::i;:::-;28972:37;;28966:48;;;:::o;29022:268::-;29087:1;29094:101;29108:6;29105:1;29102:13;29094:101;;;29184:1;29179:3;29175:11;29169:18;29165:1;29160:3;29156:11;29149:39;29130:2;29127:1;29123:10;29118:15;;29094:101;;;29210:6;29207:1;29204:13;29201:2;;;29275:1;29266:6;29261:3;29257:16;29250:27;29201:2;29071:219;;;;:::o;29298:74::-;;29362:5;29351:16;;29345:27;;;:::o;29379:88::-;;29441:21;29456:5;29441:21;:::i;:::-;29430:32;;29424:43;;;:::o;29474:97::-;;29562:2;29558:7;29553:2;29546:5;29542:14;29538:28;29528:38;;29522:49;;;:::o;29579:96::-;;29659:5;29654:3;29650:15;29628:37;;29622:53;;;:::o;29683:117::-;29752:24;29770:5;29752:24;:::i;:::-;29745:5;29742:35;29732:2;;29791:1;29788;29781:12;29732:2;29726:74;:::o;29807:111::-;29873:21;29888:5;29873:21;:::i;:::-;29866:5;29863:32;29853:2;;29909:1;29906;29899:12;29853:2;29847:71;:::o;29925:117::-;29994:24;30012:5;29994:24;:::i;:::-;29987:5;29984:35;29974:2;;30033:1;30030;30023:12;29974:2;29968:74;:::o;30049:117::-;30118:24;30136:5;30118:24;:::i;:::-;30111:5;30108:35;30098:2;;30157:1;30154;30147:12;30098:2;30092:74;:::o;30173:115::-;30241:23;30258:5;30241:23;:::i;:::-;30234:5;30231:34;30221:2;;30279:1;30276;30269:12;30221:2;30215:73;:::o;30295:113::-;30362:22;30378:5;30362:22;:::i;:::-;30355:5;30352:33;30342:2;;30399:1;30396;30389:12;30342:2;30336: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/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\nimport \"./BytesLib.sol\";\nimport \"./WrappedAsset.sol\";\n\ncontract Wormhole is ReentrancyGuard {\n using SafeERC20 for IERC20;\n using BytesLib for bytes;\n using SafeMath for uint256;\n\n // Address of the Wrapped asset template\n address public wrappedAssetMaster;\n\n // Chain ID of Ethereum\n uint8 CHAIN_ID = 2;\n\n // Address of the official WETH contract\n address constant WETHAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n\n struct GuardianSet {\n address[] keys;\n uint32 expiration_time;\n }\n\n event LogGuardianSetChanged(\n uint32 oldGuardianIndex,\n uint32 newGuardianIndex\n );\n\n event LogTokensLocked(\n uint8 target_chain,\n uint8 token_chain,\n uint8 token_decimals,\n bytes32 indexed token,\n bytes32 indexed sender,\n bytes32 recipient,\n uint256 amount,\n uint32 nonce\n );\n\n // Mapping of guardian_set_index => guardian set\n mapping(uint32 => GuardianSet) public guardian_sets;\n // Current active guardian set\n uint32 public guardian_set_index;\n\n // Period for which a guardian set stays active after it has been replaced\n uint32 public guardian_set_expirity;\n\n // Mapping of already consumedVAAs\n mapping(bytes32 => bool) public consumedVAAs;\n\n // Mapping of wrapped asset ERC20 contracts\n mapping(bytes32 => address) public wrappedAssets;\n mapping(address => bool) public isWrappedAsset;\n\n constructor(GuardianSet memory initial_guardian_set, address wrapped_asset_master, uint32 _guardian_set_expirity) public {\n guardian_sets[0] = initial_guardian_set;\n // Explicitly set for doc purposes\n guardian_set_index = 0;\n guardian_set_expirity = _guardian_set_expirity;\n\n wrappedAssetMaster = wrapped_asset_master;\n }\n\n function getGuardianSet(uint32 idx) view public returns (GuardianSet memory gs) {\n return guardian_sets[idx];\n }\n\n function submitVAA(\n bytes calldata vaa\n ) public nonReentrant {\n 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 // 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 / 4) * 3) + 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) + guardian_set_expirity;\n\n emit LogGuardianSetChanged(old_guardian_set_index, guardian_set_index);\n }\n\n function vaaTransfer(bytes memory data) private {\n //uint32 nonce = data.toUint64(0);\n uint8 source_chain = data.toUint8(4);\n\n uint8 target_chain = data.toUint8(5);\n //bytes32 source_address = data.toBytes32(6);\n //bytes32 target_address = data.toBytes32(38);\n address target_address = data.toAddress(38 + 12);\n\n uint8 token_chain = data.toUint8(70);\n //bytes32 token_address = data.toBytes32(71);\n uint256 amount = data.toUint256(104);\n\n require(source_chain != target_chain, \"same chain transfers are not supported\");\n require(target_chain == CHAIN_ID, \"transfer must be incoming\");\n\n if (token_chain != CHAIN_ID) {\n bytes32 token_address = data.toBytes32(71);\n bytes32 asset_id = keccak256(abi.encodePacked(token_chain, token_address));\n\n // if yes: mint to address\n // if no: create and mint\n address wrapped_asset = wrappedAssets[asset_id];\n if (wrapped_asset == address(0)) {\n uint8 asset_decimals = data.toUint8(103);\n wrapped_asset = deployWrappedAsset(asset_id, token_chain, token_address, asset_decimals);\n }\n\n WrappedAsset(wrapped_asset).mint(target_address, amount);\n } else {\n address token_address = data.toAddress(71 + 12);\n\n IERC20(token_address).safeTransfer(target_address, amount);\n }\n }\n\n function deployWrappedAsset(bytes32 seed, uint8 token_chain, bytes32 token_address, uint8 decimals) private returns (address asset){\n // Taken from https://github.com/OpenZeppelin/openzeppelin-sdk/blob/master/packages/lib/contracts/upgradeability/ProxyFactory.sol\n // Licensed under MIT\n bytes20 targetBytes = bytes20(wrappedAssetMaster);\n assembly {\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)\n asset := create2(0, clone, 0x37, seed)\n }\n\n // Call initializer\n WrappedAsset(asset).initialize(token_chain, token_address, decimals);\n\n // Store address\n wrappedAssets[seed] = asset;\n isWrappedAsset[asset] = true;\n }\n\n function lockAssets(\n address asset,\n uint256 amount,\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce\n ) 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, ERC20(asset).decimals(), asset_address, bytes32(uint256(msg.sender)), recipient, amount, nonce);\n }\n\n function lockETH(\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce\n ) public payable nonReentrant {\n require(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, 18, 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", + "sourceMap": "502:9541:1:-:0;;;832:1;815:18;;;;;;;;;;;;;;;;;;;;1964:360;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1628:1:9;1743:7;:22;;;;2114:20:1;2095:13;:16;2109:1;2095:16;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2208:1;2187:18;;:22;;;;;;;;;;;;;;;;;;2243;2219:21;;:46;;;;;;;;;;;;;;;;;;2297:20;2276:18;;:41;;;;;;;;;;;;;;;;;;1964:360;;;502:9541;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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;502:9541:1:-;;;;;;;", + "deployedSourceMap": "502:9541:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9985:54;;;;;;;;;;:::i;:::-;;;;;;;;502:9541;9895:54;;;;;;;;;;:::i;:::-;;;;;;;;1911:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2458:1874;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1467:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1677:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9398:462;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7554:1838;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1559:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;747:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1758:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1857:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2330:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1911:46;;;;;;;;;;;;;;;;;;;;;;:::o;2458:1874::-;1671:1:9;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;2541:13:1::1;2557:14;2569:1;2557:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2541:30;;2600:1;2589:7;:12;;;2581:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2687:29;2719:15;2732:1;2719:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;2687:47;;2745:19;2767:14;2779:1;2767:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2745:36;;;;2791:11;2814;2809:2;:16;2805:1;:20;2791:34;;2947:12;2972:38;2982:6;3003;2990:3;;:10;;:19;2972:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;:::i;:::-;2962:49;;;;;;2947:64;;3030:12;:18;3043:4;3030:18;;;;;;;;;;;;;;;;;;;;;3029:19;3021:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3088:31;;:::i;:::-;3122:13;:37;3136:22;3122:37;;;;;;;;;;;;;;;3088:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;3209:1;3177:12;:28;;;:33;;;:83;;;;3245:15;3214:12;:28;;;:46;;;3177:83;3169:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3351:11;3346:1;3341;3336;3309:12;:17;;;:24;:28;;;;;;3308:34;3307:40;:55;;3299:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;3392:6;3387:373;3408:11;3404:1;:15;3387:373;;;3440:11;3454:23;3474:2;3470:1;:6;3466:1;:10;3454:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;3440:37;;3491:9;3503:25;3525:2;3521:1;:6;3517:1;:10;3503:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;3491:37;;3542:9;3554:26;3577:2;3573:1;:6;3568:2;:11;3554:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;3542:38;;3594:7;3604:24;3625:2;3621:1;:6;3616:2;:11;3604:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;3594:34;;3647:2;3642:7;;;;3699:12;:17;;;3717:5;3699:24;;;;;;;;;;;;;;;;3671:52;;:24;3681:4;3687:1;3690;3693;3671:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;:52;;;3663:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;3387:373;;;;3421:3;;;;;;;3387:373;;;;3770:12;3785:23;3806:1;3797:6;:10;3785:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;3770:38;;3818:20;3841:48;3860:1;3851:6;:10;3886:1;3877:6;:10;3863:3;;:10;;:25;3841:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;:::i;:::-;3818:71;;3937:4;3927:6;:14;;;3923:332;;;3991:18;;;;;;;;;;;3965:44;;:22;:44;;;3957:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;4085:29;4106:7;4085:20;:29::i;:::-;3923:332;;;4145:4;4135:6;:14;;;4131:124;;;4165:20;4177:7;4165:11;:20::i;:::-;4131:124;;;4216:28;;;;;;;;;;:::i;:::-;;;;;;;;4131:124;3923:332;4321:4;4300:12;:18;4313:4;4300:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;2419:1:9;;;;;;;;1628::::0;2563:7;:22;;;;2458:1874:1;;:::o;1467:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1677:35::-;;;;;;;;;;;;;:::o;9398:462::-;1671:1:9;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;9557:1:1::1;9544:9;:14;;9536:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;916:42;9627:25;;;9661:9;9627:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;9811:10;9803:19;;9795:28;;916:42;9772:20;;9764:29;;9720:133;9736:12;9750:8;;;;;;;;;;;9760:2;9825:9;9836;9847:5;9720:133;;;;;;;;;;;:::i;:::-;;;;;;;;1628:1:9::0;2563:7;:22;;;;9398:462:1;;;:::o;7554:1838::-;1671:1:9;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;7778:1:1::1;7768:6;:11;;7760:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7815:17;7835:8;;;;;;;;;;;7815:28;;7853:21;7884:14:::0;7907:5:::1;7901:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7884:40;;7939:14;:21;7954:5;7939:21;;;;;;;;;;;;;;;;;;;;;;;;;7935:1312;;;7989:5;7976:24;;;8001:10;8013:6;7976:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8061:5;8048:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8034:46;;8123:5;8110:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8094:50;;7935:1312;;;8175:21;8206:5;8199:23;;;8231:4;8199:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8175:62;;8251:65;8282:10;8302:4;8309:6;8258:5;8251:30;;;;:65;;;;;;:::i;:::-;8330:20;8360:5;8353:23;;;8385:4;8353:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8330:61;;8605:31;8622:13;8605:12;:16;;:31;;;;:::i;:::-;8596:40;;8722:1;8711:8;:12;;;8707:339;;;8743:23;8769:6;8743:32;;8802:39;8838:1;8827:8;:12;8819:21;;8813:2;:27;8802:6;:10;;:39;;;;:::i;:::-;8793:48;;8864:11;8860:141;;;8905:5;8899:21;;;8921:10;8933:48;8978:1;8967:8;:12;8959:21;;8953:2;:27;8933:15;:19;;:48;;;;:::i;:::-;8899:83;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8860:141;9030:1;9019:12;;8707:339;;669:26;9068:74:::0;::::1;:60;9125:1;9105:5;9099:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:27;9091:36;;9085:2;:42;9068:12;:16;;:60;;;;:::i;:::-;:74;;9060:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;9229:5;9221:14;;9213:23;;9197:39;;7935:1312;;;9346:10;9338:19;;9330:28;;9315:13;9262:123;9278:12;9292:11;9305:8;9360:9;9371:6;9379:5;9262:123;;;;;;;;;;;:::i;:::-;;;;;;;;2419:1:9;;;1628::::0;2563:7;:22;;;;7554:1838:1;;;;;;:::o;1559:32::-;;;;;;;;;;;;;:::o;747:33::-;;;;;;;;;;;;;:::o;1758:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;1857:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2330:122::-;2387:21;;:::i;:::-;2427:13;:18;2441:3;2427:18;;;;;;;;;;;;;;;2420:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2330:122;;;:::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;4338:812:1:-;4405:29;4437:16;4451:1;4437:4;:13;;:16;;;;:::i;:::-;4405:48;;4463:9;4475:15;4488:1;4475:4;:12;;:15;;;;:::i;:::-;4463:27;;4501:30;4548:3;4534:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4501:51;;4567:6;4562:134;4583:3;4579:7;;:1;:7;4562:134;;;4607:12;4622:26;4645:2;4641:1;:6;4637:1;:10;4622:4;:14;;:26;;;;:::i;:::-;4607:41;;4681:4;4662:13;4676:1;4662:16;;;;;;;;;;;;;:23;;;;;;;;;;;4562:134;4588:3;;;;;;;4562:134;;;;4706:29;4738:18;;;;;;;;;;;4706:50;;4787:22;4766:18;;:43;;;;;;;;;;;;;;;;;;4820:35;;:::i;:::-;4858:29;;;;;;;;4870:13;4858:29;;;;4885:1;4858:29;;;;;4820:67;;4933:16;4897:13;:33;4911:18;;;;;;;;;;;4897:33;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5041:21;;;;;;;;;;;5022:15;5015:47;4959:13;:37;4973:22;4959:37;;;;;;;;;;;;;;;:53;;;:103;;;;;;;;;;;;;;;;;;5078:65;5100:22;5124:18;;;;;;;;;;;5078:65;;;;;;;:::i;:::-;;;;;;;;4338:812;;;;;;:::o;5156:1447::-;5257:18;5278:15;5291:1;5278:4;:12;;:15;;;;:::i;:::-;5257:36;;5304:18;5325:15;5338:1;5325:4;:12;;:15;;;;:::i;:::-;5304:36;;5459:22;5484:23;5499:7;5484:4;:14;;:23;;;;:::i;:::-;5459:48;;5518:17;5538:16;5551:2;5538:4;:12;;:16;;;;:::i;:::-;5518:36;;5618:14;5635:19;5650:3;5635:4;:14;;:19;;;;:::i;:::-;5618:36;;5689:12;5673:28;;:12;:28;;;;5665:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5778:8;;;;;;;;;;;5762:24;;:12;:24;;;5754:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5846:8;;;;;;;;;;;5831:23;;:11;:23;;;5827:770;;5870:21;5894:18;5909:2;5894:4;:14;;:18;;;;:::i;:::-;5870:42;;5926:16;5972:11;5985:13;5955:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5945:55;;;;;;5926:74;;6092:21;6116:13;:23;6130:8;6116:23;;;;;;;;;;;;;;;;;;;;;6092:47;;6182:1;6157:27;;:13;:27;;;6153:212;;;6204:20;6227:17;6240:3;6227:4;:12;;:17;;;;:::i;:::-;6204:40;;6278:72;6297:8;6307:11;6320:13;6335:14;6278:18;:72::i;:::-;6262:88;;6153:212;;6392:13;6379:32;;;6412:14;6428:6;6379:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5827:770;;;;;;6466:21;6490:23;6505:7;6490:4;:14;;:23;;;;:::i;:::-;6466:47;;6528:58;6563:14;6579:6;6535:13;6528:34;;;;:58;;;;;:::i;:::-;5827:770;;5156:1447;;;;;;:::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:4:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;;1321:134;;;;:::o;3101:130::-;3159:7;3185:39;3189:1;3192;3185:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3178:46;;3101:130;;;;:::o;4436:128::-;4494:7;4520:37;4524:1;4527;4520:37;;;;;;;;;;;;;;;;;:3;:37::i;:::-;4513:44;;4436:128;;;;:::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;6609:939:1:-;6726:13;6918:19;6948:18;;;;;;;;;;;6940:27;;6918:49;;7019:4;7013:11;7051:66;7044:5;7037:81;7156:11;7149:4;7142:5;7138:16;7131:37;7206:66;7199:4;7192:5;7188:16;7181:92;7319:4;7313;7306:5;7303:1;7295:29;7286:38;;6986:348;7385:5;7372:30;;;7403:11;7416:13;7431:8;7372:68;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7498:5;7476:13;:19;7490:4;7476:19;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7537:4;7513:14;:21;7528:5;7513:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6609:939;;;;;;;:::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: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;3713:272::-;3799:7;3830:1;3826;:5;3833:12;3818:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3856:9;3872:1;3868;:5;;;;;;3856:17;;3977:1;3970:8;;;3713:272;;;;;:::o;5035:163::-;5121:7;5153:1;5148;:6;;5156:12;5140:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5190:1;5186;:5;;;;;;5179:12;;5035:163;;;;;:::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;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:124::-;;219:6;206:20;197:29;;231:30;255:5;231:30;:::i;:::-;191:75;;;;:::o;273:128::-;;354:6;348:13;339:22;;366:30;390:5;366:30;:::i;:::-;333:68;;;;:::o;408:130::-;;488:6;475:20;466:29;;500:33;527:5;500:33;:::i;:::-;460:78;;;;:::o;545:134::-;;629:6;623:13;614:22;;641:33;668:5;641:33;:::i;:::-;608:71;;;;:::o;700:336::-;;;814:3;807:4;799:6;795:17;791:27;781:2;;832:1;829;822:12;781:2;865:6;852:20;842:30;;892:18;884:6;881:30;878:2;;;924:1;921;914:12;878:2;958:4;950:6;946:17;934:29;;1009:3;1001:4;993:6;989:17;979:8;975:32;972:41;969:2;;;1026:1;1023;1016:12;969:2;774:262;;;;;:::o;1044:130::-;;1124:6;1111:20;1102:29;;1136:33;1163:5;1136:33;:::i;:::-;1096:78;;;;:::o;1181:134::-;;1265:6;1259:13;1250:22;;1277:33;1304:5;1277:33;:::i;:::-;1244:71;;;;:::o;1322:128::-;;1401:6;1388:20;1379:29;;1413:32;1439:5;1413:32;:::i;:::-;1373:77;;;;:::o;1457:126::-;;1535:6;1522:20;1513:29;;1547:31;1572:5;1547:31;:::i;:::-;1507:76;;;;:::o;1590:130::-;;1672:6;1666:13;1657:22;;1684:31;1709:5;1684:31;:::i;:::-;1651:69;;;;:::o;1727:241::-;;1831:2;1819:9;1810:7;1806:23;1802:32;1799:2;;;1847:1;1844;1837:12;1799:2;1882:1;1899:53;1944:7;1935:6;1924:9;1920:22;1899:53;:::i;:::-;1889:63;;1861:97;1793:175;;;;:::o;1975:857::-;;;;;;;2158:3;2146:9;2137:7;2133:23;2129:33;2126:2;;;2175:1;2172;2165:12;2126:2;2210:1;2227:53;2272:7;2263:6;2252:9;2248:22;2227:53;:::i;:::-;2217:63;;2189:97;2317:2;2335:53;2380:7;2371:6;2360:9;2356:22;2335:53;:::i;:::-;2325:63;;2296:98;2425:2;2443:53;2488:7;2479:6;2468:9;2464:22;2443:53;:::i;:::-;2433:63;;2404:98;2533:2;2551:51;2594:7;2585:6;2574:9;2570:22;2551:51;:::i;:::-;2541:61;;2512:96;2639:3;2658:52;2702:7;2693:6;2682:9;2678:22;2658:52;:::i;:::-;2648:62;;2618:98;2747:3;2766:50;2808:7;2799:6;2788:9;2784:22;2766:50;:::i;:::-;2756:60;;2726:96;2120:712;;;;;;;;:::o;2839:257::-;;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2967:1;2964;2957:12;2919:2;3002:1;3019:61;3072:7;3063:6;3052:9;3048:22;3019:61;:::i;:::-;3009:71;;2981:105;2913:183;;;;:::o;3103:241::-;;3207:2;3195:9;3186:7;3182:23;3178:32;3175:2;;;3223:1;3220;3213:12;3175:2;3258:1;3275:53;3320:7;3311:6;3300:9;3296:22;3275:53;:::i;:::-;3265:63;;3237:97;3169:175;;;;:::o;3351:263::-;;3466:2;3454:9;3445:7;3441:23;3437:32;3434:2;;;3482:1;3479;3472:12;3434:2;3517:1;3534:64;3590:7;3581:6;3570:9;3566:22;3534:64;:::i;:::-;3524:74;;3496:108;3428:186;;;;:::o;3621:485::-;;;;3756:2;3744:9;3735:7;3731:23;3727:32;3724:2;;;3772:1;3769;3762:12;3724:2;3807:1;3824:53;3869:7;3860:6;3849:9;3845:22;3824:53;:::i;:::-;3814:63;;3786:97;3914:2;3932:51;3975:7;3966:6;3955:9;3951:22;3932:51;:::i;:::-;3922:61;;3893:96;4020:2;4038:52;4082:7;4073:6;4062:9;4058:22;4038:52;:::i;:::-;4028:62;;3999:97;3718:388;;;;;:::o;4113:365::-;;;4236:2;4224:9;4215:7;4211:23;4207:32;4204:2;;;4252:1;4249;4242:12;4204:2;4315:1;4304:9;4300:17;4287:31;4338:18;4330:6;4327:30;4324:2;;;4370:1;4367;4360:12;4324:2;4398:64;4454:7;4445:6;4434:9;4430:22;4398:64;:::i;:::-;4380:82;;;;4266:202;4198:280;;;;;:::o;4485:263::-;;4600:2;4588:9;4579:7;4575:23;4571:32;4568:2;;;4616:1;4613;4606:12;4568:2;4651:1;4668:64;4724:7;4715:6;4704:9;4700:22;4668:64;:::i;:::-;4658:74;;4630:108;4562:186;;;;:::o;4755:239::-;;4858:2;4846:9;4837:7;4833:23;4829:32;4826:2;;;4874:1;4871;4864:12;4826:2;4909:1;4926:52;4970:7;4961:6;4950:9;4946:22;4926:52;:::i;:::-;4916:62;;4888:96;4820:174;;;;:::o;5001:259::-;;5114:2;5102:9;5093:7;5089:23;5085:32;5082:2;;;5130:1;5127;5120:12;5082:2;5165:1;5182:62;5236:7;5227:6;5216:9;5212:22;5182:62;:::i;:::-;5172:72;;5144:106;5076:184;;;;:::o;5268:173::-;;5355:46;5397:3;5389:6;5355:46;:::i;:::-;5430:4;5425:3;5421:14;5407:28;;5348:93;;;;:::o;5449:142::-;5540:45;5579:5;5540:45;:::i;:::-;5535:3;5528:58;5522:69;;:::o;5598:103::-;5671:24;5689:5;5671:24;:::i;:::-;5666:3;5659:37;5653:48;;:::o;5708:113::-;5791:24;5809:5;5791:24;:::i;:::-;5786:3;5779:37;5773:48;;:::o;5859:670::-;;5994:54;6042:5;5994:54;:::i;:::-;6061:76;6130:6;6125:3;6061:76;:::i;:::-;6054:83;;6158:56;6208:5;6158:56;:::i;:::-;6234:7;6262:1;6247:260;6272:6;6269:1;6266:13;6247:260;;;6339:6;6333:13;6360:63;6419:3;6404:13;6360:63;:::i;:::-;6353:70;;6440:60;6493:6;6440:60;:::i;:::-;6430:70;;6304:203;6294:1;6291;6287:9;6282:14;;6247:260;;;6251:14;6520:3;6513:10;;5973:556;;;;;;;:::o;6537:104::-;6614:21;6629:5;6614:21;:::i;:::-;6609:3;6602:34;6596:45;;:::o;6648:113::-;6731:24;6749:5;6731:24;:::i;:::-;6726:3;6719:37;6713:48;;:::o;6768:152::-;6869:45;6889:24;6907:5;6889:24;:::i;:::-;6869:45;:::i;:::-;6864:3;6857:58;6851:69;;:::o;6927:356::-;;7055:38;7087:5;7055:38;:::i;:::-;7105:88;7186:6;7181:3;7105:88;:::i;:::-;7098:95;;7198:52;7243:6;7238:3;7231:4;7224:5;7220:16;7198:52;:::i;:::-;7271:6;7266:3;7262:16;7255:23;;7035:248;;;;;:::o;7290:140::-;7380:44;7418:5;7380:44;:::i;:::-;7375:3;7368:57;7362:68;;:::o;7437:347::-;;7549:39;7582:5;7549:39;:::i;:::-;7600:71;7664:6;7659:3;7600:71;:::i;:::-;7593:78;;7676:52;7721:6;7716:3;7709:4;7702:5;7698:16;7676:52;:::i;:::-;7749:29;7771:6;7749:29;:::i;:::-;7744:3;7740:39;7733:46;;7529:255;;;;;:::o;7792:372::-;;7952:67;8016:2;8011:3;7952:67;:::i;:::-;7945:74;;8052:34;8048:1;8043:3;8039:11;8032:55;8121:5;8116:2;8111:3;8107:12;8100:27;8155:2;8150:3;8146:12;8139:19;;7938:226;;;:::o;8173:318::-;;8333:67;8397:2;8392:3;8333:67;:::i;:::-;8326:74;;8433:20;8429:1;8424:3;8420:11;8413:41;8482:2;8477:3;8473:12;8466:19;;8319:172;;;:::o;8500:324::-;;8660:67;8724:2;8719:3;8660:67;:::i;:::-;8653:74;;8760:26;8756:1;8751:3;8747:11;8740:47;8815:2;8810:3;8806:12;8799:19;;8646:178;;;:::o;8833:381::-;;8993:67;9057:2;9052:3;8993:67;:::i;:::-;8986:74;;9093:34;9089:1;9084:3;9080:11;9073:55;9162:14;9157:2;9152:3;9148:12;9141:36;9205:2;9200:3;9196:12;9189:19;;8979:235;;;:::o;9223:394::-;;9383:67;9447:2;9442:3;9383:67;:::i;:::-;9376:74;;9483:34;9479:1;9474:3;9470:11;9463:55;9552:27;9547:2;9542:3;9538:12;9531:49;9608:2;9603:3;9599:12;9592:19;;9369:248;;;:::o;9626:318::-;;9786:67;9850:2;9845:3;9786:67;:::i;:::-;9779:74;;9886:20;9882:1;9877:3;9873:11;9866:41;9935:2;9930:3;9926:12;9919:19;;9772:172;;;:::o;9953:324::-;;10113:67;10177:2;10172:3;10113:67;:::i;:::-;10106:74;;10213:26;10209:1;10204:3;10200:11;10193:47;10268:2;10263:3;10259:12;10252:19;;10099:178;;;:::o;10286:321::-;;10446:67;10510:2;10505:3;10446:67;:::i;:::-;10439:74;;10546:23;10542:1;10537:3;10533:11;10526:44;10598:2;10593:3;10589:12;10582:19;;10432:175;;;:::o;10616:308::-;;10776:66;10840:1;10835:3;10776:66;:::i;:::-;10769:73;;10875:11;10871:1;10866:3;10862:11;10855:32;10915:2;10910:3;10906:12;10899:19;;10762:162;;;:::o;10933:320::-;;11093:67;11157:2;11152:3;11093:67;:::i;:::-;11086:74;;11193:22;11189:1;11184:3;11180:11;11173:43;11244:2;11239:3;11235:12;11228:19;;11079:174;;;:::o;11262:325::-;;11422:67;11486:2;11481:3;11422:67;:::i;:::-;11415:74;;11522:27;11518:1;11513:3;11509:11;11502:48;11578:2;11573:3;11569:12;11562:19;;11408:179;;;:::o;11596:324::-;;11756:67;11820:2;11815:3;11756:67;:::i;:::-;11749:74;;11856:26;11852:1;11847:3;11843:11;11836:47;11911:2;11906:3;11902:12;11895:19;;11742:178;;;:::o;11929:329::-;;12089:67;12153:2;12148:3;12089:67;:::i;:::-;12082:74;;12189:31;12185:1;12180:3;12176:11;12169:52;12249:2;12244:3;12240:12;12233:19;;12075:183;;;:::o;12267:379::-;;12427:67;12491:2;12486:3;12427:67;:::i;:::-;12420:74;;12527:34;12523:1;12518:3;12514:11;12507:55;12596:12;12591:2;12586:3;12582:12;12575:34;12637:2;12632:3;12628:12;12621:19;;12413:233;;;:::o;12655:375::-;;12815:67;12879:2;12874:3;12815:67;:::i;:::-;12808:74;;12915:34;12911:1;12906:3;12902:11;12895:55;12984:8;12979:2;12974:3;12970:12;12963:30;13021:2;13016:3;13012:12;13005:19;;12801:229;;;:::o;13039:331::-;;13199:67;13263:2;13258:3;13199:67;:::i;:::-;13192:74;;13299:33;13295:1;13290:3;13286:11;13279:54;13361:2;13356:3;13352:12;13345:19;;13185:185;;;:::o;13443:616::-;;13600:4;13595:3;13591:14;13683:4;13676:5;13672:16;13666:23;13735:3;13729:4;13725:14;13718:4;13713:3;13709:14;13702:38;13755:103;13853:4;13839:12;13755:103;:::i;:::-;13747:111;;13620:250;13954:4;13947:5;13943:16;13937:23;13966:61;14021:4;14016:3;14012:14;13998:12;13966:61;:::i;:::-;13880:153;14050:4;14043:11;;13573:486;;;;;:::o;14066:113::-;14149:24;14167:5;14149:24;:::i;:::-;14144:3;14137:37;14131:48;;:::o;14186:100::-;14257:23;14274:5;14257:23;:::i;:::-;14252:3;14245:36;14239:47;;:::o;14293:110::-;14374:23;14391:5;14374:23;:::i;:::-;14369:3;14362:36;14356:47;;:::o;14410:107::-;14489:22;14505:5;14489:22;:::i;:::-;14484:3;14477:35;14471:46;;:::o;14524:144::-;14621:41;14639:22;14655:5;14639:22;:::i;:::-;14621:41;:::i;:::-;14616:3;14609:54;14603:65;;:::o;14675:271::-;;14828:93;14917:3;14908:6;14828:93;:::i;:::-;14821:100;;14938:3;14931:10;;14809:137;;;;:::o;14953:383::-;;15105:71;15172:3;15163:6;15105:71;:::i;:::-;15198:1;15193:3;15189:11;15182:18;;15211:75;15282:3;15273:6;15211:75;:::i;:::-;15308:2;15303:3;15299:12;15292:19;;15328:3;15321:10;;15093:243;;;;;:::o;15343:222::-;;15470:2;15459:9;15455:18;15447:26;;15484:71;15552:1;15541:9;15537:17;15528:6;15484:71;:::i;:::-;15441:124;;;;:::o;15572:238::-;;15707:2;15696:9;15692:18;15684:26;;15721:79;15797:1;15786:9;15782:17;15773:6;15721:79;:::i;:::-;15678:132;;;;:::o;15817:349::-;;15980:2;15969:9;15965:18;15957:26;;15994:79;16070:1;16059:9;16055:17;16046:6;15994:79;:::i;:::-;16084:72;16152:2;16141:9;16137:18;16128:6;16084:72;:::i;:::-;15951:215;;;;;:::o;16173:444::-;;16356:2;16345:9;16341:18;16333:26;;16370:71;16438:1;16427:9;16423:17;16414:6;16370:71;:::i;:::-;16452:72;16520:2;16509:9;16505:18;16496:6;16452:72;:::i;:::-;16535;16603:2;16592:9;16588:18;16579:6;16535:72;:::i;:::-;16327:290;;;;;;:::o;16624:333::-;;16779:2;16768:9;16764:18;16756:26;;16793:71;16861:1;16850:9;16846:17;16837:6;16793:71;:::i;:::-;16875:72;16943:2;16932:9;16928:18;16919:6;16875:72;:::i;:::-;16750:207;;;;;:::o;16964:210::-;;17085:2;17074:9;17070:18;17062:26;;17099:65;17161:1;17150:9;17146:17;17137:6;17099:65;:::i;:::-;17056:118;;;;:::o;17181:548::-;;17388:3;17377:9;17373:19;17365:27;;17403:71;17471:1;17460:9;17456:17;17447:6;17403:71;:::i;:::-;17485:68;17549:2;17538:9;17534:18;17525:6;17485:68;:::i;:::-;17564:72;17632:2;17621:9;17617:18;17608:6;17564:72;:::i;:::-;17647;17715:2;17704:9;17700:18;17691:6;17647:72;:::i;:::-;17359:370;;;;;;;:::o;17736:310::-;;17883:2;17872:9;17868:18;17860:26;;17933:9;17927:4;17923:20;17919:1;17908:9;17904:17;17897:47;17958:78;18031:4;18022:6;17958:78;:::i;:::-;17950:86;;17854:192;;;;:::o;18053:416::-;;18253:2;18242:9;18238:18;18230:26;;18303:9;18297:4;18293:20;18289:1;18278:9;18274:17;18267:47;18328:131;18454:4;18328:131;:::i;:::-;18320:139;;18224:245;;;:::o;18476:416::-;;18676:2;18665:9;18661:18;18653:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18751:131;18877:4;18751:131;:::i;:::-;18743:139;;18647:245;;;:::o;18899:416::-;;19099:2;19088:9;19084:18;19076:26;;19149:9;19143:4;19139:20;19135:1;19124:9;19120:17;19113:47;19174:131;19300:4;19174:131;:::i;:::-;19166:139;;19070:245;;;:::o;19322:416::-;;19522:2;19511:9;19507:18;19499:26;;19572:9;19566:4;19562:20;19558:1;19547:9;19543:17;19536:47;19597:131;19723:4;19597:131;:::i;:::-;19589:139;;19493:245;;;:::o;19745:416::-;;19945:2;19934:9;19930:18;19922:26;;19995:9;19989:4;19985:20;19981:1;19970:9;19966:17;19959:47;20020:131;20146:4;20020:131;:::i;:::-;20012:139;;19916:245;;;:::o;20168:416::-;;20368:2;20357:9;20353:18;20345:26;;20418:9;20412:4;20408:20;20404:1;20393:9;20389:17;20382:47;20443:131;20569:4;20443:131;:::i;:::-;20435:139;;20339:245;;;:::o;20591:416::-;;20791:2;20780:9;20776:18;20768:26;;20841:9;20835:4;20831:20;20827:1;20816:9;20812:17;20805:47;20866:131;20992:4;20866:131;:::i;:::-;20858:139;;20762:245;;;:::o;21014:416::-;;21214:2;21203:9;21199:18;21191:26;;21264:9;21258:4;21254:20;21250:1;21239:9;21235:17;21228:47;21289:131;21415:4;21289:131;:::i;:::-;21281:139;;21185:245;;;:::o;21437:416::-;;21637:2;21626:9;21622:18;21614:26;;21687:9;21681:4;21677:20;21673:1;21662:9;21658:17;21651:47;21712:131;21838:4;21712:131;:::i;:::-;21704:139;;21608:245;;;:::o;21860:416::-;;22060:2;22049:9;22045:18;22037:26;;22110:9;22104:4;22100:20;22096:1;22085:9;22081:17;22074:47;22135:131;22261:4;22135:131;:::i;:::-;22127:139;;22031:245;;;:::o;22283:416::-;;22483:2;22472:9;22468:18;22460:26;;22533:9;22527:4;22523:20;22519:1;22508:9;22504:17;22497:47;22558:131;22684:4;22558:131;:::i;:::-;22550:139;;22454:245;;;:::o;22706:416::-;;22906:2;22895:9;22891:18;22883:26;;22956:9;22950:4;22946:20;22942:1;22931:9;22927:17;22920:47;22981:131;23107:4;22981:131;:::i;:::-;22973:139;;22877:245;;;:::o;23129:416::-;;23329:2;23318:9;23314:18;23306:26;;23379:9;23373:4;23369:20;23365:1;23354:9;23350:17;23343:47;23404:131;23530:4;23404:131;:::i;:::-;23396:139;;23300:245;;;:::o;23552:416::-;;23752:2;23741:9;23737:18;23729:26;;23802:9;23796:4;23792:20;23788:1;23777:9;23773:17;23766:47;23827:131;23953:4;23827:131;:::i;:::-;23819:139;;23723:245;;;:::o;23975:416::-;;24175:2;24164:9;24160:18;24152:26;;24225:9;24219:4;24215:20;24211:1;24200:9;24196:17;24189:47;24250:131;24376:4;24250:131;:::i;:::-;24242:139;;24146:245;;;:::o;24398:416::-;;24598:2;24587:9;24583:18;24575:26;;24648:9;24642:4;24638:20;24634:1;24623:9;24619:17;24612:47;24673:131;24799:4;24673:131;:::i;:::-;24665:139;;24569:245;;;:::o;24821:382::-;;25004:2;24993:9;24989:18;24981:26;;25054:9;25048:4;25044:20;25040:1;25029:9;25025:17;25018:47;25079:114;25188:4;25179:6;25079:114;:::i;:::-;25071:122;;24975:228;;;;:::o;25210:218::-;;25335:2;25324:9;25320:18;25312:26;;25349:69;25415:1;25404:9;25400:17;25391:6;25349:69;:::i;:::-;25306:122;;;;:::o;25435:325::-;;25586:2;25575:9;25571:18;25563:26;;25600:69;25666:1;25655:9;25651:17;25642:6;25600:69;:::i;:::-;25680:70;25746:2;25735:9;25731:18;25722:6;25680:70;:::i;:::-;25557:203;;;;;:::o;25767:428::-;;25942:2;25931:9;25927:18;25919:26;;25956:67;26020:1;26009:9;26005:17;25996:6;25956:67;:::i;:::-;26034:72;26102:2;26091:9;26087:18;26078:6;26034:72;:::i;:::-;26117:68;26181:2;26170:9;26166:18;26157:6;26117:68;:::i;:::-;25913:282;;;;;;:::o;26202:774::-;;26466:3;26455:9;26451:19;26443:27;;26481:67;26545:1;26534:9;26530:17;26521:6;26481:67;:::i;:::-;26559:68;26623:2;26612:9;26608:18;26599:6;26559:68;:::i;:::-;26638:79;26713:2;26702:9;26698:18;26689:6;26638:79;:::i;:::-;26728:72;26796:2;26785:9;26781:18;26772:6;26728:72;:::i;:::-;26811:73;26879:3;26868:9;26864:19;26855:6;26811:73;:::i;:::-;26895:71;26961:3;26950:9;26946:19;26937:6;26895:71;:::i;:::-;26437:539;;;;;;;;;:::o;26983:752::-;;27236:3;27225:9;27221:19;27213:27;;27251:67;27315:1;27304:9;27300:17;27291:6;27251:67;:::i;:::-;27329:68;27393:2;27382:9;27378:18;27369:6;27329:68;:::i;:::-;27408;27472:2;27461:9;27457:18;27448:6;27408:68;:::i;:::-;27487:72;27555:2;27544:9;27540:18;27531:6;27487:72;:::i;:::-;27570:73;27638:3;27627:9;27623:19;27614:6;27570:73;:::i;:::-;27654:71;27720:3;27709:9;27705:19;27696:6;27654:71;:::i;:::-;27207:528;;;;;;;;;:::o;27742:151::-;;27828:3;27820:11;;27866:4;27861:3;27857:14;27849:22;;27814:79;;;:::o;27900:137::-;;28009:5;28003:12;27993:22;;27974:63;;;:::o;28044:121::-;;28137:5;28131:12;28121:22;;28102:63;;;:::o;28172:122::-;;28266:5;28260:12;28250:22;;28231:63;;;:::o;28301:108::-;;28399:4;28394:3;28390:14;28382:22;;28376:33;;;:::o;28417:168::-;;28537:6;28532:3;28525:19;28574:4;28569:3;28565:14;28550:29;;28518:67;;;;:::o;28594:144::-;;28729:3;28714:18;;28707:31;;;;:::o;28747:163::-;;28862:6;28857:3;28850:19;28899:4;28894:3;28890:14;28875:29;;28843:67;;;;:::o;28918:91::-;;28980:24;28998:5;28980:24;:::i;:::-;28969:35;;28963:46;;;:::o;29016:85::-;;29089:5;29082:13;29075:21;29064:32;;29058:43;;;:::o;29108:72::-;;29170:5;29159:16;;29153:27;;;:::o;29187:121::-;;29260:42;29253:5;29249:54;29238:65;;29232:76;;;:::o;29315:72::-;;29377:5;29366:16;;29360:27;;;:::o;29394:88::-;;29466:10;29459:5;29455:22;29444:33;;29438:44;;;:::o;29489:81::-;;29560:4;29553:5;29549:16;29538:27;;29532:38;;;:::o;29577:129::-;;29664:37;29695:5;29664:37;:::i;:::-;29651:50;;29645:61;;;:::o;29713:113::-;;29799:22;29815:5;29799:22;:::i;:::-;29786:35;;29780:46;;;:::o;29833:121::-;;29912:37;29943:5;29912:37;:::i;:::-;29899:50;;29893:61;;;:::o;29961:108::-;;30040:24;30058:5;30040:24;:::i;:::-;30027:37;;30021:48;;;:::o;30077:268::-;30142:1;30149:101;30163:6;30160:1;30157:13;30149:101;;;30239:1;30234:3;30230:11;30224:18;30220:1;30215:3;30211:11;30204:39;30185:2;30182:1;30178:10;30173:15;;30149:101;;;30265:6;30262:1;30259:13;30256:2;;;30330:1;30321:6;30316:3;30312:16;30305:27;30256:2;30126:219;;;;:::o;30353:74::-;;30417:5;30406:16;;30400:27;;;:::o;30434:88::-;;30496:21;30511:5;30496:21;:::i;:::-;30485:32;;30479:43;;;:::o;30529:97::-;;30617:2;30613:7;30608:2;30601:5;30597:14;30593:28;30583:38;;30577:49;;;:::o;30634:96::-;;30714:5;30709:3;30705:15;30683:37;;30677:53;;;:::o;30738:117::-;30807:24;30825:5;30807:24;:::i;:::-;30800:5;30797:35;30787:2;;30846:1;30843;30836:12;30787:2;30781:74;:::o;30862:111::-;30928:21;30943:5;30928:21;:::i;:::-;30921:5;30918:32;30908:2;;30964:1;30961;30954:12;30908:2;30902:71;:::o;30980:117::-;31049:24;31067:5;31049:24;:::i;:::-;31042:5;31039:35;31029:2;;31088:1;31085;31078:12;31029:2;31023:74;:::o;31104:117::-;31173:24;31191:5;31173:24;:::i;:::-;31166:5;31163:35;31153:2;;31212:1;31209;31202:12;31153:2;31147:74;:::o;31228:115::-;31296:23;31313:5;31296:23;:::i;:::-;31289:5;31286:34;31276:2;;31334:1;31331;31324:12;31276:2;31270:73;:::o;31350:113::-;31417:22;31433:5;31417:22;:::i;:::-;31410:5;31407:33;31397:2;;31454:1;31451;31444:12;31397:2;31391: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/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\nimport \"./BytesLib.sol\";\nimport \"./WrappedAsset.sol\";\n\ncontract Wormhole is ReentrancyGuard {\n using SafeERC20 for IERC20;\n using BytesLib for bytes;\n using SafeMath for uint256;\n\n uint64 constant MAX_UINT64 = 18_446_744_073_709_551_615;\n\n // Address of the Wrapped asset template\n address public wrappedAssetMaster;\n\n // Chain ID of Ethereum\n uint8 CHAIN_ID = 2;\n\n // Address of the official WETH contract\n address constant WETHAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n\n struct GuardianSet {\n address[] keys;\n uint32 expiration_time;\n }\n\n event LogGuardianSetChanged(\n uint32 oldGuardianIndex,\n uint32 newGuardianIndex\n );\n\n event LogTokensLocked(\n uint8 target_chain,\n uint8 token_chain,\n uint8 token_decimals,\n bytes32 indexed token,\n bytes32 indexed sender,\n bytes32 recipient,\n uint256 amount,\n uint32 nonce\n );\n\n // Mapping of guardian_set_index => guardian set\n mapping(uint32 => GuardianSet) public guardian_sets;\n // Current active guardian set\n uint32 public guardian_set_index;\n\n // Period for which a guardian set stays active after it has been replaced\n uint32 public guardian_set_expirity;\n\n // Mapping of already consumedVAAs\n mapping(bytes32 => bool) public consumedVAAs;\n\n // Mapping of wrapped asset ERC20 contracts\n mapping(bytes32 => address) public wrappedAssets;\n mapping(address => bool) public isWrappedAsset;\n\n constructor(GuardianSet memory initial_guardian_set, address wrapped_asset_master, uint32 _guardian_set_expirity) public {\n guardian_sets[0] = initial_guardian_set;\n // Explicitly set for doc purposes\n guardian_set_index = 0;\n guardian_set_expirity = _guardian_set_expirity;\n\n wrappedAssetMaster = wrapped_asset_master;\n }\n\n function getGuardianSet(uint32 idx) view public returns (GuardianSet memory gs) {\n return guardian_sets[idx];\n }\n\n function submitVAA(\n bytes calldata vaa\n ) public nonReentrant {\n 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 // 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 / 4) * 3) + 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) + guardian_set_expirity;\n\n emit LogGuardianSetChanged(old_guardian_set_index, guardian_set_index);\n }\n\n function vaaTransfer(bytes memory data) private {\n //uint32 nonce = data.toUint64(0);\n uint8 source_chain = data.toUint8(4);\n\n uint8 target_chain = data.toUint8(5);\n //bytes32 source_address = data.toBytes32(6);\n //bytes32 target_address = data.toBytes32(38);\n address target_address = data.toAddress(38 + 12);\n\n uint8 token_chain = data.toUint8(70);\n //bytes32 token_address = data.toBytes32(71);\n uint256 amount = data.toUint256(104);\n\n require(source_chain != target_chain, \"same chain transfers are not supported\");\n require(target_chain == CHAIN_ID, \"transfer must be incoming\");\n\n if (token_chain != CHAIN_ID) {\n bytes32 token_address = data.toBytes32(71);\n bytes32 asset_id = keccak256(abi.encodePacked(token_chain, token_address));\n\n // if yes: mint to address\n // if no: create and mint\n address wrapped_asset = wrappedAssets[asset_id];\n if (wrapped_asset == address(0)) {\n uint8 asset_decimals = data.toUint8(103);\n wrapped_asset = deployWrappedAsset(asset_id, token_chain, token_address, asset_decimals);\n }\n\n WrappedAsset(wrapped_asset).mint(target_address, amount);\n } else {\n address token_address = data.toAddress(71 + 12);\n\n IERC20(token_address).safeTransfer(target_address, amount);\n }\n }\n\n function deployWrappedAsset(bytes32 seed, uint8 token_chain, bytes32 token_address, uint8 decimals) private returns (address asset){\n // Taken from https://github.com/OpenZeppelin/openzeppelin-sdk/blob/master/packages/lib/contracts/upgradeability/ProxyFactory.sol\n // Licensed under MIT\n bytes20 targetBytes = bytes20(wrappedAssetMaster);\n assembly {\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)\n asset := create2(0, clone, 0x37, seed)\n }\n\n // Call initializer\n WrappedAsset(asset).initialize(token_chain, token_address, decimals);\n\n // Store address\n wrappedAssets[seed] = asset;\n isWrappedAsset[asset] = true;\n }\n\n function lockAssets(\n address asset,\n uint256 amount,\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce,\n bool refund_dust\n ) public nonReentrant {\n require(amount != 0, \"amount must not be 0\");\n\n uint8 asset_chain = CHAIN_ID;\n bytes32 asset_address;\n uint8 decimals = ERC20(asset).decimals();\n\n if (isWrappedAsset[asset]) {\n WrappedAsset(asset).burn(msg.sender, amount);\n asset_chain = WrappedAsset(asset).assetChain();\n asset_address = WrappedAsset(asset).assetAddress();\n } else {\n uint256 balanceBefore = IERC20(asset).balanceOf(address(this));\n IERC20(asset).safeTransferFrom(msg.sender, address(this), amount);\n uint256 balanceAfter = IERC20(asset).balanceOf(address(this));\n\n // The amount that was transferred in is the delta between balance before and after the transfer.\n // This is to properly handle tokens that charge a fee on transfer.\n amount = balanceAfter.sub(balanceBefore);\n\n // Decimal adjust amount - we keep the dust\n if (decimals > 9) {\n uint256 original_amount = amount;\n amount = amount.div(10 ** uint256(decimals - 9));\n\n if (refund_dust) {\n ERC20(asset).transfer(msg.sender, original_amount.mod(10 ** uint256(decimals - 9)));\n }\n\n decimals = 9;\n }\n\n require(balanceAfter.div(10 ** uint256(ERC20(asset).decimals() - 9)) <= MAX_UINT64, \"bridge balance would exceed maximum\");\n\n asset_address = bytes32(uint256(asset));\n }\n\n emit LogTokensLocked(target_chain, asset_chain, decimals, asset_address, bytes32(uint256(msg.sender)), recipient, amount, nonce);\n }\n\n function lockETH(\n bytes32 recipient,\n uint8 target_chain,\n uint32 nonce\n ) public payable nonReentrant {\n require(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, 18, bytes32(uint256(WETHAddress)), bytes32(uint256(msg.sender)), recipient, msg.value, nonce);\n }\n\n fallback() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\n\n receive() external payable {revert(\"please use lockETH to transfer ETH to Solana\");}\n}\n\n\ninterface WETH is IERC20 {\n function deposit() external payable;\n\n function withdraw(uint256 amount) external;\n}\n", "sourcePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol", "ast": { "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol", "exportedSymbols": { "WETH": [ - 1186 + 1265 ], "Wormhole": [ - 1175 + 1254 ] }, - "id": 1187, + "id": 1266, "license": "Apache 2", "nodeType": "SourceUnit", "nodes": [ @@ -379,8 +384,8 @@ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 337, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 2459, + "scope": 1266, + "sourceUnit": 2538, "src": "162:55:1", "symbolAliases": [], "unitAlias": "" @@ -390,8 +395,8 @@ "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "id": 338, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 2537, + "scope": 1266, + "sourceUnit": 2616, "src": "218:56:1", "symbolAliases": [], "unitAlias": "" @@ -401,8 +406,8 @@ "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol", "id": 339, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 2750, + "scope": 1266, + "sourceUnit": 2829, "src": "275:59:1", "symbolAliases": [], "unitAlias": "" @@ -412,8 +417,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 340, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 1952, + "scope": 1266, + "sourceUnit": 2031, "src": "335:51:1", "symbolAliases": [], "unitAlias": "" @@ -423,8 +428,8 @@ "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", "id": 341, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 2994, + "scope": 1266, + "sourceUnit": 3073, "src": "387:59:1", "symbolAliases": [], "unitAlias": "" @@ -434,7 +439,7 @@ "file": "./BytesLib.sol", "id": 342, "nodeType": "ImportDirective", - "scope": 1187, + "scope": 1266, "sourceUnit": 334, "src": "447:24:1", "symbolAliases": [], @@ -445,8 +450,8 @@ "file": "./WrappedAsset.sol", "id": 343, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 1733, + "scope": 1266, + "sourceUnit": 1812, "src": "472:28:1", "symbolAliases": [], "unitAlias": "" @@ -461,10 +466,10 @@ "id": 344, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2993, + "referencedDeclaration": 3072, "src": "523:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$2993", + "typeIdentifier": "t_contract$_ReentrancyGuard_$3072", "typeString": "contract ReentrancyGuard" } }, @@ -474,15 +479,15 @@ } ], "contractDependencies": [ - 2993 + 3072 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1175, + "id": 1254, "linearizedBaseContracts": [ - 1175, - 2993 + 1254, + 3072 ], "name": "Wormhole", "nodeType": "ContractDefinition", @@ -494,10 +499,10 @@ "id": 346, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2749, + "referencedDeclaration": 2828, "src": "551:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$2749", + "typeIdentifier": "t_contract$_SafeERC20_$2828", "typeString": "library SafeERC20" } }, @@ -508,10 +513,10 @@ "id": 347, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, + "referencedDeclaration": 2615, "src": "565:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } } @@ -550,10 +555,10 @@ "id": 352, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1951, + "referencedDeclaration": 2030, "src": "613:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1951", + "typeIdentifier": "t_contract$_SafeMath_$2030", "typeString": "library SafeMath" } }, @@ -570,16 +575,61 @@ } } }, + { + "constant": true, + "id": 357, + "mutability": "constant", + "name": "MAX_UINT64", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1254, + "src": "640:55:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 355, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "640:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31385f3434365f3734345f3037335f3730395f3535315f363135", + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "669:26:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551615_by_1", + "typeString": "int_const 18446744073709551615" + }, + "value": "18_446_744_073_709_551_615" + }, + "visibility": "internal" + }, { "constant": false, "functionSelector": "99da1d3c", - "id": 356, + "id": 359, "mutability": "mutable", "name": "wrappedAssetMaster", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "685:33:1", + "scope": 1254, + "src": "747:33:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -587,10 +637,10 @@ "typeString": "address" }, "typeName": { - "id": 355, + "id": 358, "name": "address", "nodeType": "ElementaryTypeName", - "src": "685:7:1", + "src": "747:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -602,13 +652,13 @@ }, { "constant": false, - "id": 359, + "id": 362, "mutability": "mutable", "name": "CHAIN_ID", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "753:18:1", + "scope": 1254, + "src": "815:18:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -616,10 +666,10 @@ "typeString": "uint8" }, "typeName": { - "id": 357, + "id": 360, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "753:5:1", + "src": "815:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -628,14 +678,14 @@ "value": { "argumentTypes": null, "hexValue": "32", - "id": 358, + "id": 361, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "770:1:1", + "src": "832:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -647,13 +697,13 @@ }, { "constant": true, - "id": 362, + "id": 365, "mutability": "constant", "name": "WETHAddress", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "823:73:1", + "scope": 1254, + "src": "885:73:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -661,10 +711,10 @@ "typeString": "address" }, "typeName": { - "id": 360, + "id": 363, "name": "address", "nodeType": "ElementaryTypeName", - "src": "823:7:1", + "src": "885:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -674,14 +724,14 @@ "value": { "argumentTypes": null, "hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332", - "id": 361, + "id": 364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "854:42:1", + "src": "916:42:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -693,17 +743,17 @@ }, { "canonicalName": "Wormhole.GuardianSet", - "id": 368, + "id": 371, "members": [ { "constant": false, - "id": 365, + "id": 368, "mutability": "mutable", "name": "keys", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 368, - "src": "932:14:1", + "scope": 371, + "src": "994:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -712,20 +762,20 @@ }, "typeName": { "baseType": { - "id": 363, + "id": 366, "name": "address", "nodeType": "ElementaryTypeName", - "src": "932:7:1", + "src": "994:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 364, + "id": 367, "length": null, "nodeType": "ArrayTypeName", - "src": "932:9:1", + "src": "994:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -736,13 +786,13 @@ }, { "constant": false, - "id": 367, + "id": 370, "mutability": "mutable", "name": "expiration_time", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 368, - "src": "956:22:1", + "scope": 371, + "src": "1018:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -750,10 +800,10 @@ "typeString": "uint32" }, "typeName": { - "id": 366, + "id": 369, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "956:6:1", + "src": "1018:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -765,30 +815,30 @@ ], "name": "GuardianSet", "nodeType": "StructDefinition", - "scope": 1175, - "src": "903:82:1", + "scope": 1254, + "src": "965:82:1", "visibility": "public" }, { "anonymous": false, "documentation": null, - "id": 374, + "id": 377, "name": "LogGuardianSetChanged", "nodeType": "EventDefinition", "parameters": { - "id": 373, + "id": 376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 370, + "id": 373, "indexed": false, "mutability": "mutable", "name": "oldGuardianIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 374, - "src": "1028:23:1", + "scope": 377, + "src": "1090:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -796,10 +846,10 @@ "typeString": "uint32" }, "typeName": { - "id": 369, + "id": 372, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1028:6:1", + "src": "1090:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -810,14 +860,14 @@ }, { "constant": false, - "id": 372, + "id": 375, "indexed": false, "mutability": "mutable", "name": "newGuardianIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 374, - "src": "1061:23:1", + "scope": 377, + "src": "1123:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -825,10 +875,10 @@ "typeString": "uint32" }, "typeName": { - "id": 371, + "id": 374, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1061:6:1", + "src": "1123:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -838,30 +888,30 @@ "visibility": "internal" } ], - "src": "1018:72:1" + "src": "1080:72:1" }, - "src": "991:100:1" + "src": "1053:100:1" }, { "anonymous": false, "documentation": null, - "id": 392, + "id": 395, "name": "LogTokensLocked", "nodeType": "EventDefinition", "parameters": { - "id": 391, + "id": 394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 376, + "id": 379, "indexed": false, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1128:18:1", + "scope": 395, + "src": "1190:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -869,10 +919,10 @@ "typeString": "uint8" }, "typeName": { - "id": 375, + "id": 378, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1128:5:1", + "src": "1190:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -883,14 +933,14 @@ }, { "constant": false, - "id": 378, + "id": 381, "indexed": false, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1156:17:1", + "scope": 395, + "src": "1218:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -898,10 +948,10 @@ "typeString": "uint8" }, "typeName": { - "id": 377, + "id": 380, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1156:5:1", + "src": "1218:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -912,14 +962,14 @@ }, { "constant": false, - "id": 380, + "id": 383, "indexed": false, "mutability": "mutable", "name": "token_decimals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1183:20:1", + "scope": 395, + "src": "1245:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -927,10 +977,10 @@ "typeString": "uint8" }, "typeName": { - "id": 379, + "id": 382, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1183:5:1", + "src": "1245:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -941,14 +991,14 @@ }, { "constant": false, - "id": 382, + "id": 385, "indexed": true, "mutability": "mutable", "name": "token", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1213:21:1", + "scope": 395, + "src": "1275:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -956,10 +1006,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 381, + "id": 384, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1213:7:1", + "src": "1275:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -970,14 +1020,14 @@ }, { "constant": false, - "id": 384, + "id": 387, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1244:22:1", + "scope": 395, + "src": "1306:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -985,10 +1035,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 383, + "id": 386, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1244:7:1", + "src": "1306:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -999,14 +1049,14 @@ }, { "constant": false, - "id": 386, + "id": 389, "indexed": false, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1276:17:1", + "scope": 395, + "src": "1338:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1014,10 +1064,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 385, + "id": 388, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1276:7:1", + "src": "1338:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1028,14 +1078,14 @@ }, { "constant": false, - "id": 388, + "id": 391, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1303:14:1", + "scope": 395, + "src": "1365:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1043,10 +1093,10 @@ "typeString": "uint256" }, "typeName": { - "id": 387, + "id": 390, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1303:7:1", + "src": "1365:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1057,14 +1107,14 @@ }, { "constant": false, - "id": 390, + "id": 393, "indexed": false, "mutability": "mutable", "name": "nonce", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1327:12:1", + "scope": 395, + "src": "1389:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1072,10 +1122,10 @@ "typeString": "uint32" }, "typeName": { - "id": 389, + "id": 392, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1327:6:1", + "src": "1389:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1085,53 +1135,53 @@ "visibility": "internal" } ], - "src": "1118:227:1" + "src": "1180:227:1" }, - "src": "1097:249:1" + "src": "1159:249:1" }, { "constant": false, "functionSelector": "42b0aefa", - "id": 396, + "id": 399, "mutability": "mutable", "name": "guardian_sets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1405:51:1", + "scope": 1254, + "src": "1467:51:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "typeName": { - "id": 395, + "id": 398, "keyType": { - "id": 393, + "id": 396, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1413:6:1", + "src": "1475:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Mapping", - "src": "1405:30:1", + "src": "1467:30:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "valueType": { "contractScope": null, - "id": 394, + "id": 397, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "1423:11:1", + "referencedDeclaration": 371, + "src": "1485:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } } @@ -1142,13 +1192,13 @@ { "constant": false, "functionSelector": "822d82b3", - "id": 398, + "id": 401, "mutability": "mutable", "name": "guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1497:32:1", + "scope": 1254, + "src": "1559:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1156,10 +1206,10 @@ "typeString": "uint32" }, "typeName": { - "id": 397, + "id": 400, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1497:6:1", + "src": "1559:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1171,13 +1221,13 @@ { "constant": false, "functionSelector": "4db47840", - "id": 400, + "id": 403, "mutability": "mutable", "name": "guardian_set_expirity", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1615:35:1", + "scope": 1254, + "src": "1677:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1185,10 +1235,10 @@ "typeString": "uint32" }, "typeName": { - "id": 399, + "id": 402, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1615:6:1", + "src": "1677:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1200,13 +1250,13 @@ { "constant": false, "functionSelector": "a31fe409", - "id": 404, + "id": 407, "mutability": "mutable", "name": "consumedVAAs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1696:44:1", + "scope": 1254, + "src": "1758:44:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1214,28 +1264,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 403, + "id": 406, "keyType": { - "id": 401, + "id": 404, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1704:7:1", + "src": "1766:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1696:24:1", + "src": "1758:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 402, + "id": 405, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1715:4:1", + "src": "1777:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1248,13 +1298,13 @@ { "constant": false, "functionSelector": "b6694c2a", - "id": 408, + "id": 411, "mutability": "mutable", "name": "wrappedAssets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1795:48:1", + "scope": 1254, + "src": "1857:48:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1262,28 +1312,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 407, + "id": 410, "keyType": { - "id": 405, + "id": 408, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1803:7:1", + "src": "1865:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1795:27:1", + "src": "1857:27:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 406, + "id": 409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1814:7:1", + "src": "1876:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1297,13 +1347,13 @@ { "constant": false, "functionSelector": "1a2be4da", - "id": 412, + "id": 415, "mutability": "mutable", "name": "isWrappedAsset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1849:46:1", + "scope": 1254, + "src": "1911:46:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1311,28 +1361,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 411, + "id": 414, "keyType": { - "id": 409, + "id": 412, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1857:7:1", + "src": "1919:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1849:24:1", + "src": "1911:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 410, + "id": 413, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1868:4:1", + "src": "1930:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1344,14 +1394,14 @@ }, { "body": { - "id": 439, + "id": 442, "nodeType": "Block", - "src": "2023:239:1", + "src": "2085:239:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 425, + "id": 428, "isConstant": false, "isLValue": false, "isPure": false, @@ -1360,29 +1410,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 421, + "id": 424, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "2033:13:1", + "referencedDeclaration": 399, + "src": "2095:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 423, + "id": 426, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 422, + "id": 425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2047:1:1", + "src": "2109:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1395,9 +1445,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2033:16:1", + "src": "2095:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, @@ -1405,43 +1455,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 424, + "id": 427, "name": "initial_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "2052:20:1", + "referencedDeclaration": 417, + "src": "2114:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "2033:39:1", + "src": "2095:39:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 426, + "id": 429, "nodeType": "ExpressionStatement", - "src": "2033:39:1" + "src": "2095:39:1" }, { "expression": { "argumentTypes": null, - "id": 429, + "id": 432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 427, + "id": 430, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "2125:18:1", + "referencedDeclaration": 401, + "src": "2187:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1452,14 +1502,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 428, + "id": 431, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2146:1:1", + "src": "2208:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1467,32 +1517,32 @@ }, "value": "0" }, - "src": "2125:22:1", + "src": "2187:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 430, + "id": 433, "nodeType": "ExpressionStatement", - "src": "2125:22:1" + "src": "2187:22:1" }, { "expression": { "argumentTypes": null, - "id": 433, + "id": 436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 431, + "id": 434, "name": "guardian_set_expirity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 400, - "src": "2157:21:1", + "referencedDeclaration": 403, + "src": "2219:21:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1502,43 +1552,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 432, + "id": 435, "name": "_guardian_set_expirity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "2181:22:1", + "referencedDeclaration": 421, + "src": "2243:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "2157:46:1", + "src": "2219:46:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 434, + "id": 437, "nodeType": "ExpressionStatement", - "src": "2157:46:1" + "src": "2219:46:1" }, { "expression": { "argumentTypes": null, - "id": 437, + "id": 440, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 435, + "id": 438, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "2214:18:1", + "referencedDeclaration": 359, + "src": "2276:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1548,31 +1598,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 436, + "id": 439, "name": "wrapped_asset_master", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 416, - "src": "2235:20:1", + "referencedDeclaration": 419, + "src": "2297:20:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2214:41:1", + "src": "2276:41:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 438, + "id": 441, "nodeType": "ExpressionStatement", - "src": "2214:41:1" + "src": "2276:41:1" } ] }, "documentation": null, - "id": 440, + "id": 443, "implemented": true, "kind": "constructor", "modifiers": [], @@ -1580,33 +1630,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 419, + "id": 422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 414, + "id": 417, "mutability": "mutable", "name": "initial_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 440, - "src": "1914:39:1", + "scope": 443, + "src": "1976:39:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 413, + "id": 416, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "1914:11:1", + "referencedDeclaration": 371, + "src": "1976:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -1615,13 +1665,13 @@ }, { "constant": false, - "id": 416, + "id": 419, "mutability": "mutable", "name": "wrapped_asset_master", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 440, - "src": "1955:28:1", + "scope": 443, + "src": "2017:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1629,10 +1679,10 @@ "typeString": "address" }, "typeName": { - "id": 415, + "id": 418, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1955:7:1", + "src": "2017:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1644,13 +1694,13 @@ }, { "constant": false, - "id": 418, + "id": 421, "mutability": "mutable", "name": "_guardian_set_expirity", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 440, - "src": "1985:29:1", + "scope": 443, + "src": "2047:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1658,10 +1708,10 @@ "typeString": "uint32" }, "typeName": { - "id": 417, + "id": 420, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1985:6:1", + "src": "2047:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1671,51 +1721,51 @@ "visibility": "internal" } ], - "src": "1913:102:1" + "src": "1975:102:1" }, "returnParameters": { - "id": 420, + "id": 423, "nodeType": "ParameterList", "parameters": [], - "src": "2023:0:1" + "src": "2085:0:1" }, - "scope": 1175, - "src": "1902:360:1", + "scope": 1254, + "src": "1964:360:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 451, + "id": 454, "nodeType": "Block", - "src": "2348:42:1", + "src": "2410:42:1", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 447, + "id": 450, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "2365:13:1", + "referencedDeclaration": 399, + "src": "2427:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 449, + "id": 452, "indexExpression": { "argumentTypes": null, - "id": 448, + "id": 451, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "2379:3:1", + "referencedDeclaration": 445, + "src": "2441:3:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1726,22 +1776,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2365:18:1", + "src": "2427:18:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "functionReturnParameters": 446, - "id": 450, + "functionReturnParameters": 449, + "id": 453, "nodeType": "Return", - "src": "2358:25:1" + "src": "2420:25:1" } ] }, "documentation": null, "functionSelector": "f951975a", - "id": 452, + "id": 455, "implemented": true, "kind": "function", "modifiers": [], @@ -1749,18 +1799,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 443, + "id": 446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 442, + "id": 445, "mutability": "mutable", "name": "idx", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 452, - "src": "2292:10:1", + "scope": 455, + "src": "2354:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1768,10 +1818,10 @@ "typeString": "uint32" }, "typeName": { - "id": 441, + "id": 444, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2292:6:1", + "src": "2354:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1781,36 +1831,36 @@ "visibility": "internal" } ], - "src": "2291:12:1" + "src": "2353:12:1" }, "returnParameters": { - "id": 446, + "id": 449, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 445, + "id": 448, "mutability": "mutable", "name": "gs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 452, - "src": "2325:21:1", + "scope": 455, + "src": "2387:21:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 444, + "id": 447, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "2325:11:1", + "referencedDeclaration": 371, + "src": "2387:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -1818,34 +1868,34 @@ "visibility": "internal" } ], - "src": "2324:23:1" + "src": "2386:23:1" }, - "scope": 1175, - "src": "2268:122:1", + "scope": 1254, + "src": "2330:122:1", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { - "id": 689, + "id": 692, "nodeType": "Block", - "src": "2469:1801:1", + "src": "2531:1801:1", "statements": [ { "assignments": [ - 460 + 463 ], "declarations": [ { "constant": false, - "id": 460, + "id": 463, "mutability": "mutable", "name": "version", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2479:13:1", + "scope": 692, + "src": "2541:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1853,10 +1903,10 @@ "typeString": "uint8" }, "typeName": { - "id": 459, + "id": 462, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2479:5:1", + "src": "2541:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1866,21 +1916,21 @@ "visibility": "internal" } ], - "id": 465, + "id": 468, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 463, + "id": 466, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2507:1:1", + "src": "2569:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1898,18 +1948,18 @@ ], "expression": { "argumentTypes": null, - "id": 461, + "id": 464, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2495:3:1", + "referencedDeclaration": 457, + "src": "2557:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 462, + "id": 465, "isConstant": false, "isLValue": false, "isPure": false, @@ -1917,13 +1967,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "2495:11:1", + "src": "2557: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": 464, + "id": 467, "isConstant": false, "isLValue": false, "isPure": false, @@ -1931,7 +1981,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2495:14:1", + "src": "2557:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -1939,7 +1989,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2479:30:1" + "src": "2541:30:1" }, { "expression": { @@ -1951,19 +2001,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 469, + "id": 472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 467, + "id": 470, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "2527:7:1", + "referencedDeclaration": 463, + "src": "2589:7:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1974,14 +2024,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 468, + "id": 471, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2538:1:1", + "src": "2600:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1989,7 +2039,7 @@ }, "value": "1" }, - "src": "2527:12:1", + "src": "2589:12:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1998,14 +2048,14 @@ { "argumentTypes": null, "hexValue": "5641412076657273696f6e20696e636f6d70617469626c65", - "id": 470, + "id": 473, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2541:26:1", + "src": "2603:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a", @@ -2025,7 +2075,7 @@ "typeString": "literal_string \"VAA version incompatible\"" } ], - "id": 466, + "id": 469, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2033,13 +2083,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2519:7:1", + "src": "2581:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 471, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, @@ -2047,31 +2097,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2519:49:1", + "src": "2581:49:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 472, + "id": 475, "nodeType": "ExpressionStatement", - "src": "2519:49:1" + "src": "2581:49:1" }, { "assignments": [ - 474 + 477 ], "declarations": [ { "constant": false, - "id": 474, + "id": 477, "mutability": "mutable", "name": "vaa_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2625:29:1", + "scope": 692, + "src": "2687:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2079,10 +2129,10 @@ "typeString": "uint32" }, "typeName": { - "id": 473, + "id": 476, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2625:6:1", + "src": "2687:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2092,21 +2142,21 @@ "visibility": "internal" } ], - "id": 479, + "id": 482, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "31", - "id": 477, + "id": 480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2670:1:1", + "src": "2732:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2124,18 +2174,18 @@ ], "expression": { "argumentTypes": null, - "id": 475, + "id": 478, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2657:3:1", + "referencedDeclaration": 457, + "src": "2719:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 476, + "id": 479, "isConstant": false, "isLValue": false, "isPure": false, @@ -2143,13 +2193,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2657:12:1", + "src": "2719: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": 478, + "id": 481, "isConstant": false, "isLValue": false, "isPure": false, @@ -2157,7 +2207,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2657:15:1", + "src": "2719:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -2165,22 +2215,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2625:47:1" + "src": "2687:47:1" }, { "assignments": [ - 481 + 484 ], "declarations": [ { "constant": false, - "id": 481, + "id": 484, "mutability": "mutable", "name": "len_signers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2683:19:1", + "scope": 692, + "src": "2745:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2188,10 +2238,10 @@ "typeString": "uint256" }, "typeName": { - "id": 480, + "id": 483, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2683:7:1", + "src": "2745:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2201,21 +2251,21 @@ "visibility": "internal" } ], - "id": 486, + "id": 489, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 484, + "id": 487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2717:1:1", + "src": "2779:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -2233,18 +2283,18 @@ ], "expression": { "argumentTypes": null, - "id": 482, + "id": 485, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2705:3:1", + "referencedDeclaration": 457, + "src": "2767:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 483, + "id": 486, "isConstant": false, "isLValue": false, "isPure": false, @@ -2252,13 +2302,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "2705:11:1", + "src": "2767: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": 485, + "id": 488, "isConstant": false, "isLValue": false, "isPure": false, @@ -2266,7 +2316,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2705:14:1", + "src": "2767:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -2274,22 +2324,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2683:36:1" + "src": "2745:36:1" }, { "assignments": [ - 488 + 491 ], "declarations": [ { "constant": false, - "id": 488, + "id": 491, "mutability": "mutable", "name": "offset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2729:11:1", + "scope": 692, + "src": "2791:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2297,10 +2347,10 @@ "typeString": "uint256" }, "typeName": { - "id": 487, + "id": 490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2729:4:1", + "src": "2791:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2310,14 +2360,14 @@ "visibility": "internal" } ], - "id": 494, + "id": 497, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 493, + "id": 496, "isConstant": false, "isLValue": false, "isPure": false, @@ -2325,14 +2375,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "36", - "id": 489, + "id": 492, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2743:1:1", + "src": "2805:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -2348,7 +2398,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 492, + "id": 495, "isConstant": false, "isLValue": false, "isPure": false, @@ -2356,14 +2406,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 490, + "id": 493, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2747:2:1", + "src": "2809:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -2375,46 +2425,46 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 491, + "id": 494, "name": "len_signers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "2752:11:1", + "referencedDeclaration": 484, + "src": "2814:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2747:16:1", + "src": "2809:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2743:20:1", + "src": "2805:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2729:34:1" + "src": "2791:34:1" }, { "assignments": [ - 496 + 499 ], "declarations": [ { "constant": false, - "id": 496, + "id": 499, "mutability": "mutable", "name": "hash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2885:12:1", + "scope": 692, + "src": "2947:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2422,10 +2472,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 495, + "id": 498, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2885:7:1", + "src": "2947:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2435,7 +2485,7 @@ "visibility": "internal" } ], - "id": 507, + "id": 510, "initialValue": { "argumentTypes": null, "arguments": [ @@ -2444,12 +2494,12 @@ "arguments": [ { "argumentTypes": null, - "id": 500, + "id": 503, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "2920:6:1", + "referencedDeclaration": 491, + "src": "2982:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2461,7 +2511,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 504, + "id": 507, "isConstant": false, "isLValue": false, "isPure": false, @@ -2470,18 +2520,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 501, + "id": 504, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2928:3:1", + "referencedDeclaration": 457, + "src": "2990:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 502, + "id": 505, "isConstant": false, "isLValue": false, "isPure": false, @@ -2489,7 +2539,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2928:10:1", + "src": "2990:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2499,18 +2549,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 503, + "id": 506, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "2941:6:1", + "referencedDeclaration": 491, + "src": "3003:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2928:19:1", + "src": "2990:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2530,18 +2580,18 @@ ], "expression": { "argumentTypes": null, - "id": 498, + "id": 501, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2910:3:1", + "referencedDeclaration": 457, + "src": "2972:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 499, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, @@ -2549,13 +2599,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "2910:9:1", + "src": "2972: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": 505, + "id": 508, "isConstant": false, "isLValue": false, "isPure": false, @@ -2563,7 +2613,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2910:38:1", + "src": "2972:38:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2578,18 +2628,18 @@ "typeString": "bytes memory" } ], - "id": 497, + "id": 500, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "2900:9:1", + "src": "2962:9:1", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 506, + "id": 509, "isConstant": false, "isLValue": false, "isPure": false, @@ -2597,7 +2647,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2900:49:1", + "src": "2962:49:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2605,7 +2655,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2885:64:1" + "src": "2947:64:1" }, { "expression": { @@ -2613,7 +2663,7 @@ "arguments": [ { "argumentTypes": null, - "id": 512, + "id": 515, "isConstant": false, "isLValue": false, "isPure": false, @@ -2621,31 +2671,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2967:19:1", + "src": "3029:19:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 509, + "id": 512, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "2968:12:1", + "referencedDeclaration": 407, + "src": "3030:12:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 511, + "id": 514, "indexExpression": { "argumentTypes": null, - "id": 510, + "id": 513, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "2981:4:1", + "referencedDeclaration": 499, + "src": "3043:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2656,7 +2706,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2968:18:1", + "src": "3030:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2670,14 +2720,14 @@ { "argumentTypes": null, "hexValue": "5641412077617320616c7265616479206578656375746564", - "id": 513, + "id": 516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2988:26:1", + "src": "3050:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028", @@ -2697,7 +2747,7 @@ "typeString": "literal_string \"VAA was already executed\"" } ], - "id": 508, + "id": 511, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -2705,13 +2755,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2959:7:1", + "src": "3021:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 514, + "id": 517, "isConstant": false, "isLValue": false, "isPure": false, @@ -2719,46 +2769,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2959:56:1", + "src": "3021:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 515, + "id": 518, "nodeType": "ExpressionStatement", - "src": "2959:56:1" + "src": "3021:56:1" }, { "assignments": [ - 517 + 520 ], "declarations": [ { "constant": false, - "id": 517, + "id": 520, "mutability": "mutable", "name": "guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "3026:31:1", + "scope": 692, + "src": "3088:31:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 516, + "id": 519, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "3026:11:1", + "referencedDeclaration": 371, + "src": "3088:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -2766,31 +2816,31 @@ "visibility": "internal" } ], - "id": 521, + "id": 524, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 518, + "id": 521, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "3060:13:1", + "referencedDeclaration": 399, + "src": "3122:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 520, + "id": 523, "indexExpression": { "argumentTypes": null, - "id": 519, + "id": 522, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "3074:22:1", + "referencedDeclaration": 477, + "src": "3136:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2801,14 +2851,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3060:37:1", + "src": "3122:37:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3026:71:1" + "src": "3088:71:1" }, { "expression": { @@ -2820,7 +2870,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 532, + "id": 535, "isConstant": false, "isLValue": false, "isPure": false, @@ -2831,7 +2881,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 526, + "id": 529, "isConstant": false, "isLValue": false, "isPure": false, @@ -2840,26 +2890,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 523, + "id": 526, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "3115:12:1", + "referencedDeclaration": 520, + "src": "3177:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 524, + "id": 527, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "3115:28:1", + "referencedDeclaration": 370, + "src": "3177:28:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2870,14 +2920,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 525, + "id": 528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3147:1:1", + "src": "3209:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2885,7 +2935,7 @@ }, "value": "0" }, - "src": "3115:33:1", + "src": "3177:33:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2899,7 +2949,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 531, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, @@ -2908,26 +2958,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 527, + "id": 530, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "3152:12:1", + "referencedDeclaration": 520, + "src": "3214:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 528, + "id": 531, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "3152:28:1", + "referencedDeclaration": 370, + "src": "3214:28:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2939,18 +2989,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 529, + "id": 532, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "3183:5:1", + "src": "3245:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 530, + "id": 533, "isConstant": false, "isLValue": false, "isPure": false, @@ -2958,19 +3008,19 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3183:15:1", + "src": "3245:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3152:46:1", + "src": "3214:46:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3115:83:1", + "src": "3177:83:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2979,14 +3029,14 @@ { "argumentTypes": null, "hexValue": "677561726469616e20736574206861732065787069726564", - "id": 533, + "id": 536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3200:26:1", + "src": "3262:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1", @@ -3006,7 +3056,7 @@ "typeString": "literal_string \"guardian set has expired\"" } ], - "id": 522, + "id": 525, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3014,13 +3064,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3107:7:1", + "src": "3169:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 534, + "id": 537, "isConstant": false, "isLValue": false, "isPure": false, @@ -3028,16 +3078,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3107:120:1", + "src": "3169:120:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 535, + "id": 538, "nodeType": "ExpressionStatement", - "src": "3107:120:1" + "src": "3169:120:1" }, { "expression": { @@ -3049,7 +3099,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 549, + "id": 552, "isConstant": false, "isLValue": false, "isPure": false, @@ -3060,7 +3110,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 547, + "id": 550, "isConstant": false, "isLValue": false, "isPure": false, @@ -3074,7 +3124,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 544, + "id": 547, "isConstant": false, "isLValue": false, "isPure": false, @@ -3088,7 +3138,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 541, + "id": 544, "isConstant": false, "isLValue": false, "isPure": false, @@ -3099,32 +3149,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 537, + "id": 540, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "3247:12:1", + "referencedDeclaration": 520, + "src": "3309:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 538, + "id": 541, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "keys", "nodeType": "MemberAccess", - "referencedDeclaration": 365, - "src": "3247:17:1", + "referencedDeclaration": 368, + "src": "3309:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 539, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, @@ -3132,7 +3182,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3247:24:1", + "src": "3309:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3143,14 +3193,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 540, + "id": 543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3274:1:1", + "src": "3336:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -3158,21 +3208,21 @@ }, "value": "4" }, - "src": "3247:28:1", + "src": "3309:28:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 542, + "id": 545, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3246:30:1", + "src": "3308:30:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3183,14 +3233,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 543, + "id": 546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3279:1:1", + "src": "3341:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -3198,21 +3248,21 @@ }, "value": "3" }, - "src": "3246:34:1", + "src": "3308:34:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 545, + "id": 548, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3245:36:1", + "src": "3307:36:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3223,14 +3273,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 546, + "id": 549, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3284:1:1", + "src": "3346:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3238,7 +3288,7 @@ }, "value": "1" }, - "src": "3245:40:1", + "src": "3307:40:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3248,18 +3298,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 548, + "id": 551, "name": "len_signers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "3289:11:1", + "referencedDeclaration": 484, + "src": "3351:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3245:55:1", + "src": "3307:55:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3268,14 +3318,14 @@ { "argumentTypes": null, "hexValue": "6e6f2071756f72756d", - "id": 550, + "id": 553, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3302:11:1", + "src": "3364:11:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb", @@ -3295,7 +3345,7 @@ "typeString": "literal_string \"no quorum\"" } ], - "id": 536, + "id": 539, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -3303,13 +3353,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3237:7:1", + "src": "3299:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 551, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, @@ -3317,37 +3367,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3237:77:1", + "src": "3299:77:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 552, + "id": 555, "nodeType": "ExpressionStatement", - "src": "3237:77:1" + "src": "3299:77:1" }, { "body": { - "id": 626, + "id": 629, "nodeType": "Block", - "src": "3364:334:1", + "src": "3426:334:1", "statements": [ { "assignments": [ - 564 + 567 ], "declarations": [ { "constant": false, - "id": 564, + "id": 567, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 626, - "src": "3378:11:1", + "scope": 629, + "src": "3440:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3355,10 +3405,10 @@ "typeString": "uint8" }, "typeName": { - "id": 563, + "id": 566, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3378:5:1", + "src": "3440:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3368,7 +3418,7 @@ "visibility": "internal" } ], - "id": 573, + "id": 576, "initialValue": { "argumentTypes": null, "arguments": [ @@ -3378,7 +3428,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 571, + "id": 574, "isConstant": false, "isLValue": false, "isPure": false, @@ -3386,14 +3436,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "36", - "id": 567, + "id": 570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3404:1:1", + "src": "3466:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -3409,19 +3459,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 570, + "id": 573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 568, + "id": 571, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3408:1:1", + "referencedDeclaration": 557, + "src": "3470:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3432,14 +3482,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 569, + "id": 572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3412:2:1", + "src": "3474:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -3447,13 +3497,13 @@ }, "value": "66" }, - "src": "3408:6:1", + "src": "3470:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3404:10:1", + "src": "3466:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3469,18 +3519,18 @@ ], "expression": { "argumentTypes": null, - "id": 565, + "id": 568, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3392:3:1", + "referencedDeclaration": 457, + "src": "3454:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 566, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, @@ -3488,13 +3538,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3392:11:1", + "src": "3454: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": 572, + "id": 575, "isConstant": false, "isLValue": false, "isPure": false, @@ -3502,7 +3552,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3392:23:1", + "src": "3454:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -3510,22 +3560,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3378:37:1" + "src": "3440:37:1" }, { "assignments": [ - 575 + 578 ], "declarations": [ { "constant": false, - "id": 575, + "id": 578, "mutability": "mutable", "name": "r", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 626, - "src": "3429:9:1", + "scope": 629, + "src": "3491:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3533,10 +3583,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 574, + "id": 577, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3429:7:1", + "src": "3491:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3546,7 +3596,7 @@ "visibility": "internal" } ], - "id": 584, + "id": 587, "initialValue": { "argumentTypes": null, "arguments": [ @@ -3556,7 +3606,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 582, + "id": 585, "isConstant": false, "isLValue": false, "isPure": false, @@ -3564,14 +3614,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "37", - "id": 578, + "id": 581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3455:1:1", + "src": "3517:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", @@ -3587,19 +3637,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 581, + "id": 584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 579, + "id": 582, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3459:1:1", + "referencedDeclaration": 557, + "src": "3521:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3610,14 +3660,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 580, + "id": 583, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3463:2:1", + "src": "3525:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -3625,13 +3675,13 @@ }, "value": "66" }, - "src": "3459:6:1", + "src": "3521:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3455:10:1", + "src": "3517:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3647,18 +3697,18 @@ ], "expression": { "argumentTypes": null, - "id": 576, + "id": 579, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3441:3:1", + "referencedDeclaration": 457, + "src": "3503:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 577, + "id": 580, "isConstant": false, "isLValue": false, "isPure": false, @@ -3666,13 +3716,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "3441:13:1", + "src": "3503: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": 583, + "id": 586, "isConstant": false, "isLValue": false, "isPure": false, @@ -3680,7 +3730,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3441:25:1", + "src": "3503:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3688,22 +3738,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3429:37:1" + "src": "3491:37:1" }, { "assignments": [ - 586 + 589 ], "declarations": [ { "constant": false, - "id": 586, + "id": 589, "mutability": "mutable", "name": "s", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 626, - "src": "3480:9:1", + "scope": 629, + "src": "3542:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3711,10 +3761,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 585, + "id": 588, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3480:7:1", + "src": "3542:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3724,7 +3774,7 @@ "visibility": "internal" } ], - "id": 595, + "id": 598, "initialValue": { "argumentTypes": null, "arguments": [ @@ -3734,7 +3784,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 593, + "id": 596, "isConstant": false, "isLValue": false, "isPure": false, @@ -3742,14 +3792,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3339", - "id": 589, + "id": 592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3506:2:1", + "src": "3568:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_39_by_1", @@ -3765,19 +3815,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 592, + "id": 595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 590, + "id": 593, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3511:1:1", + "referencedDeclaration": 557, + "src": "3573:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3788,14 +3838,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 591, + "id": 594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3515:2:1", + "src": "3577:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -3803,13 +3853,13 @@ }, "value": "66" }, - "src": "3511:6:1", + "src": "3573:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3506:11:1", + "src": "3568:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3825,18 +3875,18 @@ ], "expression": { "argumentTypes": null, - "id": 587, + "id": 590, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3492:3:1", + "referencedDeclaration": 457, + "src": "3554:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 588, + "id": 591, "isConstant": false, "isLValue": false, "isPure": false, @@ -3844,13 +3894,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "3492:13:1", + "src": "3554: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": 594, + "id": 597, "isConstant": false, "isLValue": false, "isPure": false, @@ -3858,7 +3908,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3492:26:1", + "src": "3554:26:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -3866,22 +3916,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3480:38:1" + "src": "3542:38:1" }, { "assignments": [ - 597 + 600 ], "declarations": [ { "constant": false, - "id": 597, + "id": 600, "mutability": "mutable", "name": "v", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 626, - "src": "3532:7:1", + "scope": 629, + "src": "3594:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3889,10 +3939,10 @@ "typeString": "uint8" }, "typeName": { - "id": 596, + "id": 599, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3532:5:1", + "src": "3594:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3902,7 +3952,7 @@ "visibility": "internal" } ], - "id": 606, + "id": 609, "initialValue": { "argumentTypes": null, "arguments": [ @@ -3912,7 +3962,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 604, + "id": 607, "isConstant": false, "isLValue": false, "isPure": false, @@ -3920,14 +3970,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3731", - "id": 600, + "id": 603, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3554:2:1", + "src": "3616:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -3943,19 +3993,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 603, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 601, + "id": 604, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3559:1:1", + "referencedDeclaration": 557, + "src": "3621:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3966,14 +4016,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 602, + "id": 605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3563:2:1", + "src": "3625:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -3981,13 +4031,13 @@ }, "value": "66" }, - "src": "3559:6:1", + "src": "3621:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3554:11:1", + "src": "3616:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4003,18 +4053,18 @@ ], "expression": { "argumentTypes": null, - "id": 598, + "id": 601, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3542:3:1", + "referencedDeclaration": 457, + "src": "3604:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 599, + "id": 602, "isConstant": false, "isLValue": false, "isPure": false, @@ -4022,13 +4072,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3542:11:1", + "src": "3604: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": 605, + "id": 608, "isConstant": false, "isLValue": false, "isPure": false, @@ -4036,7 +4086,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3542:24:1", + "src": "3604:24:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -4044,24 +4094,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3532:34:1" + "src": "3594:34:1" }, { "expression": { "argumentTypes": null, - "id": 609, + "id": 612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 607, + "id": 610, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "3580:1:1", + "referencedDeclaration": 600, + "src": "3642:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4072,14 +4122,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3237", - "id": 608, + "id": 611, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3585:2:1", + "src": "3647:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -4087,15 +4137,15 @@ }, "value": "27" }, - "src": "3580:7:1", + "src": "3642:7:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 610, + "id": 613, "nodeType": "ExpressionStatement", - "src": "3580:7:1" + "src": "3642:7:1" }, { "expression": { @@ -4107,7 +4157,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 622, + "id": 625, "isConstant": false, "isLValue": false, "isPure": false, @@ -4117,12 +4167,12 @@ "arguments": [ { "argumentTypes": null, - "id": 613, + "id": 616, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "3619:4:1", + "referencedDeclaration": 499, + "src": "3681:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4130,12 +4180,12 @@ }, { "argumentTypes": null, - "id": 614, + "id": 617, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "3625:1:1", + "referencedDeclaration": 600, + "src": "3687:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4143,12 +4193,12 @@ }, { "argumentTypes": null, - "id": 615, + "id": 618, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 575, - "src": "3628:1:1", + "referencedDeclaration": 578, + "src": "3690:1:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4156,12 +4206,12 @@ }, { "argumentTypes": null, - "id": 616, + "id": 619, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "3631:1:1", + "referencedDeclaration": 589, + "src": "3693:1:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4187,18 +4237,18 @@ "typeString": "bytes32" } ], - "id": 612, + "id": 615, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -6, - "src": "3609:9:1", + "src": "3671: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": 617, + "id": 620, "isConstant": false, "isLValue": false, "isPure": false, @@ -4206,7 +4256,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3609:24:1", + "src": "3671:24:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -4221,40 +4271,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 618, + "id": 621, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "3637:12:1", + "referencedDeclaration": 520, + "src": "3699:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 619, + "id": 622, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "keys", "nodeType": "MemberAccess", - "referencedDeclaration": 365, - "src": "3637:17:1", + "referencedDeclaration": 368, + "src": "3699:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 621, + "id": 624, "indexExpression": { "argumentTypes": null, - "id": 620, + "id": 623, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 564, - "src": "3655:5:1", + "referencedDeclaration": 567, + "src": "3717:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4265,13 +4315,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3637:24:1", + "src": "3699:24:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3609:52:1", + "src": "3671:52:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4280,14 +4330,14 @@ { "argumentTypes": null, "hexValue": "564141207369676e617475726520696e76616c6964", - "id": 623, + "id": 626, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3663:23:1", + "src": "3725:23:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", @@ -4307,7 +4357,7 @@ "typeString": "literal_string \"VAA signature invalid\"" } ], - "id": 611, + "id": 614, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -4315,13 +4365,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3601:7:1", + "src": "3663:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 624, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, @@ -4329,16 +4379,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3601:86:1", + "src": "3663:86:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 625, + "id": 628, "nodeType": "ExpressionStatement", - "src": "3601:86:1" + "src": "3663:86:1" } ] }, @@ -4348,19 +4398,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 559, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 557, + "id": 560, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3342:1:1", + "referencedDeclaration": 557, + "src": "3404:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4370,38 +4420,38 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 558, + "id": 561, "name": "len_signers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "3346:11:1", + "referencedDeclaration": 484, + "src": "3408:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3342:15:1", + "src": "3404:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 627, + "id": 630, "initializationExpression": { "assignments": [ - 554 + 557 ], "declarations": [ { "constant": false, - "id": 554, + "id": 557, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 627, - "src": "3330:6:1", + "scope": 630, + "src": "3392:6:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4409,10 +4459,10 @@ "typeString": "uint256" }, "typeName": { - "id": 553, + "id": 556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3330:4:1", + "src": "3392:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4422,18 +4472,18 @@ "visibility": "internal" } ], - "id": 556, + "id": 559, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 555, + "id": 558, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3339:1:1", + "src": "3401:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4442,12 +4492,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3330:10:1" + "src": "3392:10:1" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 561, + "id": 564, "isConstant": false, "isLValue": false, "isPure": false, @@ -4455,15 +4505,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3359:3:1", + "src": "3421:3:1", "subExpression": { "argumentTypes": null, - "id": 560, + "id": 563, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3359:1:1", + "referencedDeclaration": 557, + "src": "3421:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4474,27 +4524,27 @@ "typeString": "uint256" } }, - "id": 562, + "id": 565, "nodeType": "ExpressionStatement", - "src": "3359:3:1" + "src": "3421:3:1" }, "nodeType": "ForStatement", - "src": "3325:373:1" + "src": "3387:373:1" }, { "assignments": [ - 629 + 632 ], "declarations": [ { "constant": false, - "id": 629, + "id": 632, "mutability": "mutable", "name": "action", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "3708:12:1", + "scope": 692, + "src": "3770:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4502,10 +4552,10 @@ "typeString": "uint8" }, "typeName": { - "id": 628, + "id": 631, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3708:5:1", + "src": "3770:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4515,7 +4565,7 @@ "visibility": "internal" } ], - "id": 636, + "id": 639, "initialValue": { "argumentTypes": null, "arguments": [ @@ -4525,19 +4575,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 634, + "id": 637, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 632, + "id": 635, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "3735:6:1", + "referencedDeclaration": 491, + "src": "3797:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4548,14 +4598,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 633, + "id": 636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3744:1:1", + "src": "3806:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -4563,7 +4613,7 @@ }, "value": "4" }, - "src": "3735:10:1", + "src": "3797:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4579,18 +4629,18 @@ ], "expression": { "argumentTypes": null, - "id": 630, + "id": 633, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3723:3:1", + "referencedDeclaration": 457, + "src": "3785:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 631, + "id": 634, "isConstant": false, "isLValue": false, "isPure": false, @@ -4598,13 +4648,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3723:11:1", + "src": "3785: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": 635, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, @@ -4612,7 +4662,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3723:23:1", + "src": "3785:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -4620,22 +4670,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3708:38:1" + "src": "3770:38:1" }, { "assignments": [ - 638 + 641 ], "declarations": [ { "constant": false, - "id": 638, + "id": 641, "mutability": "mutable", "name": "payload", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "3756:20:1", + "scope": 692, + "src": "3818:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4643,10 +4693,10 @@ "typeString": "bytes" }, "typeName": { - "id": 637, + "id": 640, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3756:5:1", + "src": "3818:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4656,7 +4706,7 @@ "visibility": "internal" } ], - "id": 652, + "id": 655, "initialValue": { "argumentTypes": null, "arguments": [ @@ -4666,19 +4716,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 643, + "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 641, + "id": 644, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "3789:6:1", + "referencedDeclaration": 491, + "src": "3851:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4689,14 +4739,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "35", - "id": 642, + "id": 645, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3798:1:1", + "src": "3860:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -4704,7 +4754,7 @@ }, "value": "5" }, - "src": "3789:10:1", + "src": "3851:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4716,7 +4766,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 650, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -4725,18 +4775,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 644, + "id": 647, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3801:3:1", + "referencedDeclaration": 457, + "src": "3863:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 645, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -4744,7 +4794,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3801:10:1", + "src": "3863:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4761,19 +4811,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 648, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 646, + "id": 649, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "3815:6:1", + "referencedDeclaration": 491, + "src": "3877:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4784,14 +4834,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "35", - "id": 647, + "id": 650, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3824:1:1", + "src": "3886:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -4799,27 +4849,27 @@ }, "value": "5" }, - "src": "3815:10:1", + "src": "3877:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 649, + "id": 652, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3814:12:1", + "src": "3876:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3801:25:1", + "src": "3863:25:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4839,18 +4889,18 @@ ], "expression": { "argumentTypes": null, - "id": 639, + "id": 642, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3779:3:1", + "referencedDeclaration": 457, + "src": "3841:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 640, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -4858,13 +4908,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "3779:9:1", + "src": "3841: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": 651, + "id": 654, "isConstant": false, "isLValue": false, "isPure": false, @@ -4872,7 +4922,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3779:48:1", + "src": "3841:48:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4880,7 +4930,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3756:71:1" + "src": "3818:71:1" }, { "condition": { @@ -4889,19 +4939,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 655, + "id": 658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 653, + "id": 656, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, - "src": "3865:6:1", + "referencedDeclaration": 632, + "src": "3927:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4912,14 +4962,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783031", - "id": 654, + "id": 657, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3875:4:1", + "src": "3937:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4927,7 +4977,7 @@ }, "value": "0x01" }, - "src": "3865:14:1", + "src": "3927:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4940,19 +4990,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 670, + "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 668, + "id": 671, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, - "src": "4073:6:1", + "referencedDeclaration": 632, + "src": "4135:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4963,14 +5013,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783130", - "id": 669, + "id": 672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4083:4:1", + "src": "4145:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", @@ -4978,16 +5028,16 @@ }, "value": "0x10" }, - "src": "4073:14:1", + "src": "4135:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 680, + "id": 683, "nodeType": "Block", - "src": "4140:53:1", + "src": "4202:53:1", "statements": [ { "expression": { @@ -4996,14 +5046,14 @@ { "argumentTypes": null, "hexValue": "696e76616c69642056414120616374696f6e", - "id": 677, + "id": 680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4161:20:1", + "src": "4223:20:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66", @@ -5019,7 +5069,7 @@ "typeString": "literal_string \"invalid VAA action\"" } ], - "id": 676, + "id": 679, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5027,13 +5077,13 @@ -19 ], "referencedDeclaration": -19, - "src": "4154:6:1", + "src": "4216:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 678, + "id": 681, "isConstant": false, "isLValue": false, "isPure": false, @@ -5041,26 +5091,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4154:28:1", + "src": "4216:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 679, + "id": 682, "nodeType": "ExpressionStatement", - "src": "4154:28:1" + "src": "4216:28:1" } ] }, - "id": 681, + "id": 684, "nodeType": "IfStatement", - "src": "4069:124:1", + "src": "4131:124:1", "trueBody": { - "id": 675, + "id": 678, "nodeType": "Block", - "src": "4089:45:1", + "src": "4151:45:1", "statements": [ { "expression": { @@ -5068,12 +5118,12 @@ "arguments": [ { "argumentTypes": null, - "id": 672, + "id": 675, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "4115:7:1", + "referencedDeclaration": 641, + "src": "4177:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5087,18 +5137,18 @@ "typeString": "bytes memory" } ], - "id": 671, + "id": 674, "name": "vaaTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "4103:11:1", + "referencedDeclaration": 927, + "src": "4165:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 673, + "id": 676, "isConstant": false, "isLValue": false, "isPure": false, @@ -5106,27 +5156,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4103:20:1", + "src": "4165:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 674, + "id": 677, "nodeType": "ExpressionStatement", - "src": "4103:20:1" + "src": "4165:20:1" } ] } }, - "id": 682, + "id": 685, "nodeType": "IfStatement", - "src": "3861:332:1", + "src": "3923:332:1", "trueBody": { - "id": 667, + "id": 670, "nodeType": "Block", - "src": "3881:182:1", + "src": "3943:182:1", "statements": [ { "expression": { @@ -5138,19 +5188,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 659, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 657, + "id": 660, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "3903:22:1", + "referencedDeclaration": 477, + "src": "3965:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5160,18 +5210,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 658, + "id": 661, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "3929:18:1", + "referencedDeclaration": 401, + "src": "3991:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "3903:44:1", + "src": "3965:44:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5180,14 +5230,14 @@ { "argumentTypes": null, "hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574", - "id": 660, + "id": 663, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3949:59:1", + "src": "4011:59:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a", @@ -5207,7 +5257,7 @@ "typeString": "literal_string \"only the current guardian set can change the guardian set\"" } ], - "id": 656, + "id": 659, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -5215,13 +5265,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3895:7:1", + "src": "3957:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 661, + "id": 664, "isConstant": false, "isLValue": false, "isPure": false, @@ -5229,16 +5279,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3895:114:1", + "src": "3957:114:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 662, + "id": 665, "nodeType": "ExpressionStatement", - "src": "3895:114:1" + "src": "3957:114:1" }, { "expression": { @@ -5246,12 +5296,12 @@ "arguments": [ { "argumentTypes": null, - "id": 664, + "id": 667, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "4044:7:1", + "referencedDeclaration": 641, + "src": "4106:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5265,18 +5315,18 @@ "typeString": "bytes memory" } ], - "id": 663, + "id": 666, "name": "vaaUpdateGuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "4023:20:1", + "referencedDeclaration": 792, + "src": "4085:20:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 665, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, @@ -5284,16 +5334,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4023:29:1", + "src": "4085:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 666, + "id": 669, "nodeType": "ExpressionStatement", - "src": "4023:29:1" + "src": "4085:29:1" } ] } @@ -5301,7 +5351,7 @@ { "expression": { "argumentTypes": null, - "id": 687, + "id": 690, "isConstant": false, "isLValue": false, "isPure": false, @@ -5310,26 +5360,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 683, + "id": 686, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "4238:12:1", + "referencedDeclaration": 407, + "src": "4300:12:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 685, + "id": 688, "indexExpression": { "argumentTypes": null, - "id": 684, + "id": 687, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "4251:4:1", + "referencedDeclaration": 499, + "src": "4313:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5340,7 +5390,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4238:18:1", + "src": "4300:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5351,14 +5401,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 686, + "id": 689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4259:4:1", + "src": "4321:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5366,60 +5416,60 @@ }, "value": "true" }, - "src": "4238:25:1", + "src": "4300:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 688, + "id": 691, "nodeType": "ExpressionStatement", - "src": "4238:25:1" + "src": "4300:25:1" } ] }, "documentation": null, "functionSelector": "3bc0aee6", - "id": 690, + "id": 693, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 457, + "id": 460, "modifierName": { "argumentTypes": null, - "id": 456, + "id": 459, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "2456:12:1", + "referencedDeclaration": 3071, + "src": "2518:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2456:12:1" + "src": "2518:12:1" } ], "name": "submitVAA", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 455, + "id": 458, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 454, + "id": 457, "mutability": "mutable", "name": "vaa", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 690, - "src": "2424:18:1", + "scope": 693, + "src": "2486:18:1", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -5427,10 +5477,10 @@ "typeString": "bytes" }, "typeName": { - "id": 453, + "id": 456, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2424:5:1", + "src": "2486:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5440,40 +5490,40 @@ "visibility": "internal" } ], - "src": "2414:34:1" + "src": "2476:34:1" }, "returnParameters": { - "id": 458, + "id": 461, "nodeType": "ParameterList", "parameters": [], - "src": "2469:0:1" + "src": "2531:0:1" }, - "scope": 1175, - "src": "2396:1874:1", + "scope": 1254, + "src": "2458:1874:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 788, + "id": 791, "nodeType": "Block", - "src": "4333:755:1", + "src": "4395:755:1", "statements": [ { "assignments": [ - 696 + 699 ], "declarations": [ { "constant": false, - "id": 696, + "id": 699, "mutability": "mutable", "name": "new_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4343:29:1", + "scope": 791, + "src": "4405:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5481,10 +5531,10 @@ "typeString": "uint32" }, "typeName": { - "id": 695, + "id": 698, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4343:6:1", + "src": "4405:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5494,21 +5544,21 @@ "visibility": "internal" } ], - "id": 701, + "id": 704, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 699, + "id": 702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4389:1:1", + "src": "4451:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5526,18 +5576,18 @@ ], "expression": { "argumentTypes": null, - "id": 697, + "id": 700, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "4375:4:1", + "referencedDeclaration": 695, + "src": "4437:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 698, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, @@ -5545,13 +5595,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "4375:13:1", + "src": "4437: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": 700, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -5559,7 +5609,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4375:16:1", + "src": "4437:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -5567,22 +5617,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4343:48:1" + "src": "4405:48:1" }, { "assignments": [ - 703 + 706 ], "declarations": [ { "constant": false, - "id": 703, + "id": 706, "mutability": "mutable", "name": "len", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4401:9:1", + "scope": 791, + "src": "4463:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5590,10 +5640,10 @@ "typeString": "uint8" }, "typeName": { - "id": 702, + "id": 705, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4401:5:1", + "src": "4463:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5603,21 +5653,21 @@ "visibility": "internal" } ], - "id": 708, + "id": 711, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 706, + "id": 709, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4426:1:1", + "src": "4488:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -5635,18 +5685,18 @@ ], "expression": { "argumentTypes": null, - "id": 704, + "id": 707, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "4413:4:1", + "referencedDeclaration": 695, + "src": "4475:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 705, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, @@ -5654,13 +5704,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4413:12:1", + "src": "4475: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": 707, + "id": 710, "isConstant": false, "isLValue": false, "isPure": false, @@ -5668,7 +5718,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4413:15:1", + "src": "4475:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -5676,22 +5726,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4401:27:1" + "src": "4463:27:1" }, { "assignments": [ - 713 + 716 ], "declarations": [ { "constant": false, - "id": 713, + "id": 716, "mutability": "mutable", "name": "new_guardians", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4439:30:1", + "scope": 791, + "src": "4501:30:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5700,19 +5750,19 @@ }, "typeName": { "baseType": { - "id": 711, + "id": 714, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4439:7:1", + "src": "4501:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 712, + "id": 715, "length": null, "nodeType": "ArrayTypeName", - "src": "4439:9:1", + "src": "4501:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5722,18 +5772,18 @@ "visibility": "internal" } ], - "id": 719, + "id": 722, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 717, + "id": 720, "name": "len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "4486:3:1", + "referencedDeclaration": 706, + "src": "4548:3:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5747,40 +5797,40 @@ "typeString": "uint8" } ], - "id": 716, + "id": 719, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4472:13:1", + "src": "4534: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": 714, + "id": 717, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4476:7:1", + "src": "4538:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 715, + "id": 718, "length": null, "nodeType": "ArrayTypeName", - "src": "4476:9:1", + "src": "4538:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 718, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -5788,7 +5838,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4472:18:1", + "src": "4534:18:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -5796,28 +5846,28 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4439:51:1" + "src": "4501:51:1" }, { "body": { - "id": 747, + "id": 750, "nodeType": "Block", - "src": "4531:103:1", + "src": "4593:103:1", "statements": [ { "assignments": [ - 731 + 734 ], "declarations": [ { "constant": false, - "id": 731, + "id": 734, "mutability": "mutable", "name": "addr", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 747, - "src": "4545:12:1", + "scope": 750, + "src": "4607:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5825,10 +5875,10 @@ "typeString": "address" }, "typeName": { - "id": 730, + "id": 733, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4545:7:1", + "src": "4607:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5839,7 +5889,7 @@ "visibility": "internal" } ], - "id": 740, + "id": 743, "initialValue": { "argumentTypes": null, "arguments": [ @@ -5849,7 +5899,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 738, + "id": 741, "isConstant": false, "isLValue": false, "isPure": false, @@ -5857,14 +5907,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "35", - "id": 734, + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4575:1:1", + "src": "4637:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -5880,19 +5930,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 737, + "id": 740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 735, + "id": 738, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4579:1:1", + "referencedDeclaration": 724, + "src": "4641:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5903,14 +5953,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3230", - "id": 736, + "id": 739, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4583:2:1", + "src": "4645:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", @@ -5918,13 +5968,13 @@ }, "value": "20" }, - "src": "4579:6:1", + "src": "4641:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4575:10:1", + "src": "4637:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5940,18 +5990,18 @@ ], "expression": { "argumentTypes": null, - "id": 732, + "id": 735, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "4560:4:1", + "referencedDeclaration": 695, + "src": "4622:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 733, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, @@ -5959,13 +6009,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "4560:14:1", + "src": "4622: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": 739, + "id": 742, "isConstant": false, "isLValue": false, "isPure": false, @@ -5973,7 +6023,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4560:26:1", + "src": "4622:26:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -5981,12 +6031,12 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4545:41:1" + "src": "4607:41:1" }, { "expression": { "argumentTypes": null, - "id": 745, + "id": 748, "isConstant": false, "isLValue": false, "isPure": false, @@ -5995,26 +6045,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 741, + "id": 744, "name": "new_guardians", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "4600:13:1", + "referencedDeclaration": 716, + "src": "4662:13:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 743, + "id": 746, "indexExpression": { "argumentTypes": null, - "id": 742, + "id": 745, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4614:1:1", + "referencedDeclaration": 724, + "src": "4676:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6025,7 +6075,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4600:16:1", + "src": "4662:16:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6035,26 +6085,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 744, + "id": 747, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "4619:4:1", + "referencedDeclaration": 734, + "src": "4681:4:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4600:23:1", + "src": "4662:23:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 746, + "id": 749, "nodeType": "ExpressionStatement", - "src": "4600:23:1" + "src": "4662:23:1" } ] }, @@ -6064,19 +6114,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 726, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 724, + "id": 727, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4517:1:1", + "referencedDeclaration": 724, + "src": "4579:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6086,38 +6136,38 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 725, + "id": 728, "name": "len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "4521:3:1", + "referencedDeclaration": 706, + "src": "4583:3:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4517:7:1", + "src": "4579:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 748, + "id": 751, "initializationExpression": { "assignments": [ - 721 + 724 ], "declarations": [ { "constant": false, - "id": 721, + "id": 724, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 748, - "src": "4505:6:1", + "scope": 751, + "src": "4567:6:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6125,10 +6175,10 @@ "typeString": "uint256" }, "typeName": { - "id": 720, + "id": 723, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4505:4:1", + "src": "4567:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6138,18 +6188,18 @@ "visibility": "internal" } ], - "id": 723, + "id": 726, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 722, + "id": 725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4514:1:1", + "src": "4576:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6158,12 +6208,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4505:10:1" + "src": "4567:10:1" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 728, + "id": 731, "isConstant": false, "isLValue": false, "isPure": false, @@ -6171,15 +6221,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4526:3:1", + "src": "4588:3:1", "subExpression": { "argumentTypes": null, - "id": 727, + "id": 730, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4526:1:1", + "referencedDeclaration": 724, + "src": "4588:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6190,27 +6240,27 @@ "typeString": "uint256" } }, - "id": 729, + "id": 732, "nodeType": "ExpressionStatement", - "src": "4526:3:1" + "src": "4588:3:1" }, "nodeType": "ForStatement", - "src": "4500:134:1" + "src": "4562:134:1" }, { "assignments": [ - 750 + 753 ], "declarations": [ { "constant": false, - "id": 750, + "id": 753, "mutability": "mutable", "name": "old_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4644:29:1", + "scope": 791, + "src": "4706:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6218,10 +6268,10 @@ "typeString": "uint32" }, "typeName": { - "id": 749, + "id": 752, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4644:6:1", + "src": "4706:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6231,39 +6281,39 @@ "visibility": "internal" } ], - "id": 752, + "id": 755, "initialValue": { "argumentTypes": null, - "id": 751, + "id": 754, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "4676:18:1", + "referencedDeclaration": 401, + "src": "4738:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "4644:50:1" + "src": "4706:50:1" }, { "expression": { "argumentTypes": null, - "id": 755, + "id": 758, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 753, + "id": 756, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "4704:18:1", + "referencedDeclaration": 401, + "src": "4766:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6273,56 +6323,56 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 754, + "id": 757, "name": "new_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "4725:22:1", + "referencedDeclaration": 699, + "src": "4787:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4704:43:1", + "src": "4766:43:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 756, + "id": 759, "nodeType": "ExpressionStatement", - "src": "4704:43:1" + "src": "4766:43:1" }, { "assignments": [ - 758 + 761 ], "declarations": [ { "constant": false, - "id": 758, + "id": 761, "mutability": "mutable", "name": "new_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4758:35:1", + "scope": 791, + "src": "4820:35:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 757, + "id": 760, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "4758:11:1", + "referencedDeclaration": 371, + "src": "4820:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -6330,18 +6380,18 @@ "visibility": "internal" } ], - "id": 763, + "id": 766, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 760, + "id": 763, "name": "new_guardians", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "4808:13:1", + "referencedDeclaration": 716, + "src": "4870:13:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -6350,14 +6400,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 761, + "id": 764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4823:1:1", + "src": "4885:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6377,18 +6427,18 @@ "typeString": "int_const 0" } ], - "id": 759, + "id": 762, "name": "GuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "4796:11:1", + "referencedDeclaration": 371, + "src": "4858:11:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_GuardianSet_$368_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_GuardianSet_$371_storage_ptr_$", "typeString": "type(struct Wormhole.GuardianSet storage pointer)" } }, - "id": 762, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, @@ -6396,20 +6446,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4796:29:1", + "src": "4858:29:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4758:67:1" + "src": "4820:67:1" }, { "expression": { "argumentTypes": null, - "id": 768, + "id": 771, "isConstant": false, "isLValue": false, "isPure": false, @@ -6418,26 +6468,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 764, + "id": 767, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "4835:13:1", + "referencedDeclaration": 399, + "src": "4897:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 766, + "id": 769, "indexExpression": { "argumentTypes": null, - "id": 765, + "id": 768, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "4849:18:1", + "referencedDeclaration": 401, + "src": "4911:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6448,9 +6498,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4835:33:1", + "src": "4897:33:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, @@ -6458,31 +6508,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 767, + "id": 770, "name": "new_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "4871:16:1", + "referencedDeclaration": 761, + "src": "4933:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "4835:52:1", + "src": "4897:52:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 769, + "id": 772, "nodeType": "ExpressionStatement", - "src": "4835:52:1" + "src": "4897:52:1" }, { "expression": { "argumentTypes": null, - "id": 781, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, @@ -6493,26 +6543,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 770, + "id": 773, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "4897:13:1", + "referencedDeclaration": 399, + "src": "4959:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 772, + "id": 775, "indexExpression": { "argumentTypes": null, - "id": 771, + "id": 774, "name": "old_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "4911:22:1", + "referencedDeclaration": 753, + "src": "4973:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6523,21 +6573,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4897:37:1", + "src": "4959:37:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 773, + "id": 776, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "4897:53:1", + "referencedDeclaration": 370, + "src": "4959:53:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6551,7 +6601,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 780, + "id": 783, "isConstant": false, "isLValue": false, "isPure": false, @@ -6563,18 +6613,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 776, + "id": 779, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "4960:5:1", + "src": "5022:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 777, + "id": 780, "isConstant": false, "isLValue": false, "isPure": false, @@ -6582,7 +6632,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4960:15:1", + "src": "5022:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6596,29 +6646,29 @@ "typeString": "uint256" } ], - "id": 775, + "id": 778, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4953:6:1", + "src": "5015:6:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 774, + "id": 777, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4953:6:1", + "src": "5015:6:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 778, + "id": 781, "isConstant": false, "isLValue": false, "isPure": false, @@ -6626,7 +6676,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4953:23:1", + "src": "5015:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -6637,32 +6687,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 779, + "id": 782, "name": "guardian_set_expirity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 400, - "src": "4979:21:1", + "referencedDeclaration": 403, + "src": "5041:21:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4953:47:1", + "src": "5015:47:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4897:103:1", + "src": "4959:103:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 782, + "id": 785, "nodeType": "ExpressionStatement", - "src": "4897:103:1" + "src": "4959:103:1" }, { "eventCall": { @@ -6670,12 +6720,12 @@ "arguments": [ { "argumentTypes": null, - "id": 784, + "id": 787, "name": "old_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "5038:22:1", + "referencedDeclaration": 753, + "src": "5100:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6683,12 +6733,12 @@ }, { "argumentTypes": null, - "id": 785, + "id": 788, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "5062:18:1", + "referencedDeclaration": 401, + "src": "5124:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6706,18 +6756,18 @@ "typeString": "uint32" } ], - "id": 783, + "id": 786, "name": "LogGuardianSetChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 374, - "src": "5016:21:1", + "referencedDeclaration": 377, + "src": "5078:21:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$", "typeString": "function (uint32,uint32)" } }, - "id": 786, + "id": 789, "isConstant": false, "isLValue": false, "isPure": false, @@ -6725,21 +6775,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5016:65:1", + "src": "5078:65:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 787, + "id": 790, "nodeType": "EmitStatement", - "src": "5011:70:1" + "src": "5073:70:1" } ] }, "documentation": null, - "id": 789, + "id": 792, "implemented": true, "kind": "function", "modifiers": [], @@ -6747,18 +6797,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 693, + "id": 696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 692, + "id": 695, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 789, - "src": "4306:17:1", + "scope": 792, + "src": "4368:17:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -6766,10 +6816,10 @@ "typeString": "bytes" }, "typeName": { - "id": 691, + "id": 694, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4306:5:1", + "src": "4368:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6779,40 +6829,40 @@ "visibility": "internal" } ], - "src": "4305:19:1" + "src": "4367:19:1" }, "returnParameters": { - "id": 694, + "id": 697, "nodeType": "ParameterList", "parameters": [], - "src": "4333:0:1" + "src": "4395:0:1" }, - "scope": 1175, - "src": "4276:812:1", + "scope": 1254, + "src": "4338:812:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 923, + "id": 926, "nodeType": "Block", - "src": "5142:1399:1", + "src": "5204:1399:1", "statements": [ { "assignments": [ - 795 + 798 ], "declarations": [ { "constant": false, - "id": 795, + "id": 798, "mutability": "mutable", "name": "source_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5195:18:1", + "scope": 926, + "src": "5257:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6820,10 +6870,10 @@ "typeString": "uint8" }, "typeName": { - "id": 794, + "id": 797, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5195:5:1", + "src": "5257:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6833,21 +6883,21 @@ "visibility": "internal" } ], - "id": 800, + "id": 803, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 798, + "id": 801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5229:1:1", + "src": "5291:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -6865,18 +6915,18 @@ ], "expression": { "argumentTypes": null, - "id": 796, + "id": 799, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5216:4:1", + "referencedDeclaration": 794, + "src": "5278:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 797, + "id": 800, "isConstant": false, "isLValue": false, "isPure": false, @@ -6884,13 +6934,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5216:12:1", + "src": "5278: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": 799, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, @@ -6898,7 +6948,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5216:15:1", + "src": "5278:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -6906,22 +6956,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5195:36:1" + "src": "5257:36:1" }, { "assignments": [ - 802 + 805 ], "declarations": [ { "constant": false, - "id": 802, + "id": 805, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5242:18:1", + "scope": 926, + "src": "5304:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6929,10 +6979,10 @@ "typeString": "uint8" }, "typeName": { - "id": 801, + "id": 804, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5242:5:1", + "src": "5304:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6942,21 +6992,21 @@ "visibility": "internal" } ], - "id": 807, + "id": 810, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 805, + "id": 808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5276:1:1", + "src": "5338:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -6974,18 +7024,18 @@ ], "expression": { "argumentTypes": null, - "id": 803, + "id": 806, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5263:4:1", + "referencedDeclaration": 794, + "src": "5325:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 804, + "id": 807, "isConstant": false, "isLValue": false, "isPure": false, @@ -6993,13 +7043,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5263:12:1", + "src": "5325: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": 806, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -7007,7 +7057,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5263:15:1", + "src": "5325:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -7015,22 +7065,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5242:36:1" + "src": "5304:36:1" }, { "assignments": [ - 809 + 812 ], "declarations": [ { "constant": false, - "id": 809, + "id": 812, "mutability": "mutable", "name": "target_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5397:22:1", + "scope": 926, + "src": "5459:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7038,10 +7088,10 @@ "typeString": "address" }, "typeName": { - "id": 808, + "id": 811, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5397:7:1", + "src": "5459:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7052,7 +7102,7 @@ "visibility": "internal" } ], - "id": 816, + "id": 819, "initialValue": { "argumentTypes": null, "arguments": [ @@ -7062,7 +7112,7 @@ "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" }, - "id": 814, + "id": 817, "isConstant": false, "isLValue": false, "isPure": true, @@ -7070,14 +7120,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3338", - "id": 812, + "id": 815, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5437:2:1", + "src": "5499:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_38_by_1", @@ -7090,14 +7140,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 813, + "id": 816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5442:2:1", + "src": "5504:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -7105,7 +7155,7 @@ }, "value": "12" }, - "src": "5437:7:1", + "src": "5499:7:1", "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" @@ -7121,18 +7171,18 @@ ], "expression": { "argumentTypes": null, - "id": 810, + "id": 813, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5422:4:1", + "referencedDeclaration": 794, + "src": "5484:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 811, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, @@ -7140,13 +7190,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "5422:14:1", + "src": "5484: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": 815, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -7154,7 +7204,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5422:23:1", + "src": "5484:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7162,22 +7212,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5397:48:1" + "src": "5459:48:1" }, { "assignments": [ - 818 + 821 ], "declarations": [ { "constant": false, - "id": 818, + "id": 821, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5456:17:1", + "scope": 926, + "src": "5518:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7185,10 +7235,10 @@ "typeString": "uint8" }, "typeName": { - "id": 817, + "id": 820, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5456:5:1", + "src": "5518:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7198,21 +7248,21 @@ "visibility": "internal" } ], - "id": 823, + "id": 826, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3730", - "id": 821, + "id": 824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5489:2:1", + "src": "5551:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_70_by_1", @@ -7230,18 +7280,18 @@ ], "expression": { "argumentTypes": null, - "id": 819, + "id": 822, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5476:4:1", + "referencedDeclaration": 794, + "src": "5538:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 820, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, @@ -7249,13 +7299,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5476:12:1", + "src": "5538: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": 822, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, @@ -7263,7 +7313,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5476:16:1", + "src": "5538:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -7271,22 +7321,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5456:36:1" + "src": "5518:36:1" }, { "assignments": [ - 825 + 828 ], "declarations": [ { "constant": false, - "id": 825, + "id": 828, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5556:14:1", + "scope": 926, + "src": "5618:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7294,10 +7344,10 @@ "typeString": "uint256" }, "typeName": { - "id": 824, + "id": 827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5556:7:1", + "src": "5618:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7307,21 +7357,21 @@ "visibility": "internal" } ], - "id": 830, + "id": 833, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "313034", - "id": 828, + "id": 831, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5588:3:1", + "src": "5650:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_104_by_1", @@ -7339,18 +7389,18 @@ ], "expression": { "argumentTypes": null, - "id": 826, + "id": 829, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5573:4:1", + "referencedDeclaration": 794, + "src": "5635:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 827, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -7358,13 +7408,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "5573:14:1", + "src": "5635: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": 829, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -7372,7 +7422,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5573:19:1", + "src": "5635:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -7380,7 +7430,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5556:36:1" + "src": "5618:36:1" }, { "expression": { @@ -7392,19 +7442,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 834, + "id": 837, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 832, + "id": 835, "name": "source_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "5611:12:1", + "referencedDeclaration": 798, + "src": "5673:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7414,18 +7464,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 833, + "id": 836, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "5627:12:1", + "referencedDeclaration": 805, + "src": "5689:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5611:28:1", + "src": "5673:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7434,14 +7484,14 @@ { "argumentTypes": null, "hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564", - "id": 835, + "id": 838, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5641:40:1", + "src": "5703:40:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23", @@ -7461,7 +7511,7 @@ "typeString": "literal_string \"same chain transfers are not supported\"" } ], - "id": 831, + "id": 834, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7469,13 +7519,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5603:7:1", + "src": "5665:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 836, + "id": 839, "isConstant": false, "isLValue": false, "isPure": false, @@ -7483,16 +7533,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5603:79:1", + "src": "5665:79:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 837, + "id": 840, "nodeType": "ExpressionStatement", - "src": "5603:79:1" + "src": "5665:79:1" }, { "expression": { @@ -7504,19 +7554,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 841, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 839, + "id": 842, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "5700:12:1", + "referencedDeclaration": 805, + "src": "5762:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7526,18 +7576,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 840, + "id": 843, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "5716:8:1", + "referencedDeclaration": 362, + "src": "5778:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5700:24:1", + "src": "5762:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7546,14 +7596,14 @@ { "argumentTypes": null, "hexValue": "7472616e73666572206d75737420626520696e636f6d696e67", - "id": 842, + "id": 845, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5726:27:1", + "src": "5788:27:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a", @@ -7573,7 +7623,7 @@ "typeString": "literal_string \"transfer must be incoming\"" } ], - "id": 838, + "id": 841, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -7581,13 +7631,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5692:7:1", + "src": "5754:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 843, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, @@ -7595,16 +7645,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5692:62:1", + "src": "5754:62:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 844, + "id": 847, "nodeType": "ExpressionStatement", - "src": "5692:62:1" + "src": "5754:62:1" }, { "condition": { @@ -7613,19 +7663,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 847, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 845, + "id": 848, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "5769:11:1", + "referencedDeclaration": 821, + "src": "5831:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7635,42 +7685,42 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 846, + "id": 849, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "5784:8:1", + "referencedDeclaration": 362, + "src": "5846:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5769:23:1", + "src": "5831:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 921, + "id": 924, "nodeType": "Block", - "src": "6390:145:1", + "src": "6452:145:1", "statements": [ { "assignments": [ - 905 + 908 ], "declarations": [ { "constant": false, - "id": 905, + "id": 908, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 921, - "src": "6404:21:1", + "scope": 924, + "src": "6466:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7678,10 +7728,10 @@ "typeString": "address" }, "typeName": { - "id": 904, + "id": 907, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6404:7:1", + "src": "6466:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7692,7 +7742,7 @@ "visibility": "internal" } ], - "id": 912, + "id": 915, "initialValue": { "argumentTypes": null, "arguments": [ @@ -7702,7 +7752,7 @@ "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" }, - "id": 910, + "id": 913, "isConstant": false, "isLValue": false, "isPure": true, @@ -7710,14 +7760,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3731", - "id": 908, + "id": 911, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6443:2:1", + "src": "6505:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -7730,14 +7780,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 909, + "id": 912, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6448:2:1", + "src": "6510:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -7745,7 +7795,7 @@ }, "value": "12" }, - "src": "6443:7:1", + "src": "6505:7:1", "typeDescriptions": { "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" @@ -7761,18 +7811,18 @@ ], "expression": { "argumentTypes": null, - "id": 906, + "id": 909, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "6428:4:1", + "referencedDeclaration": 794, + "src": "6490:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 907, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -7780,13 +7830,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "6428:14:1", + "src": "6490: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": 911, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, @@ -7794,7 +7844,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6428:23:1", + "src": "6490:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -7802,7 +7852,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6404:47:1" + "src": "6466:47:1" }, { "expression": { @@ -7810,12 +7860,12 @@ "arguments": [ { "argumentTypes": null, - "id": 917, + "id": 920, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6501:14:1", + "referencedDeclaration": 812, + "src": "6563:14:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7823,12 +7873,12 @@ }, { "argumentTypes": null, - "id": 918, + "id": 921, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 825, - "src": "6517:6:1", + "referencedDeclaration": 828, + "src": "6579:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7851,12 +7901,12 @@ "arguments": [ { "argumentTypes": null, - "id": 914, + "id": 917, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "6473:13:1", + "referencedDeclaration": 908, + "src": "6535:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7870,18 +7920,18 @@ "typeString": "address" } ], - "id": 913, + "id": 916, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "6466:6:1", + "referencedDeclaration": 2615, + "src": "6528:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2536_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2615_$", "typeString": "type(contract IERC20)" } }, - "id": 915, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -7889,28 +7939,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6466:21:1", + "src": "6528:21:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } }, - "id": 916, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2570, - "src": "6466:34:1", + "referencedDeclaration": 2649, + "src": "6528:34:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2536_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2536_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2615_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2615_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 919, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -7918,41 +7968,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6466:58:1", + "src": "6528:58:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 920, + "id": 923, "nodeType": "ExpressionStatement", - "src": "6466:58:1" + "src": "6528:58:1" } ] }, - "id": 922, + "id": 925, "nodeType": "IfStatement", - "src": "5765:770:1", + "src": "5827:770:1", "trueBody": { - "id": 903, + "id": 906, "nodeType": "Block", - "src": "5794:590:1", + "src": "5856:590:1", "statements": [ { "assignments": [ - 849 + 852 ], "declarations": [ { "constant": false, - "id": 849, + "id": 852, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 903, - "src": "5808:21:1", + "scope": 906, + "src": "5870:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7960,10 +8010,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 848, + "id": 851, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5808:7:1", + "src": "5870:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7973,21 +8023,21 @@ "visibility": "internal" } ], - "id": 854, + "id": 857, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3731", - "id": 852, + "id": 855, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5847:2:1", + "src": "5909:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -8005,18 +8055,18 @@ ], "expression": { "argumentTypes": null, - "id": 850, + "id": 853, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5832:4:1", + "referencedDeclaration": 794, + "src": "5894:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 851, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -8024,13 +8074,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "5832:14:1", + "src": "5894: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": 853, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, @@ -8038,7 +8088,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5832:18:1", + "src": "5894:18:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -8046,22 +8096,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5808:42:1" + "src": "5870:42:1" }, { "assignments": [ - 856 + 859 ], "declarations": [ { "constant": false, - "id": 856, + "id": 859, "mutability": "mutable", "name": "asset_id", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 903, - "src": "5864:16:1", + "scope": 906, + "src": "5926:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8069,10 +8119,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 855, + "id": 858, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5864:7:1", + "src": "5926:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8082,7 +8132,7 @@ "visibility": "internal" } ], - "id": 864, + "id": 867, "initialValue": { "argumentTypes": null, "arguments": [ @@ -8091,12 +8141,12 @@ "arguments": [ { "argumentTypes": null, - "id": 860, + "id": 863, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "5910:11:1", + "referencedDeclaration": 821, + "src": "5972:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8104,12 +8154,12 @@ }, { "argumentTypes": null, - "id": 861, + "id": 864, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "5923:13:1", + "referencedDeclaration": 852, + "src": "5985:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8129,18 +8179,18 @@ ], "expression": { "argumentTypes": null, - "id": 858, + "id": 861, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "5893:3:1", + "src": "5955:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 859, + "id": 862, "isConstant": false, "isLValue": false, "isPure": true, @@ -8148,13 +8198,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5893:16:1", + "src": "5955:16:1", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 862, + "id": 865, "isConstant": false, "isLValue": false, "isPure": false, @@ -8162,7 +8212,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5893:44:1", + "src": "5955:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -8177,18 +8227,18 @@ "typeString": "bytes memory" } ], - "id": 857, + "id": 860, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "5883:9:1", + "src": "5945:9:1", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 863, + "id": 866, "isConstant": false, "isLValue": false, "isPure": false, @@ -8196,7 +8246,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5883:55:1", + "src": "5945:55:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -8204,22 +8254,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5864:74:1" + "src": "5926:74:1" }, { "assignments": [ - 866 + 869 ], "declarations": [ { "constant": false, - "id": 866, + "id": 869, "mutability": "mutable", "name": "wrapped_asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 903, - "src": "6030:21:1", + "scope": 906, + "src": "6092:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8227,10 +8277,10 @@ "typeString": "address" }, "typeName": { - "id": 865, + "id": 868, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6030:7:1", + "src": "6092:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8241,31 +8291,31 @@ "visibility": "internal" } ], - "id": 870, + "id": 873, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 867, + "id": 870, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "6054:13:1", + "referencedDeclaration": 411, + "src": "6116:13:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 869, + "id": 872, "indexExpression": { "argumentTypes": null, - "id": 868, + "id": 871, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 856, - "src": "6068:8:1", + "referencedDeclaration": 859, + "src": "6130:8:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8276,14 +8326,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6054:23:1", + "src": "6116:23:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "6030:47:1" + "src": "6092:47:1" }, { "condition": { @@ -8292,19 +8342,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 876, + "id": 879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 871, + "id": 874, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "6095:13:1", + "referencedDeclaration": 869, + "src": "6157:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8318,14 +8368,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 874, + "id": 877, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6120:1:1", + "src": "6182:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8341,29 +8391,29 @@ "typeString": "int_const 0" } ], - "id": 873, + "id": 876, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6112:7:1", + "src": "6174:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 872, + "id": 875, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6112:7:1", + "src": "6174:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 875, + "id": 878, "isConstant": false, "isLValue": false, "isPure": true, @@ -8371,42 +8421,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6112:10:1", + "src": "6174:10:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "6095:27:1", + "src": "6157:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 894, + "id": 897, "nodeType": "IfStatement", - "src": "6091:212:1", + "src": "6153:212:1", "trueBody": { - "id": 893, + "id": 896, "nodeType": "Block", - "src": "6124:179:1", + "src": "6186:179:1", "statements": [ { "assignments": [ - 878 + 881 ], "declarations": [ { "constant": false, - "id": 878, + "id": 881, "mutability": "mutable", "name": "asset_decimals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 893, - "src": "6142:20:1", + "scope": 896, + "src": "6204:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8414,10 +8464,10 @@ "typeString": "uint8" }, "typeName": { - "id": 877, + "id": 880, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6142:5:1", + "src": "6204:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8427,21 +8477,21 @@ "visibility": "internal" } ], - "id": 883, + "id": 886, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "313033", - "id": 881, + "id": 884, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6178:3:1", + "src": "6240:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_103_by_1", @@ -8459,18 +8509,18 @@ ], "expression": { "argumentTypes": null, - "id": 879, + "id": 882, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "6165:4:1", + "referencedDeclaration": 794, + "src": "6227:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 880, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -8478,13 +8528,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "6165:12:1", + "src": "6227: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": 882, + "id": 885, "isConstant": false, "isLValue": false, "isPure": false, @@ -8492,7 +8542,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6165:17:1", + "src": "6227:17:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -8500,24 +8550,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6142:40:1" + "src": "6204:40:1" }, { "expression": { "argumentTypes": null, - "id": 891, + "id": 894, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 884, + "id": 887, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "6200:13:1", + "referencedDeclaration": 869, + "src": "6262:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8530,12 +8580,12 @@ "arguments": [ { "argumentTypes": null, - "id": 886, + "id": 889, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 856, - "src": "6235:8:1", + "referencedDeclaration": 859, + "src": "6297:8:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8543,12 +8593,12 @@ }, { "argumentTypes": null, - "id": 887, + "id": 890, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "6245:11:1", + "referencedDeclaration": 821, + "src": "6307:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8556,12 +8606,12 @@ }, { "argumentTypes": null, - "id": 888, + "id": 891, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "6258:13:1", + "referencedDeclaration": 852, + "src": "6320:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8569,12 +8619,12 @@ }, { "argumentTypes": null, - "id": 889, + "id": 892, "name": "asset_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "6273:14:1", + "referencedDeclaration": 881, + "src": "6335:14:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8600,18 +8650,18 @@ "typeString": "uint8" } ], - "id": 885, + "id": 888, "name": "deployWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "6216:18:1", + "referencedDeclaration": 970, + "src": "6278:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_uint8_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,uint8) returns (address)" } }, - "id": 890, + "id": 893, "isConstant": false, "isLValue": false, "isPure": false, @@ -8619,22 +8669,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6216:72:1", + "src": "6278:72:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6200:88:1", + "src": "6262:88:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 892, + "id": 895, "nodeType": "ExpressionStatement", - "src": "6200:88:1" + "src": "6262:88:1" } ] } @@ -8645,12 +8695,12 @@ "arguments": [ { "argumentTypes": null, - "id": 899, + "id": 902, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6350:14:1", + "referencedDeclaration": 812, + "src": "6412:14:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8658,12 +8708,12 @@ }, { "argumentTypes": null, - "id": 900, + "id": 903, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 825, - "src": "6366:6:1", + "referencedDeclaration": 828, + "src": "6428:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8686,12 +8736,12 @@ "arguments": [ { "argumentTypes": null, - "id": 896, + "id": 899, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "6330:13:1", + "referencedDeclaration": 869, + "src": "6392:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8705,18 +8755,18 @@ "typeString": "address" } ], - "id": 895, + "id": 898, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "6317:12:1", + "referencedDeclaration": 1811, + "src": "6379:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 897, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, @@ -8724,28 +8774,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6317:27:1", + "src": "6379:27:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 898, + "id": 901, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 1270, - "src": "6317:32:1", + "referencedDeclaration": 1349, + "src": "6379:32:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 901, + "id": 904, "isConstant": false, "isLValue": false, "isPure": false, @@ -8753,16 +8803,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6317:56:1", + "src": "6379:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 902, + "id": 905, "nodeType": "ExpressionStatement", - "src": "6317:56:1" + "src": "6379:56:1" } ] } @@ -8770,7 +8820,7 @@ ] }, "documentation": null, - "id": 924, + "id": 927, "implemented": true, "kind": "function", "modifiers": [], @@ -8778,18 +8828,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 792, + "id": 795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 791, + "id": 794, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 924, - "src": "5115:17:1", + "scope": 927, + "src": "5177:17:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8797,10 +8847,10 @@ "typeString": "bytes" }, "typeName": { - "id": 790, + "id": 793, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5115:5:1", + "src": "5177:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8810,40 +8860,40 @@ "visibility": "internal" } ], - "src": "5114:19:1" + "src": "5176:19:1" }, "returnParameters": { - "id": 793, + "id": 796, "nodeType": "ParameterList", "parameters": [], - "src": "5142:0:1" + "src": "5204:0:1" }, - "scope": 1175, - "src": "5094:1447:1", + "scope": 1254, + "src": "5156:1447:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 966, + "id": 969, "nodeType": "Block", - "src": "6678:808:1", + "src": "6740:808:1", "statements": [ { "assignments": [ - 938 + 941 ], "declarations": [ { "constant": false, - "id": 938, + "id": 941, "mutability": "mutable", "name": "targetBytes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 966, - "src": "6856:19:1", + "scope": 969, + "src": "6918:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8851,10 +8901,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 937, + "id": 940, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6856:7:1", + "src": "6918:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -8864,18 +8914,18 @@ "visibility": "internal" } ], - "id": 943, + "id": 946, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 941, + "id": 944, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "6886:18:1", + "referencedDeclaration": 359, + "src": "6948:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8889,29 +8939,29 @@ "typeString": "address" } ], - "id": 940, + "id": 943, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6878:7:1", + "src": "6940:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 939, + "id": 942, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6878:7:1", + "src": "6940:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 942, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -8919,7 +8969,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6878:27:1", + "src": "6940:27:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -8927,22 +8977,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6856:49:1" + "src": "6918:49:1" }, { "AST": { "nodeType": "YulBlock", - "src": "6924:348:1", + "src": "6986:348:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6938:24:1", + "src": "7000:24:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6957:4:1", + "src": "7019:4:1", "type": "", "value": "0x40" } @@ -8950,16 +9000,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "6951:5:1" + "src": "7013:5:1" }, "nodeType": "YulFunctionCall", - "src": "6951:11:1" + "src": "7013:11:1" }, "variables": [ { "name": "clone", "nodeType": "YulTypedName", - "src": "6942:5:1", + "src": "7004:5:1", "type": "" } ] @@ -8970,12 +9020,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6982:5:1" + "src": "7044:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6989:66:1", + "src": "7051:66:1", "type": "", "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" } @@ -8983,13 +9033,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6975:6:1" + "src": "7037:6:1" }, "nodeType": "YulFunctionCall", - "src": "6975:81:1" + "src": "7037:81:1" }, "nodeType": "YulExpressionStatement", - "src": "6975:81:1" + "src": "7037:81:1" }, { "expression": { @@ -8999,12 +9049,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "7080:5:1" + "src": "7142:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7087:4:1", + "src": "7149:4:1", "type": "", "value": "0x14" } @@ -9012,27 +9062,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7076:3:1" + "src": "7138:3:1" }, "nodeType": "YulFunctionCall", - "src": "7076:16:1" + "src": "7138:16:1" }, { "name": "targetBytes", "nodeType": "YulIdentifier", - "src": "7094:11:1" + "src": "7156:11:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7069:6:1" + "src": "7131:6:1" }, "nodeType": "YulFunctionCall", - "src": "7069:37:1" + "src": "7131:37:1" }, "nodeType": "YulExpressionStatement", - "src": "7069:37:1" + "src": "7131:37:1" }, { "expression": { @@ -9042,12 +9092,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "7130:5:1" + "src": "7192:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7137:4:1", + "src": "7199:4:1", "type": "", "value": "0x28" } @@ -9055,15 +9105,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7126:3:1" + "src": "7188:3:1" }, "nodeType": "YulFunctionCall", - "src": "7126:16:1" + "src": "7188:16:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7144:66:1", + "src": "7206:66:1", "type": "", "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" } @@ -9071,57 +9121,57 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7119:6:1" + "src": "7181:6:1" }, "nodeType": "YulFunctionCall", - "src": "7119:92:1" + "src": "7181:92:1" }, "nodeType": "YulExpressionStatement", - "src": "7119:92:1" + "src": "7181:92:1" }, { "nodeType": "YulAssignment", - "src": "7224:38:1", + "src": "7286:38:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "7241:1:1", + "src": "7303:1:1", "type": "", "value": "0" }, { "name": "clone", "nodeType": "YulIdentifier", - "src": "7244:5:1" + "src": "7306:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7251:4:1", + "src": "7313:4:1", "type": "", "value": "0x37" }, { "name": "seed", "nodeType": "YulIdentifier", - "src": "7257:4:1" + "src": "7319:4:1" } ], "functionName": { "name": "create2", "nodeType": "YulIdentifier", - "src": "7233:7:1" + "src": "7295:7:1" }, "nodeType": "YulFunctionCall", - "src": "7233:29:1" + "src": "7295:29:1" }, "variableNames": [ { "name": "asset", "nodeType": "YulIdentifier", - "src": "7224:5:1" + "src": "7286:5:1" } ] } @@ -9129,31 +9179,31 @@ }, "evmVersion": "istanbul", "externalReferences": [ - { - "declaration": 935, - "isOffset": false, - "isSlot": false, - "src": "7224:5:1", - "valueSize": 1 - }, - { - "declaration": 926, - "isOffset": false, - "isSlot": false, - "src": "7257:4:1", - "valueSize": 1 - }, { "declaration": 938, "isOffset": false, "isSlot": false, - "src": "7094:11:1", + "src": "7286:5:1", + "valueSize": 1 + }, + { + "declaration": 929, + "isOffset": false, + "isSlot": false, + "src": "7319:4:1", + "valueSize": 1 + }, + { + "declaration": 941, + "isOffset": false, + "isSlot": false, + "src": "7156:11:1", "valueSize": 1 } ], - "id": 944, + "id": 947, "nodeType": "InlineAssembly", - "src": "6915:357:1" + "src": "6977:357:1" }, { "expression": { @@ -9161,12 +9211,12 @@ "arguments": [ { "argumentTypes": null, - "id": 949, + "id": 952, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7341:11:1", + "referencedDeclaration": 931, + "src": "7403:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9174,12 +9224,12 @@ }, { "argumentTypes": null, - "id": 950, + "id": 953, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "7354:13:1", + "referencedDeclaration": 933, + "src": "7416:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9187,12 +9237,12 @@ }, { "argumentTypes": null, - "id": 951, + "id": 954, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 932, - "src": "7369:8:1", + "referencedDeclaration": 935, + "src": "7431:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9219,12 +9269,12 @@ "arguments": [ { "argumentTypes": null, - "id": 946, + "id": 949, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "7323:5:1", + "referencedDeclaration": 938, + "src": "7385:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9238,18 +9288,18 @@ "typeString": "address" } ], - "id": 945, + "id": 948, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7310:12:1", + "referencedDeclaration": 1811, + "src": "7372:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 947, + "id": 950, "isConstant": false, "isLValue": false, "isPure": false, @@ -9257,28 +9307,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7310:19:1", + "src": "7372:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 948, + "id": 951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "initialize", "nodeType": "MemberAccess", - "referencedDeclaration": 1249, - "src": "7310:30:1", + "referencedDeclaration": 1328, + "src": "7372:30:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$_t_uint8_$returns$__$", "typeString": "function (uint8,bytes32,uint8) external" } }, - "id": 952, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, @@ -9286,21 +9336,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7310:68:1", + "src": "7372:68:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 953, + "id": 956, "nodeType": "ExpressionStatement", - "src": "7310:68:1" + "src": "7372:68:1" }, { "expression": { "argumentTypes": null, - "id": 958, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -9309,26 +9359,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 954, + "id": 957, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "7414:13:1", + "referencedDeclaration": 411, + "src": "7476:13:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 956, + "id": 959, "indexExpression": { "argumentTypes": null, - "id": 955, + "id": 958, "name": "seed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 926, - "src": "7428:4:1", + "referencedDeclaration": 929, + "src": "7490:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9339,7 +9389,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7414:19:1", + "src": "7476:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9349,31 +9399,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 957, + "id": 960, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "7436:5:1", + "referencedDeclaration": 938, + "src": "7498:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7414:27:1", + "src": "7476:27:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 959, + "id": 962, "nodeType": "ExpressionStatement", - "src": "7414:27:1" + "src": "7476:27:1" }, { "expression": { "argumentTypes": null, - "id": 964, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -9382,26 +9432,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 960, + "id": 963, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7451:14:1", + "referencedDeclaration": 415, + "src": "7513:14:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 962, + "id": 965, "indexExpression": { "argumentTypes": null, - "id": 961, + "id": 964, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "7466:5:1", + "referencedDeclaration": 938, + "src": "7528:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9412,7 +9462,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7451:21:1", + "src": "7513:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9423,14 +9473,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 963, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7475:4:1", + "src": "7537:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9438,20 +9488,20 @@ }, "value": "true" }, - "src": "7451:28:1", + "src": "7513:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 965, + "id": 968, "nodeType": "ExpressionStatement", - "src": "7451:28:1" + "src": "7513:28:1" } ] }, "documentation": null, - "id": 967, + "id": 970, "implemented": true, "kind": "function", "modifiers": [], @@ -9459,18 +9509,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 933, + "id": 936, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 926, + "id": 929, "mutability": "mutable", "name": "seed", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6575:12:1", + "scope": 970, + "src": "6637:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9478,10 +9528,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 925, + "id": 928, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6575:7:1", + "src": "6637:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9492,13 +9542,13 @@ }, { "constant": false, - "id": 928, + "id": 931, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6589:17:1", + "scope": 970, + "src": "6651:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9506,10 +9556,10 @@ "typeString": "uint8" }, "typeName": { - "id": 927, + "id": 930, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6589:5:1", + "src": "6651:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9520,13 +9570,13 @@ }, { "constant": false, - "id": 930, + "id": 933, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6608:21:1", + "scope": 970, + "src": "6670:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9534,10 +9584,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 929, + "id": 932, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6608:7:1", + "src": "6670:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9548,13 +9598,13 @@ }, { "constant": false, - "id": 932, + "id": 935, "mutability": "mutable", "name": "decimals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6631:14:1", + "scope": 970, + "src": "6693:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9562,10 +9612,10 @@ "typeString": "uint8" }, "typeName": { - "id": 931, + "id": 934, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6631:5:1", + "src": "6693:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9575,21 +9625,21 @@ "visibility": "internal" } ], - "src": "6574:72:1" + "src": "6636:72:1" }, "returnParameters": { - "id": 936, + "id": 939, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 935, + "id": 938, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6664:13:1", + "scope": 970, + "src": "6726:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9597,10 +9647,10 @@ "typeString": "address" }, "typeName": { - "id": 934, + "id": 937, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6664:7:1", + "src": "6726:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9611,19 +9661,19 @@ "visibility": "internal" } ], - "src": "6663:15:1" + "src": "6725:15:1" }, - "scope": 1175, - "src": "6547:939:1", + "scope": 1254, + "src": "6609:939:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 1103, + "id": 1182, "nodeType": "Block", - "src": "7662:1059:1", + "src": "7750:1642:1", "statements": [ { "expression": { @@ -9635,19 +9685,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 985, + "id": 990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 983, + "id": 988, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "7680:6:1", + "referencedDeclaration": 974, + "src": "7768:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9658,14 +9708,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 984, + "id": 989, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7690:1:1", + "src": "7778:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9673,7 +9723,7 @@ }, "value": "0" }, - "src": "7680:11:1", + "src": "7768:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9682,14 +9732,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 986, + "id": 991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7693:22:1", + "src": "7781:22:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -9709,7 +9759,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 982, + "id": 987, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -9717,13 +9767,13 @@ -18 ], "referencedDeclaration": -18, - "src": "7672:7:1", + "src": "7760:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 987, + "id": 992, "isConstant": false, "isLValue": false, "isPure": false, @@ -9731,31 +9781,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7672:44:1", + "src": "7760:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 988, + "id": 993, "nodeType": "ExpressionStatement", - "src": "7672:44:1" + "src": "7760:44:1" }, { "assignments": [ - 990 + 995 ], "declarations": [ { "constant": false, - "id": 990, + "id": 995, "mutability": "mutable", "name": "asset_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1103, - "src": "7727:17:1", + "scope": 1182, + "src": "7815:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9763,10 +9813,10 @@ "typeString": "uint8" }, "typeName": { - "id": 989, + "id": 994, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7727:5:1", + "src": "7815:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9776,37 +9826,37 @@ "visibility": "internal" } ], - "id": 992, + "id": 997, "initialValue": { "argumentTypes": null, - "id": 991, + "id": 996, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "7747:8:1", + "referencedDeclaration": 362, + "src": "7835:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "7727:28:1" + "src": "7815:28:1" }, { "assignments": [ - 994 + 999 ], "declarations": [ { "constant": false, - "id": 994, + "id": 999, "mutability": "mutable", "name": "asset_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1103, - "src": "7765:21:1", + "scope": 1182, + "src": "7853:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9814,10 +9864,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 993, + "id": 998, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7765:7:1", + "src": "7853:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9827,36 +9877,158 @@ "visibility": "internal" } ], - "id": 995, + "id": 1000, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "7765:21:1" + "src": "7853:21:1" + }, + { + "assignments": [ + 1002 + ], + "declarations": [ + { + "constant": false, + "id": 1002, + "mutability": "mutable", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1182, + "src": "7884:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1001, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1008, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1004, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 972, + "src": "7907:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1003, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2537, + "src": "7901:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$2537_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7901:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$2537", + "typeString": "contract ERC20" + } + }, + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 2113, + "src": "7901:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7901:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7884:40:1" }, { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 996, + "id": 1009, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7800:14:1", + "referencedDeclaration": 415, + "src": "7939:14:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 998, + "id": 1011, "indexExpression": { "argumentTypes": null, - "id": 997, + "id": 1010, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "7815:5:1", + "referencedDeclaration": 972, + "src": "7954:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9867,31 +10039,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7800:21:1", + "src": "7939:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1079, + "id": 1162, "nodeType": "Block", - "src": "8022:539:1", + "src": "8161:1086:1", "statements": [ { "assignments": [ - 1026 + 1039 ], "declarations": [ { "constant": false, - "id": 1026, + "id": 1039, "mutability": "mutable", "name": "balanceBefore", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1079, - "src": "8036:21:1", + "scope": 1162, + "src": "8175:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9899,10 +10071,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1025, + "id": 1038, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8036:7:1", + "src": "8175:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9912,7 +10084,7 @@ "visibility": "internal" } ], - "id": 1036, + "id": 1049, "initialValue": { "argumentTypes": null, "arguments": [ @@ -9921,14 +10093,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1033, + "id": 1046, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "8092:4:1", + "src": "8231:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1175", + "typeIdentifier": "t_contract$_Wormhole_$1254", "typeString": "contract Wormhole" } } @@ -9936,33 +10108,33 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1175", + "typeIdentifier": "t_contract$_Wormhole_$1254", "typeString": "contract Wormhole" } ], - "id": 1032, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8084:7:1", + "src": "8223:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1031, + "id": 1044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8084:7:1", + "src": "8223:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1034, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -9970,7 +10142,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8084:13:1", + "src": "8223:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -9990,12 +10162,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1028, + "id": 1041, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8067:5:1", + "referencedDeclaration": 972, + "src": "8206:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10009,249 +10181,44 @@ "typeString": "address" } ], - "id": 1027, + "id": 1040, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "8060:6:1", + "referencedDeclaration": 2615, + "src": "8199:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2536_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2615_$", "typeString": "type(contract IERC20)" } }, - "id": 1029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8060:13:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", - "typeString": "contract IERC20" - } - }, - "id": 1030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "8060:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8060:38:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8036:62:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1041, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8143:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, "id": 1042, "isConstant": false, "isLValue": false, "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8143:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1045, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "8163:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1175", - "typeString": "contract Wormhole" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Wormhole_$1175", - "typeString": "contract Wormhole" - } - ], - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1043, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8155:7:1", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1046, - "isConstant": false, - "isLValue": false, - "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8155:13:1", + "src": "8199:13:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1047, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "8170:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1038, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8119:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1037, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "8112:6:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2536_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 1039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8112:13:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } }, - "id": 1040, + "id": 1043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "safeTransferFrom", + "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 2595, - "src": "8112:30:1", + "referencedDeclaration": 2554, + "src": "8199:23:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2536_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2536_$", - "typeString": "function (contract IERC20,address,address,uint256)" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, "id": 1048, @@ -10262,55 +10229,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8112:65:1", + "src": "8199:38:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1049, - "nodeType": "ExpressionStatement", - "src": "8112:65:1" + "nodeType": "VariableDeclarationStatement", + "src": "8175:62:1" }, { - "assignments": [ - 1051 - ], - "declarations": [ - { - "constant": false, - "id": 1051, - "mutability": "mutable", - "name": "balanceAfter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1079, - "src": "8191:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1050, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1061, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1054, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8282:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8282:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, { "argumentTypes": null, "arguments": [ @@ -10321,9 +10282,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "8246:4:1", + "src": "8302:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1175", + "typeIdentifier": "t_contract$_Wormhole_$1254", "typeString": "contract Wormhole" } } @@ -10331,7 +10292,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1175", + "typeIdentifier": "t_contract$_Wormhole_$1254", "typeString": "contract Wormhole" } ], @@ -10341,7 +10302,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8238:7:1", + "src": "8294:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -10350,7 +10311,7 @@ "id": 1056, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8238:7:1", + "src": "8294:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null @@ -10365,7 +10326,218 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8238:13:1", + "src": "8294:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1060, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "8309:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1051, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 972, + "src": "8258:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1050, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "8251:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$2615_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8251:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$2615", + "typeString": "contract IERC20" + } + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 2674, + "src": "8251:30:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2615_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2615_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8251:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1062, + "nodeType": "ExpressionStatement", + "src": "8251:65:1" + }, + { + "assignments": [ + 1064 + ], + "declarations": [ + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "balanceAfter", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1162, + "src": "8330:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8330:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1074, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1071, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8385:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Wormhole_$1254", + "typeString": "contract Wormhole" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Wormhole_$1254", + "typeString": "contract Wormhole" + } + ], + "id": 1070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8377:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8377:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8377:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -10385,12 +10557,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1053, + "id": 1066, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8221:5:1", + "referencedDeclaration": 972, + "src": "8360:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10404,18 +10576,18 @@ "typeString": "address" } ], - "id": 1052, + "id": 1065, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "8214:6:1", + "referencedDeclaration": 2615, + "src": "8353:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2536_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2615_$", "typeString": "type(contract IERC20)" } }, - "id": 1054, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -10423,28 +10595,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8214:13:1", + "src": "8353:13:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } }, - "id": 1055, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "8214:23:1", + "referencedDeclaration": 2554, + "src": "8353:23:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1060, + "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, @@ -10452,7 +10624,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8214:38:1", + "src": "8353:38:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10460,24 +10632,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8191:61:1" + "src": "8330:61:1" }, { "expression": { "argumentTypes": null, - "id": 1067, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1062, + "id": 1075, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "8457:6:1", + "referencedDeclaration": 974, + "src": "8596:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10490,12 +10662,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1065, + "id": 1078, "name": "balanceBefore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "8483:13:1", + "referencedDeclaration": 1039, + "src": "8622:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10511,32 +10683,32 @@ ], "expression": { "argumentTypes": null, - "id": 1063, + "id": 1076, "name": "balanceAfter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "8466:12:1", + "referencedDeclaration": 1064, + "src": "8605:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1064, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1801, - "src": "8466:16:1", + "referencedDeclaration": 1880, + "src": "8605: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": 1066, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -10544,39 +10716,1125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8466:31:1", + "src": "8605:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8457:40:1", + "src": "8596:40:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1068, + "id": 1081, "nodeType": "ExpressionStatement", - "src": "8457:40:1" + "src": "8596:40:1" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1082, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "8711:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "39", + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8722:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "8711:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1130, + "nodeType": "IfStatement", + "src": "8707:339:1", + "trueBody": { + "id": 1129, + "nodeType": "Block", + "src": "8725:321:1", + "statements": [ + { + "assignments": [ + 1086 + ], + "declarations": [ + { + "constant": false, + "id": 1086, + "mutability": "mutable", + "name": "original_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1129, + "src": "8743:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1085, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1088, + "initialValue": { + "argumentTypes": null, + "id": 1087, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "8769:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8743:32:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1089, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "8793:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8813:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1095, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "8827:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "39", + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8838:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "8827:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1093, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8819:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8819:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8813:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1090, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "8802:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 1960, + "src": "8802:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8802:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8793:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1102, + "nodeType": "ExpressionStatement", + "src": "8793:48:1" + }, + { + "condition": { + "argumentTypes": null, + "id": 1103, + "name": "refund_dust", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8864:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1124, + "nodeType": "IfStatement", + "src": "8860:141:1", + "trueBody": { + "id": 1123, + "nodeType": "Block", + "src": "8877:124:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1108, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8953:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1115, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "8967:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "39", + "id": 1116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8978:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "8967:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8959:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8959:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8959:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8953:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1110, + "name": "original_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1086, + "src": "8933:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mod", + "nodeType": "MemberAccess", + "referencedDeclaration": 2005, + "src": "8933:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8933:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1105, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 972, + "src": "8905:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1104, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2537, + "src": "8899:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$2537_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8899:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$2537", + "typeString": "contract ERC20" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2158, + "src": "8899:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8899:83:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1122, + "nodeType": "ExpressionStatement", + "src": "8899:83:1" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1125, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "9019:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "39", + "id": 1126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9030:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "9019:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "9019:12:1" + } + ] + } }, { "expression": { "argumentTypes": null, - "id": 1077, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9085:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1138, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 972, + "src": "9105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1137, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2537, + "src": "9099:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$2537_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9099:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$2537", + "typeString": "contract ERC20" + } + }, + "id": 1140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 2113, + "src": "9099:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 1141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9099:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "39", + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9125:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "9099:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9091:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9091:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9091:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9085:42:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1132, + "name": "balanceAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "9068:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 1960, + "src": "9068: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": 1146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9068:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1147, + "name": "MAX_UINT64", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 357, + "src": "9132:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "9068:74:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6272696467652062616c616e636520776f756c6420657863656564206d6178696d756d", + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9144:37:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4", + "typeString": "literal_string \"bridge balance would exceed maximum\"" + }, + "value": "bridge balance would exceed maximum" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4", + "typeString": "literal_string \"bridge balance would exceed maximum\"" + } + ], + "id": 1131, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9060:122:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1151, + "nodeType": "ExpressionStatement", + "src": "9060:122:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1069, + "id": 1152, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8511:13:1", + "referencedDeclaration": 999, + "src": "9197:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -10592,12 +11850,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1074, + "id": 1157, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8543:5:1", + "referencedDeclaration": 972, + "src": "9229:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10611,29 +11869,29 @@ "typeString": "address" } ], - "id": 1073, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8535:7:1", + "src": "9221:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1072, + "id": 1155, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8535:7:1", + "src": "9221:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1075, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -10641,7 +11899,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8535:14:1", + "src": "9221:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -10656,29 +11914,29 @@ "typeString": "uint256" } ], - "id": 1071, + "id": 1154, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8527:7:1", + "src": "9213:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1070, + "id": 1153, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8527:7:1", + "src": "9213:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1076, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": false, @@ -10686,32 +11944,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8527:23:1", + "src": "9213:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8511:39:1", + "src": "9197:39:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1078, + "id": 1161, "nodeType": "ExpressionStatement", - "src": "8511:39:1" + "src": "9197:39:1" } ] }, - "id": 1080, + "id": 1163, "nodeType": "IfStatement", - "src": "7796:765:1", + "src": "7935:1312:1", "trueBody": { - "id": 1024, + "id": 1037, "nodeType": "Block", - "src": "7823:193:1", + "src": "7962:193:1", "statements": [ { "expression": { @@ -10721,18 +11979,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1003, + "id": 1016, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7862:3:1", + "src": "8001:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1004, + "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, @@ -10740,7 +11998,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7862:10:1", + "src": "8001:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -10748,12 +12006,12 @@ }, { "argumentTypes": null, - "id": 1005, + "id": 1018, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "7874:6:1", + "referencedDeclaration": 974, + "src": "8013:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10776,12 +12034,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1000, + "id": 1013, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "7850:5:1", + "referencedDeclaration": 972, + "src": "7989:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10795,18 +12053,18 @@ "typeString": "address" } ], - "id": 999, + "id": 1012, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7837:12:1", + "referencedDeclaration": 1811, + "src": "7976:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1001, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -10814,28 +12072,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7837:19:1", + "src": "7976:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 1002, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "burn", "nodeType": "MemberAccess", - "referencedDeclaration": 1291, - "src": "7837:24:1", + "referencedDeclaration": 1370, + "src": "7976:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 1006, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -10843,33 +12101,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7837:44:1", + "src": "7976:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1007, + "id": 1020, "nodeType": "ExpressionStatement", - "src": "7837:44:1" + "src": "7976:44:1" }, { "expression": { "argumentTypes": null, - "id": 1014, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1008, + "id": 1021, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 990, - "src": "7895:11:1", + "referencedDeclaration": 995, + "src": "8034:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10887,12 +12145,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1010, + "id": 1023, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "7922:5:1", + "referencedDeclaration": 972, + "src": "8061:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10906,18 +12164,18 @@ "typeString": "address" } ], - "id": 1009, + "id": 1022, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7909:12:1", + "referencedDeclaration": 1811, + "src": "8048:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1011, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, @@ -10925,28 +12183,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7909:19:1", + "src": "8048:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 1012, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "assetChain", "nodeType": "MemberAccess", - "referencedDeclaration": 1198, - "src": "7909:30:1", + "referencedDeclaration": 1277, + "src": "8048:30:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 1013, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, @@ -10954,39 +12212,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7909:32:1", + "src": "8048:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "7895:46:1", + "src": "8034:46:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1015, + "id": 1028, "nodeType": "ExpressionStatement", - "src": "7895:46:1" + "src": "8034:46:1" }, { "expression": { "argumentTypes": null, - "id": 1022, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1016, + "id": 1029, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "7955:13:1", + "referencedDeclaration": 999, + "src": "8094:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11004,12 +12262,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1018, + "id": 1031, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "7984:5:1", + "referencedDeclaration": 972, + "src": "8123:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11023,18 +12281,18 @@ "typeString": "address" } ], - "id": 1017, + "id": 1030, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7971:12:1", + "referencedDeclaration": 1811, + "src": "8110:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1019, + "id": 1032, "isConstant": false, "isLValue": false, "isPure": false, @@ -11042,28 +12300,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7971:19:1", + "src": "8110:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 1020, + "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "assetAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1200, - "src": "7971:32:1", + "referencedDeclaration": 1279, + "src": "8110:32:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", "typeString": "function () view external returns (bytes32)" } }, - "id": 1021, + "id": 1034, "isConstant": false, "isLValue": false, "isPure": false, @@ -11071,22 +12329,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7971:34:1", + "src": "8110:34:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7955:50:1", + "src": "8094:50:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1023, + "id": 1036, "nodeType": "ExpressionStatement", - "src": "7955:50:1" + "src": "8094:50:1" } ] } @@ -11097,12 +12355,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1082, + "id": 1165, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "8592:12:1", + "referencedDeclaration": 978, + "src": "9278:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11110,12 +12368,12 @@ }, { "argumentTypes": null, - "id": 1083, + "id": 1166, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 990, - "src": "8606:11:1", + "referencedDeclaration": 995, + "src": "9292:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11123,83 +12381,12 @@ }, { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1085, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8625:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1084, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2458, - "src": "8619:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2458_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8619:12:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2458", - "typeString": "contract ERC20" - } - }, - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 2034, - "src": "8619:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 1088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8619:23:1", - "tryCall": false, + "id": 1167, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "9305:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11207,12 +12394,12 @@ }, { "argumentTypes": null, - "id": 1089, + "id": 1168, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8644:13:1", + "referencedDeclaration": 999, + "src": "9315:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11228,18 +12415,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1094, + "id": 1173, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8675:3:1", + "src": "9346:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1095, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": false, @@ -11247,7 +12434,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8675:10:1", + "src": "9346:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -11261,29 +12448,29 @@ "typeString": "address payable" } ], - "id": 1093, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8667:7:1", + "src": "9338:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1092, + "id": 1171, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8667:7:1", + "src": "9338:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1096, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, @@ -11291,7 +12478,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8667:19:1", + "src": "9338:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -11306,29 +12493,29 @@ "typeString": "uint256" } ], - "id": 1091, + "id": 1170, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8659:7:1", + "src": "9330:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1090, + "id": 1169, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8659:7:1", + "src": "9330:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1097, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, @@ -11336,7 +12523,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8659:28:1", + "src": "9330:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -11345,12 +12532,12 @@ }, { "argumentTypes": null, - "id": 1098, + "id": 1177, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "8689:9:1", + "referencedDeclaration": 976, + "src": "9360:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11358,12 +12545,12 @@ }, { "argumentTypes": null, - "id": 1099, + "id": 1178, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "8700:6:1", + "referencedDeclaration": 974, + "src": "9371:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11371,12 +12558,12 @@ }, { "argumentTypes": null, - "id": 1100, + "id": 1179, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "8708:5:1", + "referencedDeclaration": 980, + "src": "9379:5:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11418,18 +12605,18 @@ "typeString": "uint32" } ], - "id": 1081, + "id": 1164, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 392, - "src": "8576:15:1", + "referencedDeclaration": 395, + "src": "9262:15:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$", "typeString": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)" } }, - "id": 1101, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": false, @@ -11437,61 +12624,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8576:138:1", + "src": "9262:123:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1102, + "id": 1181, "nodeType": "EmitStatement", - "src": "8571:143:1" + "src": "9257:128:1" } ] }, "documentation": null, - "functionSelector": "13cca1a9", - "id": 1104, + "functionSelector": "70713960", + "id": 1183, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 980, + "id": 985, "modifierName": { "argumentTypes": null, - "id": 979, + "id": 984, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "7649:12:1", + "referencedDeclaration": 3071, + "src": "7737:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7649:12:1" + "src": "7737:12:1" } ], "name": "lockAssets", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 978, + "id": 983, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 969, + "id": 972, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7521:13:1", + "scope": 1183, + "src": "7583:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11499,10 +12686,10 @@ "typeString": "address" }, "typeName": { - "id": 968, + "id": 971, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7521:7:1", + "src": "7583:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11514,13 +12701,13 @@ }, { "constant": false, - "id": 971, + "id": 974, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7544:14:1", + "scope": 1183, + "src": "7606:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11528,10 +12715,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 973, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7544:7:1", + "src": "7606:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11542,13 +12729,13 @@ }, { "constant": false, - "id": 973, + "id": 976, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7568:17:1", + "scope": 1183, + "src": "7630:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11556,10 +12743,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 972, + "id": 975, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7568:7:1", + "src": "7630:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -11570,13 +12757,13 @@ }, { "constant": false, - "id": 975, + "id": 978, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7595:18:1", + "scope": 1183, + "src": "7657:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11584,10 +12771,10 @@ "typeString": "uint8" }, "typeName": { - "id": 974, + "id": 977, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7595:5:1", + "src": "7657:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11598,13 +12785,13 @@ }, { "constant": false, - "id": 977, + "id": 980, "mutability": "mutable", "name": "nonce", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7623:12:1", + "scope": 1183, + "src": "7685:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11612,10 +12799,10 @@ "typeString": "uint32" }, "typeName": { - "id": 976, + "id": 979, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7623:6:1", + "src": "7685:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11623,27 +12810,55 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 982, + "mutability": "mutable", + "name": "refund_dust", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1183, + "src": "7707:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 981, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7707:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "7511:130:1" + "src": "7573:156:1" }, "returnParameters": { - "id": 981, + "id": 986, "nodeType": "ParameterList", "parameters": [], - "src": "7662:0:1" + "src": "7750:0:1" }, - "scope": 1175, - "src": "7492:1229:1", + "scope": 1254, + "src": "7554:1838:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1157, + "id": 1236, "nodeType": "Block", - "src": "8855:334:1", + "src": "9526:334:1", "statements": [ { "expression": { @@ -11655,7 +12870,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1119, + "id": 1198, "isConstant": false, "isLValue": false, "isPure": false, @@ -11664,18 +12879,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1116, + "id": 1195, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8873:3:1", + "src": "9544:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1117, + "id": 1196, "isConstant": false, "isLValue": false, "isPure": false, @@ -11683,7 +12898,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8873:9:1", + "src": "9544:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11694,14 +12909,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1118, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8886:1:1", + "src": "9557:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11709,7 +12924,7 @@ }, "value": "0" }, - "src": "8873:14:1", + "src": "9544:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11718,14 +12933,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 1120, + "id": 1199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8889:22:1", + "src": "9560:22:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -11745,7 +12960,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 1115, + "id": 1194, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -11753,13 +12968,13 @@ -18 ], "referencedDeclaration": -18, - "src": "8865:7:1", + "src": "9536:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1121, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, @@ -11767,16 +12982,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8865:47:1", + "src": "9536:47:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1122, + "id": 1201, "nodeType": "ExpressionStatement", - "src": "8865:47:1" + "src": "9536:47:1" }, { "expression": { @@ -11791,12 +13006,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1124, + "id": 1203, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 362, - "src": "8961:11:1", + "referencedDeclaration": 365, + "src": "9632:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11810,18 +13025,18 @@ "typeString": "address" } ], - "id": 1123, + "id": 1202, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1186, - "src": "8956:4:1", + "referencedDeclaration": 1265, + "src": "9627:4:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WETH_$1186_$", + "typeIdentifier": "t_type$_t_contract$_WETH_$1265_$", "typeString": "type(contract WETH)" } }, - "id": 1125, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": true, @@ -11829,28 +13044,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8956:17:1", + "src": "9627:17:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WETH_$1186", + "typeIdentifier": "t_contract$_WETH_$1265", "typeString": "contract WETH" } }, - "id": 1126, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": 1180, - "src": "8956:25:1", + "referencedDeclaration": 1259, + "src": "9627:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, - "id": 1129, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": false, @@ -11864,18 +13079,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1127, + "id": 1206, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8990:3:1", + "src": "9661:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1128, + "id": 1207, "isConstant": false, "isLValue": false, "isPure": false, @@ -11883,20 +13098,20 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8990:9:1", + "src": "9661:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "8956:44:1", + "src": "9627:44:1", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 1130, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, @@ -11904,16 +13119,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8956:46:1", + "src": "9627:46:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1131, + "id": 1210, "nodeType": "ExpressionStatement", - "src": "8956:46:1" + "src": "9627:46:1" }, { "eventCall": { @@ -11921,12 +13136,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1133, + "id": 1212, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, - "src": "9065:12:1", + "referencedDeclaration": 1187, + "src": "9736:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11934,12 +13149,12 @@ }, { "argumentTypes": null, - "id": 1134, + "id": 1213, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "9079:8:1", + "referencedDeclaration": 362, + "src": "9750:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11948,14 +13163,14 @@ { "argumentTypes": null, "hexValue": "3138", - "id": 1135, + "id": 1214, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9089:2:1", + "src": "9760:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -11971,12 +13186,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1140, + "id": 1219, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 362, - "src": "9109:11:1", + "referencedDeclaration": 365, + "src": "9780:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11990,29 +13205,29 @@ "typeString": "address" } ], - "id": 1139, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9101:7:1", + "src": "9772:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1138, + "id": 1217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9101:7:1", + "src": "9772:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1141, + "id": 1220, "isConstant": false, "isLValue": false, "isPure": true, @@ -12020,7 +13235,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9101:20:1", + "src": "9772:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12035,29 +13250,29 @@ "typeString": "uint256" } ], - "id": 1137, + "id": 1216, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9093:7:1", + "src": "9764:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1136, + "id": 1215, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9093:7:1", + "src": "9764:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1142, + "id": 1221, "isConstant": false, "isLValue": false, "isPure": true, @@ -12065,7 +13280,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9093:29:1", + "src": "9764:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -12082,18 +13297,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1147, + "id": 1226, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "9140:3:1", + "src": "9811:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1148, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, @@ -12101,7 +13316,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9140:10:1", + "src": "9811:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -12115,29 +13330,29 @@ "typeString": "address payable" } ], - "id": 1146, + "id": 1225, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9132:7:1", + "src": "9803:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1145, + "id": 1224, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9132:7:1", + "src": "9803:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1149, + "id": 1228, "isConstant": false, "isLValue": false, "isPure": false, @@ -12145,7 +13360,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9132:19:1", + "src": "9803:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12160,29 +13375,29 @@ "typeString": "uint256" } ], - "id": 1144, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9124:7:1", + "src": "9795:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1143, + "id": 1222, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9124:7:1", + "src": "9795:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1150, + "id": 1229, "isConstant": false, "isLValue": false, "isPure": false, @@ -12190,7 +13405,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9124:28:1", + "src": "9795:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -12199,12 +13414,12 @@ }, { "argumentTypes": null, - "id": 1151, + "id": 1230, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "9154:9:1", + "referencedDeclaration": 1185, + "src": "9825:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12214,18 +13429,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1152, + "id": 1231, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "9165:3:1", + "src": "9836:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1153, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, @@ -12233,7 +13448,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9165:9:1", + "src": "9836:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12241,12 +13456,12 @@ }, { "argumentTypes": null, - "id": 1154, + "id": 1233, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "9176:5:1", + "referencedDeclaration": 1189, + "src": "9847:5:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12288,18 +13503,18 @@ "typeString": "uint32" } ], - "id": 1132, + "id": 1211, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 392, - "src": "9049:15:1", + "referencedDeclaration": 395, + "src": "9720:15:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$", "typeString": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)" } }, - "id": 1155, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, @@ -12307,61 +13522,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9049:133:1", + "src": "9720:133:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1156, + "id": 1235, "nodeType": "EmitStatement", - "src": "9044:138:1" + "src": "9715:138:1" } ] }, "documentation": null, "functionSelector": "58d62e46", - "id": 1158, + "id": 1237, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1113, + "id": 1192, "modifierName": { "argumentTypes": null, - "id": 1112, + "id": 1191, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "8842:12:1", + "referencedDeclaration": 3071, + "src": "9513:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8842:12:1" + "src": "9513:12:1" } ], "name": "lockETH", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1111, + "id": 1190, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1106, + "id": 1185, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1158, - "src": "8753:17:1", + "scope": 1237, + "src": "9424:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12369,10 +13584,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1105, + "id": 1184, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8753:7:1", + "src": "9424:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12383,13 +13598,13 @@ }, { "constant": false, - "id": 1108, + "id": 1187, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1158, - "src": "8780:18:1", + "scope": 1237, + "src": "9451:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12397,10 +13612,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1107, + "id": 1186, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "8780:5:1", + "src": "9451:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12411,13 +13626,13 @@ }, { "constant": false, - "id": 1110, + "id": 1189, "mutability": "mutable", "name": "nonce", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1158, - "src": "8808:12:1", + "scope": 1237, + "src": "9479:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12425,10 +13640,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1109, + "id": 1188, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8808:6:1", + "src": "9479:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12438,25 +13653,25 @@ "visibility": "internal" } ], - "src": "8743:83:1" + "src": "9414:83:1" }, "returnParameters": { - "id": 1114, + "id": 1193, "nodeType": "ParameterList", "parameters": [], - "src": "8855:0:1" + "src": "9526:0:1" }, - "scope": 1175, - "src": "8727:462:1", + "scope": 1254, + "src": "9398:462:1", "stateMutability": "payable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1165, + "id": 1244, "nodeType": "Block", - "src": "9220:57:1", + "src": "9894:57:1", "statements": [ { "expression": { @@ -12465,14 +13680,14 @@ { "argumentTypes": null, "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1162, + "id": 1241, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9228:46:1", + "src": "9902:46:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -12488,7 +13703,7 @@ "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\"" } ], - "id": 1161, + "id": 1240, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12496,13 +13711,13 @@ -19 ], "referencedDeclaration": -19, - "src": "9221:6:1", + "src": "9895:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1163, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -12510,21 +13725,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9221:54:1", + "src": "9895:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1164, + "id": 1243, "nodeType": "ExpressionStatement", - "src": "9221:54:1" + "src": "9895:54:1" } ] }, "documentation": null, - "id": 1166, + "id": 1245, "implemented": true, "kind": "fallback", "modifiers": [], @@ -12532,28 +13747,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1159, + "id": 1238, "nodeType": "ParameterList", "parameters": [], - "src": "9200:2:1" + "src": "9874:2:1" }, "returnParameters": { - "id": 1160, + "id": 1239, "nodeType": "ParameterList", "parameters": [], - "src": "9220:0:1" + "src": "9894:0:1" }, - "scope": 1175, - "src": "9192:85:1", + "scope": 1254, + "src": "9866:85:1", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1173, + "id": 1252, "nodeType": "Block", - "src": "9305:57:1", + "src": "9984:57:1", "statements": [ { "expression": { @@ -12562,14 +13777,14 @@ { "argumentTypes": null, "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1170, + "id": 1249, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9313:46:1", + "src": "9992:46:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -12585,7 +13800,7 @@ "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\"" } ], - "id": 1169, + "id": 1248, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -12593,13 +13808,13 @@ -19 ], "referencedDeclaration": -19, - "src": "9306:6:1", + "src": "9985:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1171, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": false, @@ -12607,21 +13822,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9306:54:1", + "src": "9985:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1172, + "id": 1251, "nodeType": "ExpressionStatement", - "src": "9306:54:1" + "src": "9985:54:1" } ] }, "documentation": null, - "id": 1174, + "id": 1253, "implemented": true, "kind": "receive", "modifiers": [], @@ -12629,26 +13844,26 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1167, + "id": 1246, "nodeType": "ParameterList", "parameters": [], - "src": "9285:2:1" + "src": "9964:2:1" }, "returnParameters": { - "id": 1168, + "id": 1247, "nodeType": "ParameterList", "parameters": [], - "src": "9305:0:1" + "src": "9984:0:1" }, - "scope": 1175, - "src": "9278:84:1", + "scope": 1254, + "src": "9957:84:1", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 1187, - "src": "502:8862:1" + "scope": 1266, + "src": "502:9541:1" }, { "abstract": false, @@ -12657,31 +13872,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1176, + "id": 1255, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, - "src": "9385:6:1", + "referencedDeclaration": 2615, + "src": "10064:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } }, - "id": 1177, + "id": 1256, "nodeType": "InheritanceSpecifier", - "src": "9385:6:1" + "src": "10064:6:1" } ], "contractDependencies": [ - 2536 + 2615 ], "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 1186, + "id": 1265, "linearizedBaseContracts": [ - 1186, - 2536 + 1265, + 2615 ], "name": "WETH", "nodeType": "ContractDefinition", @@ -12690,7 +13905,7 @@ "body": null, "documentation": null, "functionSelector": "d0e30db0", - "id": 1180, + "id": 1259, "implemented": false, "kind": "function", "modifiers": [], @@ -12698,19 +13913,19 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1178, + "id": 1257, "nodeType": "ParameterList", "parameters": [], - "src": "9410:2:1" + "src": "10093:2:1" }, "returnParameters": { - "id": 1179, + "id": 1258, "nodeType": "ParameterList", "parameters": [], - "src": "9429:0:1" + "src": "10112:0:1" }, - "scope": 1186, - "src": "9394:36:1", + "scope": 1265, + "src": "10077:36:1", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -12719,7 +13934,7 @@ "body": null, "documentation": null, "functionSelector": "2e1a7d4d", - "id": 1185, + "id": 1264, "implemented": false, "kind": "function", "modifiers": [], @@ -12727,18 +13942,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1183, + "id": 1262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1182, + "id": 1261, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1185, - "src": "9450:14:1", + "scope": 1264, + "src": "10137:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12746,10 +13961,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1181, + "id": 1260, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9450:7:1", + "src": "10137:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12759,38 +13974,38 @@ "visibility": "internal" } ], - "src": "9449:16:1" + "src": "10136:16:1" }, "returnParameters": { - "id": 1184, + "id": 1263, "nodeType": "ParameterList", "parameters": [], - "src": "9474:0:1" + "src": "10161:0:1" }, - "scope": 1186, - "src": "9432:43:1", + "scope": 1265, + "src": "10119:43:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1187, - "src": "9367:110:1" + "scope": 1266, + "src": "10046:118:1" } ], - "src": "103:9375:1" + "src": "103:10062:1" }, "legacyAST": { "absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol", "exportedSymbols": { "WETH": [ - 1186 + 1265 ], "Wormhole": [ - 1175 + 1254 ] }, - "id": 1187, + "id": 1266, "license": "Apache 2", "nodeType": "SourceUnit", "nodes": [ @@ -12819,8 +14034,8 @@ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "id": 337, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 2459, + "scope": 1266, + "sourceUnit": 2538, "src": "162:55:1", "symbolAliases": [], "unitAlias": "" @@ -12830,8 +14045,8 @@ "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "id": 338, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 2537, + "scope": 1266, + "sourceUnit": 2616, "src": "218:56:1", "symbolAliases": [], "unitAlias": "" @@ -12841,8 +14056,8 @@ "file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol", "id": 339, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 2750, + "scope": 1266, + "sourceUnit": 2829, "src": "275:59:1", "symbolAliases": [], "unitAlias": "" @@ -12852,8 +14067,8 @@ "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 340, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 1952, + "scope": 1266, + "sourceUnit": 2031, "src": "335:51:1", "symbolAliases": [], "unitAlias": "" @@ -12863,8 +14078,8 @@ "file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol", "id": 341, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 2994, + "scope": 1266, + "sourceUnit": 3073, "src": "387:59:1", "symbolAliases": [], "unitAlias": "" @@ -12874,7 +14089,7 @@ "file": "./BytesLib.sol", "id": 342, "nodeType": "ImportDirective", - "scope": 1187, + "scope": 1266, "sourceUnit": 334, "src": "447:24:1", "symbolAliases": [], @@ -12885,8 +14100,8 @@ "file": "./WrappedAsset.sol", "id": 343, "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 1733, + "scope": 1266, + "sourceUnit": 1812, "src": "472:28:1", "symbolAliases": [], "unitAlias": "" @@ -12901,10 +14116,10 @@ "id": 344, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2993, + "referencedDeclaration": 3072, "src": "523:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$2993", + "typeIdentifier": "t_contract$_ReentrancyGuard_$3072", "typeString": "contract ReentrancyGuard" } }, @@ -12914,15 +14129,15 @@ } ], "contractDependencies": [ - 2993 + 3072 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1175, + "id": 1254, "linearizedBaseContracts": [ - 1175, - 2993 + 1254, + 3072 ], "name": "Wormhole", "nodeType": "ContractDefinition", @@ -12934,10 +14149,10 @@ "id": 346, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2749, + "referencedDeclaration": 2828, "src": "551:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$2749", + "typeIdentifier": "t_contract$_SafeERC20_$2828", "typeString": "library SafeERC20" } }, @@ -12948,10 +14163,10 @@ "id": 347, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, + "referencedDeclaration": 2615, "src": "565:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } } @@ -12990,10 +14205,10 @@ "id": 352, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1951, + "referencedDeclaration": 2030, "src": "613:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1951", + "typeIdentifier": "t_contract$_SafeMath_$2030", "typeString": "library SafeMath" } }, @@ -13010,16 +14225,61 @@ } } }, + { + "constant": true, + "id": 357, + "mutability": "constant", + "name": "MAX_UINT64", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1254, + "src": "640:55:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 355, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "640:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31385f3434365f3734345f3037335f3730395f3535315f363135", + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "669:26:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551615_by_1", + "typeString": "int_const 18446744073709551615" + }, + "value": "18_446_744_073_709_551_615" + }, + "visibility": "internal" + }, { "constant": false, "functionSelector": "99da1d3c", - "id": 356, + "id": 359, "mutability": "mutable", "name": "wrappedAssetMaster", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "685:33:1", + "scope": 1254, + "src": "747:33:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13027,10 +14287,10 @@ "typeString": "address" }, "typeName": { - "id": 355, + "id": 358, "name": "address", "nodeType": "ElementaryTypeName", - "src": "685:7:1", + "src": "747:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13042,13 +14302,13 @@ }, { "constant": false, - "id": 359, + "id": 362, "mutability": "mutable", "name": "CHAIN_ID", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "753:18:1", + "scope": 1254, + "src": "815:18:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13056,10 +14316,10 @@ "typeString": "uint8" }, "typeName": { - "id": 357, + "id": 360, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "753:5:1", + "src": "815:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13068,14 +14328,14 @@ "value": { "argumentTypes": null, "hexValue": "32", - "id": 358, + "id": 361, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "770:1:1", + "src": "832:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13087,13 +14347,13 @@ }, { "constant": true, - "id": 362, + "id": 365, "mutability": "constant", "name": "WETHAddress", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "823:73:1", + "scope": 1254, + "src": "885:73:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13101,10 +14361,10 @@ "typeString": "address" }, "typeName": { - "id": 360, + "id": 363, "name": "address", "nodeType": "ElementaryTypeName", - "src": "823:7:1", + "src": "885:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13114,14 +14374,14 @@ "value": { "argumentTypes": null, "hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332", - "id": 361, + "id": 364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "854:42:1", + "src": "916:42:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -13133,17 +14393,17 @@ }, { "canonicalName": "Wormhole.GuardianSet", - "id": 368, + "id": 371, "members": [ { "constant": false, - "id": 365, + "id": 368, "mutability": "mutable", "name": "keys", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 368, - "src": "932:14:1", + "scope": 371, + "src": "994:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13152,20 +14412,20 @@ }, "typeName": { "baseType": { - "id": 363, + "id": 366, "name": "address", "nodeType": "ElementaryTypeName", - "src": "932:7:1", + "src": "994:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 364, + "id": 367, "length": null, "nodeType": "ArrayTypeName", - "src": "932:9:1", + "src": "994:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -13176,13 +14436,13 @@ }, { "constant": false, - "id": 367, + "id": 370, "mutability": "mutable", "name": "expiration_time", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 368, - "src": "956:22:1", + "scope": 371, + "src": "1018:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13190,10 +14450,10 @@ "typeString": "uint32" }, "typeName": { - "id": 366, + "id": 369, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "956:6:1", + "src": "1018:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13205,30 +14465,30 @@ ], "name": "GuardianSet", "nodeType": "StructDefinition", - "scope": 1175, - "src": "903:82:1", + "scope": 1254, + "src": "965:82:1", "visibility": "public" }, { "anonymous": false, "documentation": null, - "id": 374, + "id": 377, "name": "LogGuardianSetChanged", "nodeType": "EventDefinition", "parameters": { - "id": 373, + "id": 376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 370, + "id": 373, "indexed": false, "mutability": "mutable", "name": "oldGuardianIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 374, - "src": "1028:23:1", + "scope": 377, + "src": "1090:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13236,10 +14496,10 @@ "typeString": "uint32" }, "typeName": { - "id": 369, + "id": 372, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1028:6:1", + "src": "1090:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13250,14 +14510,14 @@ }, { "constant": false, - "id": 372, + "id": 375, "indexed": false, "mutability": "mutable", "name": "newGuardianIndex", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 374, - "src": "1061:23:1", + "scope": 377, + "src": "1123:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13265,10 +14525,10 @@ "typeString": "uint32" }, "typeName": { - "id": 371, + "id": 374, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1061:6:1", + "src": "1123:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13278,30 +14538,30 @@ "visibility": "internal" } ], - "src": "1018:72:1" + "src": "1080:72:1" }, - "src": "991:100:1" + "src": "1053:100:1" }, { "anonymous": false, "documentation": null, - "id": 392, + "id": 395, "name": "LogTokensLocked", "nodeType": "EventDefinition", "parameters": { - "id": 391, + "id": 394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 376, + "id": 379, "indexed": false, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1128:18:1", + "scope": 395, + "src": "1190:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13309,10 +14569,10 @@ "typeString": "uint8" }, "typeName": { - "id": 375, + "id": 378, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1128:5:1", + "src": "1190:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13323,14 +14583,14 @@ }, { "constant": false, - "id": 378, + "id": 381, "indexed": false, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1156:17:1", + "scope": 395, + "src": "1218:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13338,10 +14598,10 @@ "typeString": "uint8" }, "typeName": { - "id": 377, + "id": 380, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1156:5:1", + "src": "1218:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13352,14 +14612,14 @@ }, { "constant": false, - "id": 380, + "id": 383, "indexed": false, "mutability": "mutable", "name": "token_decimals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1183:20:1", + "scope": 395, + "src": "1245:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13367,10 +14627,10 @@ "typeString": "uint8" }, "typeName": { - "id": 379, + "id": 382, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1183:5:1", + "src": "1245:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13381,14 +14641,14 @@ }, { "constant": false, - "id": 382, + "id": 385, "indexed": true, "mutability": "mutable", "name": "token", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1213:21:1", + "scope": 395, + "src": "1275:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13396,10 +14656,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 381, + "id": 384, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1213:7:1", + "src": "1275:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13410,14 +14670,14 @@ }, { "constant": false, - "id": 384, + "id": 387, "indexed": true, "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1244:22:1", + "scope": 395, + "src": "1306:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13425,10 +14685,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 383, + "id": 386, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1244:7:1", + "src": "1306:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13439,14 +14699,14 @@ }, { "constant": false, - "id": 386, + "id": 389, "indexed": false, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1276:17:1", + "scope": 395, + "src": "1338:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13454,10 +14714,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 385, + "id": 388, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1276:7:1", + "src": "1338:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13468,14 +14728,14 @@ }, { "constant": false, - "id": 388, + "id": 391, "indexed": false, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1303:14:1", + "scope": 395, + "src": "1365:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13483,10 +14743,10 @@ "typeString": "uint256" }, "typeName": { - "id": 387, + "id": 390, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1303:7:1", + "src": "1365:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13497,14 +14757,14 @@ }, { "constant": false, - "id": 390, + "id": 393, "indexed": false, "mutability": "mutable", "name": "nonce", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 392, - "src": "1327:12:1", + "scope": 395, + "src": "1389:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13512,10 +14772,10 @@ "typeString": "uint32" }, "typeName": { - "id": 389, + "id": 392, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1327:6:1", + "src": "1389:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13525,53 +14785,53 @@ "visibility": "internal" } ], - "src": "1118:227:1" + "src": "1180:227:1" }, - "src": "1097:249:1" + "src": "1159:249:1" }, { "constant": false, "functionSelector": "42b0aefa", - "id": 396, + "id": 399, "mutability": "mutable", "name": "guardian_sets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1405:51:1", + "scope": 1254, + "src": "1467:51:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "typeName": { - "id": 395, + "id": 398, "keyType": { - "id": 393, + "id": 396, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1413:6:1", + "src": "1475:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Mapping", - "src": "1405:30:1", + "src": "1467:30:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet)" }, "valueType": { "contractScope": null, - "id": 394, + "id": 397, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "1423:11:1", + "referencedDeclaration": 371, + "src": "1485:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } } @@ -13582,13 +14842,13 @@ { "constant": false, "functionSelector": "822d82b3", - "id": 398, + "id": 401, "mutability": "mutable", "name": "guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1497:32:1", + "scope": 1254, + "src": "1559:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13596,10 +14856,10 @@ "typeString": "uint32" }, "typeName": { - "id": 397, + "id": 400, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1497:6:1", + "src": "1559:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13611,13 +14871,13 @@ { "constant": false, "functionSelector": "4db47840", - "id": 400, + "id": 403, "mutability": "mutable", "name": "guardian_set_expirity", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1615:35:1", + "scope": 1254, + "src": "1677:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13625,10 +14885,10 @@ "typeString": "uint32" }, "typeName": { - "id": 399, + "id": 402, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1615:6:1", + "src": "1677:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13640,13 +14900,13 @@ { "constant": false, "functionSelector": "a31fe409", - "id": 404, + "id": 407, "mutability": "mutable", "name": "consumedVAAs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1696:44:1", + "scope": 1254, + "src": "1758:44:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13654,28 +14914,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 403, + "id": 406, "keyType": { - "id": 401, + "id": 404, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1704:7:1", + "src": "1766:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1696:24:1", + "src": "1758:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 402, + "id": 405, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1715:4:1", + "src": "1777:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13688,13 +14948,13 @@ { "constant": false, "functionSelector": "b6694c2a", - "id": 408, + "id": 411, "mutability": "mutable", "name": "wrappedAssets", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1795:48:1", + "scope": 1254, + "src": "1857:48:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13702,28 +14962,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 407, + "id": 410, "keyType": { - "id": 405, + "id": 408, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1803:7:1", + "src": "1865:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1795:27:1", + "src": "1857:27:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 406, + "id": 409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1814:7:1", + "src": "1876:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13737,13 +14997,13 @@ { "constant": false, "functionSelector": "1a2be4da", - "id": 412, + "id": 415, "mutability": "mutable", "name": "isWrappedAsset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1175, - "src": "1849:46:1", + "scope": 1254, + "src": "1911:46:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13751,28 +15011,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 411, + "id": 414, "keyType": { - "id": 409, + "id": 412, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1857:7:1", + "src": "1919:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1849:24:1", + "src": "1911:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 410, + "id": 413, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1868:4:1", + "src": "1930:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13784,14 +15044,14 @@ }, { "body": { - "id": 439, + "id": 442, "nodeType": "Block", - "src": "2023:239:1", + "src": "2085:239:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 425, + "id": 428, "isConstant": false, "isLValue": false, "isPure": false, @@ -13800,29 +15060,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 421, + "id": 424, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "2033:13:1", + "referencedDeclaration": 399, + "src": "2095:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 423, + "id": 426, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 422, + "id": 425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2047:1:1", + "src": "2109:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13835,9 +15095,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2033:16:1", + "src": "2095:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, @@ -13845,43 +15105,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 424, + "id": 427, "name": "initial_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 414, - "src": "2052:20:1", + "referencedDeclaration": 417, + "src": "2114:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "2033:39:1", + "src": "2095:39:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 426, + "id": 429, "nodeType": "ExpressionStatement", - "src": "2033:39:1" + "src": "2095:39:1" }, { "expression": { "argumentTypes": null, - "id": 429, + "id": 432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 427, + "id": 430, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "2125:18:1", + "referencedDeclaration": 401, + "src": "2187:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13892,14 +15152,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 428, + "id": 431, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2146:1:1", + "src": "2208:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13907,32 +15167,32 @@ }, "value": "0" }, - "src": "2125:22:1", + "src": "2187:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 430, + "id": 433, "nodeType": "ExpressionStatement", - "src": "2125:22:1" + "src": "2187:22:1" }, { "expression": { "argumentTypes": null, - "id": 433, + "id": 436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 431, + "id": 434, "name": "guardian_set_expirity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 400, - "src": "2157:21:1", + "referencedDeclaration": 403, + "src": "2219:21:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13942,43 +15202,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 432, + "id": 435, "name": "_guardian_set_expirity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 418, - "src": "2181:22:1", + "referencedDeclaration": 421, + "src": "2243:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "2157:46:1", + "src": "2219:46:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 434, + "id": 437, "nodeType": "ExpressionStatement", - "src": "2157:46:1" + "src": "2219:46:1" }, { "expression": { "argumentTypes": null, - "id": 437, + "id": 440, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 435, + "id": 438, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "2214:18:1", + "referencedDeclaration": 359, + "src": "2276:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13988,31 +15248,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 436, + "id": 439, "name": "wrapped_asset_master", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 416, - "src": "2235:20:1", + "referencedDeclaration": 419, + "src": "2297:20:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2214:41:1", + "src": "2276:41:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 438, + "id": 441, "nodeType": "ExpressionStatement", - "src": "2214:41:1" + "src": "2276:41:1" } ] }, "documentation": null, - "id": 440, + "id": 443, "implemented": true, "kind": "constructor", "modifiers": [], @@ -14020,33 +15280,33 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 419, + "id": 422, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 414, + "id": 417, "mutability": "mutable", "name": "initial_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 440, - "src": "1914:39:1", + "scope": 443, + "src": "1976:39:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 413, + "id": 416, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "1914:11:1", + "referencedDeclaration": 371, + "src": "1976:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -14055,13 +15315,13 @@ }, { "constant": false, - "id": 416, + "id": 419, "mutability": "mutable", "name": "wrapped_asset_master", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 440, - "src": "1955:28:1", + "scope": 443, + "src": "2017:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14069,10 +15329,10 @@ "typeString": "address" }, "typeName": { - "id": 415, + "id": 418, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1955:7:1", + "src": "2017:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14084,13 +15344,13 @@ }, { "constant": false, - "id": 418, + "id": 421, "mutability": "mutable", "name": "_guardian_set_expirity", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 440, - "src": "1985:29:1", + "scope": 443, + "src": "2047:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14098,10 +15358,10 @@ "typeString": "uint32" }, "typeName": { - "id": 417, + "id": 420, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1985:6:1", + "src": "2047:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14111,51 +15371,51 @@ "visibility": "internal" } ], - "src": "1913:102:1" + "src": "1975:102:1" }, "returnParameters": { - "id": 420, + "id": 423, "nodeType": "ParameterList", "parameters": [], - "src": "2023:0:1" + "src": "2085:0:1" }, - "scope": 1175, - "src": "1902:360:1", + "scope": 1254, + "src": "1964:360:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 451, + "id": 454, "nodeType": "Block", - "src": "2348:42:1", + "src": "2410:42:1", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 447, + "id": 450, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "2365:13:1", + "referencedDeclaration": 399, + "src": "2427:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 449, + "id": 452, "indexExpression": { "argumentTypes": null, - "id": 448, + "id": 451, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 442, - "src": "2379:3:1", + "referencedDeclaration": 445, + "src": "2441:3:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14166,22 +15426,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2365:18:1", + "src": "2427:18:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "functionReturnParameters": 446, - "id": 450, + "functionReturnParameters": 449, + "id": 453, "nodeType": "Return", - "src": "2358:25:1" + "src": "2420:25:1" } ] }, "documentation": null, "functionSelector": "f951975a", - "id": 452, + "id": 455, "implemented": true, "kind": "function", "modifiers": [], @@ -14189,18 +15449,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 443, + "id": 446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 442, + "id": 445, "mutability": "mutable", "name": "idx", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 452, - "src": "2292:10:1", + "scope": 455, + "src": "2354:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14208,10 +15468,10 @@ "typeString": "uint32" }, "typeName": { - "id": 441, + "id": 444, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2292:6:1", + "src": "2354:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14221,36 +15481,36 @@ "visibility": "internal" } ], - "src": "2291:12:1" + "src": "2353:12:1" }, "returnParameters": { - "id": 446, + "id": 449, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 445, + "id": 448, "mutability": "mutable", "name": "gs", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 452, - "src": "2325:21:1", + "scope": 455, + "src": "2387:21:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 444, + "id": 447, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "2325:11:1", + "referencedDeclaration": 371, + "src": "2387:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -14258,34 +15518,34 @@ "visibility": "internal" } ], - "src": "2324:23:1" + "src": "2386:23:1" }, - "scope": 1175, - "src": "2268:122:1", + "scope": 1254, + "src": "2330:122:1", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { - "id": 689, + "id": 692, "nodeType": "Block", - "src": "2469:1801:1", + "src": "2531:1801:1", "statements": [ { "assignments": [ - 460 + 463 ], "declarations": [ { "constant": false, - "id": 460, + "id": 463, "mutability": "mutable", "name": "version", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2479:13:1", + "scope": 692, + "src": "2541:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14293,10 +15553,10 @@ "typeString": "uint8" }, "typeName": { - "id": 459, + "id": 462, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2479:5:1", + "src": "2541:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14306,21 +15566,21 @@ "visibility": "internal" } ], - "id": 465, + "id": 468, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 463, + "id": 466, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2507:1:1", + "src": "2569:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14338,18 +15598,18 @@ ], "expression": { "argumentTypes": null, - "id": 461, + "id": 464, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2495:3:1", + "referencedDeclaration": 457, + "src": "2557:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 462, + "id": 465, "isConstant": false, "isLValue": false, "isPure": false, @@ -14357,13 +15617,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "2495:11:1", + "src": "2557: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": 464, + "id": 467, "isConstant": false, "isLValue": false, "isPure": false, @@ -14371,7 +15631,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2495:14:1", + "src": "2557:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -14379,7 +15639,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2479:30:1" + "src": "2541:30:1" }, { "expression": { @@ -14391,19 +15651,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 469, + "id": 472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 467, + "id": 470, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "2527:7:1", + "referencedDeclaration": 463, + "src": "2589:7:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14414,14 +15674,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 468, + "id": 471, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2538:1:1", + "src": "2600:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14429,7 +15689,7 @@ }, "value": "1" }, - "src": "2527:12:1", + "src": "2589:12:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14438,14 +15698,14 @@ { "argumentTypes": null, "hexValue": "5641412076657273696f6e20696e636f6d70617469626c65", - "id": 470, + "id": 473, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2541:26:1", + "src": "2603:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a", @@ -14465,7 +15725,7 @@ "typeString": "literal_string \"VAA version incompatible\"" } ], - "id": 466, + "id": 469, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -14473,13 +15733,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2519:7:1", + "src": "2581:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 471, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, @@ -14487,31 +15747,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2519:49:1", + "src": "2581:49:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 472, + "id": 475, "nodeType": "ExpressionStatement", - "src": "2519:49:1" + "src": "2581:49:1" }, { "assignments": [ - 474 + 477 ], "declarations": [ { "constant": false, - "id": 474, + "id": 477, "mutability": "mutable", "name": "vaa_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2625:29:1", + "scope": 692, + "src": "2687:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14519,10 +15779,10 @@ "typeString": "uint32" }, "typeName": { - "id": 473, + "id": 476, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2625:6:1", + "src": "2687:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14532,21 +15792,21 @@ "visibility": "internal" } ], - "id": 479, + "id": 482, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "31", - "id": 477, + "id": 480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2670:1:1", + "src": "2732:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14564,18 +15824,18 @@ ], "expression": { "argumentTypes": null, - "id": 475, + "id": 478, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2657:3:1", + "referencedDeclaration": 457, + "src": "2719:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 476, + "id": 479, "isConstant": false, "isLValue": false, "isPure": false, @@ -14583,13 +15843,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "2657:12:1", + "src": "2719: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": 478, + "id": 481, "isConstant": false, "isLValue": false, "isPure": false, @@ -14597,7 +15857,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2657:15:1", + "src": "2719:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -14605,22 +15865,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2625:47:1" + "src": "2687:47:1" }, { "assignments": [ - 481 + 484 ], "declarations": [ { "constant": false, - "id": 481, + "id": 484, "mutability": "mutable", "name": "len_signers", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2683:19:1", + "scope": 692, + "src": "2745:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14628,10 +15888,10 @@ "typeString": "uint256" }, "typeName": { - "id": 480, + "id": 483, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2683:7:1", + "src": "2745:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14641,21 +15901,21 @@ "visibility": "internal" } ], - "id": 486, + "id": 489, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 484, + "id": 487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2717:1:1", + "src": "2779:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -14673,18 +15933,18 @@ ], "expression": { "argumentTypes": null, - "id": 482, + "id": 485, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2705:3:1", + "referencedDeclaration": 457, + "src": "2767:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 483, + "id": 486, "isConstant": false, "isLValue": false, "isPure": false, @@ -14692,13 +15952,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "2705:11:1", + "src": "2767: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": 485, + "id": 488, "isConstant": false, "isLValue": false, "isPure": false, @@ -14706,7 +15966,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2705:14:1", + "src": "2767:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -14714,22 +15974,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2683:36:1" + "src": "2745:36:1" }, { "assignments": [ - 488 + 491 ], "declarations": [ { "constant": false, - "id": 488, + "id": 491, "mutability": "mutable", "name": "offset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2729:11:1", + "scope": 692, + "src": "2791:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14737,10 +15997,10 @@ "typeString": "uint256" }, "typeName": { - "id": 487, + "id": 490, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2729:4:1", + "src": "2791:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14750,14 +16010,14 @@ "visibility": "internal" } ], - "id": 494, + "id": 497, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 493, + "id": 496, "isConstant": false, "isLValue": false, "isPure": false, @@ -14765,14 +16025,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "36", - "id": 489, + "id": 492, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2743:1:1", + "src": "2805:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -14788,7 +16048,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 492, + "id": 495, "isConstant": false, "isLValue": false, "isPure": false, @@ -14796,14 +16056,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 490, + "id": 493, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2747:2:1", + "src": "2809:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -14815,46 +16075,46 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 491, + "id": 494, "name": "len_signers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "2752:11:1", + "referencedDeclaration": 484, + "src": "2814:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2747:16:1", + "src": "2809:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2743:20:1", + "src": "2805:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2729:34:1" + "src": "2791:34:1" }, { "assignments": [ - 496 + 499 ], "declarations": [ { "constant": false, - "id": 496, + "id": 499, "mutability": "mutable", "name": "hash", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "2885:12:1", + "scope": 692, + "src": "2947:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14862,10 +16122,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 495, + "id": 498, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2885:7:1", + "src": "2947:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14875,7 +16135,7 @@ "visibility": "internal" } ], - "id": 507, + "id": 510, "initialValue": { "argumentTypes": null, "arguments": [ @@ -14884,12 +16144,12 @@ "arguments": [ { "argumentTypes": null, - "id": 500, + "id": 503, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "2920:6:1", + "referencedDeclaration": 491, + "src": "2982:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14901,7 +16161,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 504, + "id": 507, "isConstant": false, "isLValue": false, "isPure": false, @@ -14910,18 +16170,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 501, + "id": 504, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2928:3:1", + "referencedDeclaration": 457, + "src": "2990:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 502, + "id": 505, "isConstant": false, "isLValue": false, "isPure": false, @@ -14929,7 +16189,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2928:10:1", + "src": "2990:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14939,18 +16199,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 503, + "id": 506, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "2941:6:1", + "referencedDeclaration": 491, + "src": "3003:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2928:19:1", + "src": "2990:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14970,18 +16230,18 @@ ], "expression": { "argumentTypes": null, - "id": 498, + "id": 501, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "2910:3:1", + "referencedDeclaration": 457, + "src": "2972:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 499, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, @@ -14989,13 +16249,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "2910:9:1", + "src": "2972: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": 505, + "id": 508, "isConstant": false, "isLValue": false, "isPure": false, @@ -15003,7 +16263,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2910:38:1", + "src": "2972:38:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -15018,18 +16278,18 @@ "typeString": "bytes memory" } ], - "id": 497, + "id": 500, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "2900:9:1", + "src": "2962:9:1", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 506, + "id": 509, "isConstant": false, "isLValue": false, "isPure": false, @@ -15037,7 +16297,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2900:49:1", + "src": "2962:49:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -15045,7 +16305,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "2885:64:1" + "src": "2947:64:1" }, { "expression": { @@ -15053,7 +16313,7 @@ "arguments": [ { "argumentTypes": null, - "id": 512, + "id": 515, "isConstant": false, "isLValue": false, "isPure": false, @@ -15061,31 +16321,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2967:19:1", + "src": "3029:19:1", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 509, + "id": 512, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "2968:12:1", + "referencedDeclaration": 407, + "src": "3030:12:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 511, + "id": 514, "indexExpression": { "argumentTypes": null, - "id": 510, + "id": 513, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "2981:4:1", + "referencedDeclaration": 499, + "src": "3043:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15096,7 +16356,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2968:18:1", + "src": "3030:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15110,14 +16370,14 @@ { "argumentTypes": null, "hexValue": "5641412077617320616c7265616479206578656375746564", - "id": 513, + "id": 516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2988:26:1", + "src": "3050:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028", @@ -15137,7 +16397,7 @@ "typeString": "literal_string \"VAA was already executed\"" } ], - "id": 508, + "id": 511, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -15145,13 +16405,13 @@ -18 ], "referencedDeclaration": -18, - "src": "2959:7:1", + "src": "3021:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 514, + "id": 517, "isConstant": false, "isLValue": false, "isPure": false, @@ -15159,46 +16419,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2959:56:1", + "src": "3021:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 515, + "id": 518, "nodeType": "ExpressionStatement", - "src": "2959:56:1" + "src": "3021:56:1" }, { "assignments": [ - 517 + 520 ], "declarations": [ { "constant": false, - "id": 517, + "id": 520, "mutability": "mutable", "name": "guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "3026:31:1", + "scope": 692, + "src": "3088:31:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 516, + "id": 519, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "3026:11:1", + "referencedDeclaration": 371, + "src": "3088:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -15206,31 +16466,31 @@ "visibility": "internal" } ], - "id": 521, + "id": 524, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 518, + "id": 521, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "3060:13:1", + "referencedDeclaration": 399, + "src": "3122:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 520, + "id": 523, "indexExpression": { "argumentTypes": null, - "id": 519, + "id": 522, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "3074:22:1", + "referencedDeclaration": 477, + "src": "3136:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15241,14 +16501,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3060:37:1", + "src": "3122:37:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3026:71:1" + "src": "3088:71:1" }, { "expression": { @@ -15260,7 +16520,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 532, + "id": 535, "isConstant": false, "isLValue": false, "isPure": false, @@ -15271,7 +16531,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 526, + "id": 529, "isConstant": false, "isLValue": false, "isPure": false, @@ -15280,26 +16540,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 523, + "id": 526, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "3115:12:1", + "referencedDeclaration": 520, + "src": "3177:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 524, + "id": 527, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "3115:28:1", + "referencedDeclaration": 370, + "src": "3177:28:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15310,14 +16570,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 525, + "id": 528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3147:1:1", + "src": "3209:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15325,7 +16585,7 @@ }, "value": "0" }, - "src": "3115:33:1", + "src": "3177:33:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15339,7 +16599,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 531, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, @@ -15348,26 +16608,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 527, + "id": 530, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "3152:12:1", + "referencedDeclaration": 520, + "src": "3214:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 528, + "id": 531, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "3152:28:1", + "referencedDeclaration": 370, + "src": "3214:28:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15379,18 +16639,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 529, + "id": 532, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "3183:5:1", + "src": "3245:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 530, + "id": 533, "isConstant": false, "isLValue": false, "isPure": false, @@ -15398,19 +16658,19 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3183:15:1", + "src": "3245:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3152:46:1", + "src": "3214:46:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3115:83:1", + "src": "3177:83:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15419,14 +16679,14 @@ { "argumentTypes": null, "hexValue": "677561726469616e20736574206861732065787069726564", - "id": 533, + "id": 536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3200:26:1", + "src": "3262:26:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1", @@ -15446,7 +16706,7 @@ "typeString": "literal_string \"guardian set has expired\"" } ], - "id": 522, + "id": 525, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -15454,13 +16714,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3107:7:1", + "src": "3169:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 534, + "id": 537, "isConstant": false, "isLValue": false, "isPure": false, @@ -15468,16 +16728,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3107:120:1", + "src": "3169:120:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 535, + "id": 538, "nodeType": "ExpressionStatement", - "src": "3107:120:1" + "src": "3169:120:1" }, { "expression": { @@ -15489,7 +16749,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 549, + "id": 552, "isConstant": false, "isLValue": false, "isPure": false, @@ -15500,7 +16760,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 547, + "id": 550, "isConstant": false, "isLValue": false, "isPure": false, @@ -15514,7 +16774,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 544, + "id": 547, "isConstant": false, "isLValue": false, "isPure": false, @@ -15528,7 +16788,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 541, + "id": 544, "isConstant": false, "isLValue": false, "isPure": false, @@ -15539,32 +16799,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 537, + "id": 540, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "3247:12:1", + "referencedDeclaration": 520, + "src": "3309:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 538, + "id": 541, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "keys", "nodeType": "MemberAccess", - "referencedDeclaration": 365, - "src": "3247:17:1", + "referencedDeclaration": 368, + "src": "3309:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 539, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, @@ -15572,7 +16832,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3247:24:1", + "src": "3309:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15583,14 +16843,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 540, + "id": 543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3274:1:1", + "src": "3336:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -15598,21 +16858,21 @@ }, "value": "4" }, - "src": "3247:28:1", + "src": "3309:28:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 542, + "id": 545, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3246:30:1", + "src": "3308:30:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15623,14 +16883,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "33", - "id": 543, + "id": 546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3279:1:1", + "src": "3341:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -15638,21 +16898,21 @@ }, "value": "3" }, - "src": "3246:34:1", + "src": "3308:34:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 545, + "id": 548, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3245:36:1", + "src": "3307:36:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15663,14 +16923,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 546, + "id": 549, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3284:1:1", + "src": "3346:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15678,7 +16938,7 @@ }, "value": "1" }, - "src": "3245:40:1", + "src": "3307:40:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15688,18 +16948,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 548, + "id": 551, "name": "len_signers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "3289:11:1", + "referencedDeclaration": 484, + "src": "3351:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3245:55:1", + "src": "3307:55:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15708,14 +16968,14 @@ { "argumentTypes": null, "hexValue": "6e6f2071756f72756d", - "id": 550, + "id": 553, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3302:11:1", + "src": "3364:11:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb", @@ -15735,7 +16995,7 @@ "typeString": "literal_string \"no quorum\"" } ], - "id": 536, + "id": 539, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -15743,13 +17003,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3237:7:1", + "src": "3299:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 551, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, @@ -15757,37 +17017,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3237:77:1", + "src": "3299:77:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 552, + "id": 555, "nodeType": "ExpressionStatement", - "src": "3237:77:1" + "src": "3299:77:1" }, { "body": { - "id": 626, + "id": 629, "nodeType": "Block", - "src": "3364:334:1", + "src": "3426:334:1", "statements": [ { "assignments": [ - 564 + 567 ], "declarations": [ { "constant": false, - "id": 564, + "id": 567, "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 626, - "src": "3378:11:1", + "scope": 629, + "src": "3440:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15795,10 +17055,10 @@ "typeString": "uint8" }, "typeName": { - "id": 563, + "id": 566, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3378:5:1", + "src": "3440:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15808,7 +17068,7 @@ "visibility": "internal" } ], - "id": 573, + "id": 576, "initialValue": { "argumentTypes": null, "arguments": [ @@ -15818,7 +17078,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 571, + "id": 574, "isConstant": false, "isLValue": false, "isPure": false, @@ -15826,14 +17086,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "36", - "id": 567, + "id": 570, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3404:1:1", + "src": "3466:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", @@ -15849,19 +17109,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 570, + "id": 573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 568, + "id": 571, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3408:1:1", + "referencedDeclaration": 557, + "src": "3470:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15872,14 +17132,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 569, + "id": 572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3412:2:1", + "src": "3474:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -15887,13 +17147,13 @@ }, "value": "66" }, - "src": "3408:6:1", + "src": "3470:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3404:10:1", + "src": "3466:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15909,18 +17169,18 @@ ], "expression": { "argumentTypes": null, - "id": 565, + "id": 568, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3392:3:1", + "referencedDeclaration": 457, + "src": "3454:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 566, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, @@ -15928,13 +17188,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3392:11:1", + "src": "3454: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": 572, + "id": 575, "isConstant": false, "isLValue": false, "isPure": false, @@ -15942,7 +17202,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3392:23:1", + "src": "3454:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -15950,22 +17210,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3378:37:1" + "src": "3440:37:1" }, { "assignments": [ - 575 + 578 ], "declarations": [ { "constant": false, - "id": 575, + "id": 578, "mutability": "mutable", "name": "r", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 626, - "src": "3429:9:1", + "scope": 629, + "src": "3491:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15973,10 +17233,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 574, + "id": 577, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3429:7:1", + "src": "3491:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15986,7 +17246,7 @@ "visibility": "internal" } ], - "id": 584, + "id": 587, "initialValue": { "argumentTypes": null, "arguments": [ @@ -15996,7 +17256,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 582, + "id": 585, "isConstant": false, "isLValue": false, "isPure": false, @@ -16004,14 +17264,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "37", - "id": 578, + "id": 581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3455:1:1", + "src": "3517:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", @@ -16027,19 +17287,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 581, + "id": 584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 579, + "id": 582, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3459:1:1", + "referencedDeclaration": 557, + "src": "3521:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16050,14 +17310,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 580, + "id": 583, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3463:2:1", + "src": "3525:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -16065,13 +17325,13 @@ }, "value": "66" }, - "src": "3459:6:1", + "src": "3521:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3455:10:1", + "src": "3517:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16087,18 +17347,18 @@ ], "expression": { "argumentTypes": null, - "id": 576, + "id": 579, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3441:3:1", + "referencedDeclaration": 457, + "src": "3503:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 577, + "id": 580, "isConstant": false, "isLValue": false, "isPure": false, @@ -16106,13 +17366,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "3441:13:1", + "src": "3503: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": 583, + "id": 586, "isConstant": false, "isLValue": false, "isPure": false, @@ -16120,7 +17380,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3441:25:1", + "src": "3503:25:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -16128,22 +17388,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3429:37:1" + "src": "3491:37:1" }, { "assignments": [ - 586 + 589 ], "declarations": [ { "constant": false, - "id": 586, + "id": 589, "mutability": "mutable", "name": "s", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 626, - "src": "3480:9:1", + "scope": 629, + "src": "3542:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16151,10 +17411,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 585, + "id": 588, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3480:7:1", + "src": "3542:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16164,7 +17424,7 @@ "visibility": "internal" } ], - "id": 595, + "id": 598, "initialValue": { "argumentTypes": null, "arguments": [ @@ -16174,7 +17434,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 593, + "id": 596, "isConstant": false, "isLValue": false, "isPure": false, @@ -16182,14 +17442,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3339", - "id": 589, + "id": 592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3506:2:1", + "src": "3568:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_39_by_1", @@ -16205,19 +17465,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 592, + "id": 595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 590, + "id": 593, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3511:1:1", + "referencedDeclaration": 557, + "src": "3573:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16228,14 +17488,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 591, + "id": 594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3515:2:1", + "src": "3577:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -16243,13 +17503,13 @@ }, "value": "66" }, - "src": "3511:6:1", + "src": "3573:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3506:11:1", + "src": "3568:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16265,18 +17525,18 @@ ], "expression": { "argumentTypes": null, - "id": 587, + "id": 590, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3492:3:1", + "referencedDeclaration": 457, + "src": "3554:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 588, + "id": 591, "isConstant": false, "isLValue": false, "isPure": false, @@ -16284,13 +17544,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "3492:13:1", + "src": "3554: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": 594, + "id": 597, "isConstant": false, "isLValue": false, "isPure": false, @@ -16298,7 +17558,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3492:26:1", + "src": "3554:26:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -16306,22 +17566,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3480:38:1" + "src": "3542:38:1" }, { "assignments": [ - 597 + 600 ], "declarations": [ { "constant": false, - "id": 597, + "id": 600, "mutability": "mutable", "name": "v", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 626, - "src": "3532:7:1", + "scope": 629, + "src": "3594:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16329,10 +17589,10 @@ "typeString": "uint8" }, "typeName": { - "id": 596, + "id": 599, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3532:5:1", + "src": "3594:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16342,7 +17602,7 @@ "visibility": "internal" } ], - "id": 606, + "id": 609, "initialValue": { "argumentTypes": null, "arguments": [ @@ -16352,7 +17612,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 604, + "id": 607, "isConstant": false, "isLValue": false, "isPure": false, @@ -16360,14 +17620,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3731", - "id": 600, + "id": 603, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3554:2:1", + "src": "3616:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -16383,19 +17643,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 603, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 601, + "id": 604, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3559:1:1", + "referencedDeclaration": 557, + "src": "3621:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16406,14 +17666,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3636", - "id": 602, + "id": 605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3563:2:1", + "src": "3625:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_66_by_1", @@ -16421,13 +17681,13 @@ }, "value": "66" }, - "src": "3559:6:1", + "src": "3621:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3554:11:1", + "src": "3616:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16443,18 +17703,18 @@ ], "expression": { "argumentTypes": null, - "id": 598, + "id": 601, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3542:3:1", + "referencedDeclaration": 457, + "src": "3604:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 599, + "id": 602, "isConstant": false, "isLValue": false, "isPure": false, @@ -16462,13 +17722,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3542:11:1", + "src": "3604: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": 605, + "id": 608, "isConstant": false, "isLValue": false, "isPure": false, @@ -16476,7 +17736,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3542:24:1", + "src": "3604:24:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -16484,24 +17744,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3532:34:1" + "src": "3594:34:1" }, { "expression": { "argumentTypes": null, - "id": 609, + "id": 612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 607, + "id": 610, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "3580:1:1", + "referencedDeclaration": 600, + "src": "3642:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16512,14 +17772,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3237", - "id": 608, + "id": 611, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3585:2:1", + "src": "3647:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_27_by_1", @@ -16527,15 +17787,15 @@ }, "value": "27" }, - "src": "3580:7:1", + "src": "3642:7:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 610, + "id": 613, "nodeType": "ExpressionStatement", - "src": "3580:7:1" + "src": "3642:7:1" }, { "expression": { @@ -16547,7 +17807,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 622, + "id": 625, "isConstant": false, "isLValue": false, "isPure": false, @@ -16557,12 +17817,12 @@ "arguments": [ { "argumentTypes": null, - "id": 613, + "id": 616, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "3619:4:1", + "referencedDeclaration": 499, + "src": "3681:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16570,12 +17830,12 @@ }, { "argumentTypes": null, - "id": 614, + "id": 617, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 597, - "src": "3625:1:1", + "referencedDeclaration": 600, + "src": "3687:1:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16583,12 +17843,12 @@ }, { "argumentTypes": null, - "id": 615, + "id": 618, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 575, - "src": "3628:1:1", + "referencedDeclaration": 578, + "src": "3690:1:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16596,12 +17856,12 @@ }, { "argumentTypes": null, - "id": 616, + "id": 619, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "3631:1:1", + "referencedDeclaration": 589, + "src": "3693:1:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16627,18 +17887,18 @@ "typeString": "bytes32" } ], - "id": 612, + "id": 615, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -6, - "src": "3609:9:1", + "src": "3671: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": 617, + "id": 620, "isConstant": false, "isLValue": false, "isPure": false, @@ -16646,7 +17906,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3609:24:1", + "src": "3671:24:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -16661,40 +17921,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 618, + "id": 621, "name": "guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "3637:12:1", + "referencedDeclaration": 520, + "src": "3699:12:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "id": 619, + "id": 622, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "keys", "nodeType": "MemberAccess", - "referencedDeclaration": 365, - "src": "3637:17:1", + "referencedDeclaration": 368, + "src": "3699:17:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 621, + "id": 624, "indexExpression": { "argumentTypes": null, - "id": 620, + "id": 623, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 564, - "src": "3655:5:1", + "referencedDeclaration": 567, + "src": "3717:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16705,13 +17965,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3637:24:1", + "src": "3699:24:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3609:52:1", + "src": "3671:52:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16720,14 +17980,14 @@ { "argumentTypes": null, "hexValue": "564141207369676e617475726520696e76616c6964", - "id": 623, + "id": 626, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3663:23:1", + "src": "3725:23:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621", @@ -16747,7 +18007,7 @@ "typeString": "literal_string \"VAA signature invalid\"" } ], - "id": 611, + "id": 614, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -16755,13 +18015,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3601:7:1", + "src": "3663:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 624, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, @@ -16769,16 +18029,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3601:86:1", + "src": "3663:86:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 625, + "id": 628, "nodeType": "ExpressionStatement", - "src": "3601:86:1" + "src": "3663:86:1" } ] }, @@ -16788,19 +18048,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 559, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 557, + "id": 560, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3342:1:1", + "referencedDeclaration": 557, + "src": "3404:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16810,38 +18070,38 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 558, + "id": 561, "name": "len_signers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "3346:11:1", + "referencedDeclaration": 484, + "src": "3408:11:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3342:15:1", + "src": "3404:15:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 627, + "id": 630, "initializationExpression": { "assignments": [ - 554 + 557 ], "declarations": [ { "constant": false, - "id": 554, + "id": 557, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 627, - "src": "3330:6:1", + "scope": 630, + "src": "3392:6:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16849,10 +18109,10 @@ "typeString": "uint256" }, "typeName": { - "id": 553, + "id": 556, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3330:4:1", + "src": "3392:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16862,18 +18122,18 @@ "visibility": "internal" } ], - "id": 556, + "id": 559, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 555, + "id": 558, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3339:1:1", + "src": "3401:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -16882,12 +18142,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3330:10:1" + "src": "3392:10:1" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 561, + "id": 564, "isConstant": false, "isLValue": false, "isPure": false, @@ -16895,15 +18155,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3359:3:1", + "src": "3421:3:1", "subExpression": { "argumentTypes": null, - "id": 560, + "id": 563, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "3359:1:1", + "referencedDeclaration": 557, + "src": "3421:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16914,27 +18174,27 @@ "typeString": "uint256" } }, - "id": 562, + "id": 565, "nodeType": "ExpressionStatement", - "src": "3359:3:1" + "src": "3421:3:1" }, "nodeType": "ForStatement", - "src": "3325:373:1" + "src": "3387:373:1" }, { "assignments": [ - 629 + 632 ], "declarations": [ { "constant": false, - "id": 629, + "id": 632, "mutability": "mutable", "name": "action", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "3708:12:1", + "scope": 692, + "src": "3770:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16942,10 +18202,10 @@ "typeString": "uint8" }, "typeName": { - "id": 628, + "id": 631, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3708:5:1", + "src": "3770:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16955,7 +18215,7 @@ "visibility": "internal" } ], - "id": 636, + "id": 639, "initialValue": { "argumentTypes": null, "arguments": [ @@ -16965,19 +18225,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 634, + "id": 637, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 632, + "id": 635, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "3735:6:1", + "referencedDeclaration": 491, + "src": "3797:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16988,14 +18248,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "34", - "id": 633, + "id": 636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3744:1:1", + "src": "3806:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -17003,7 +18263,7 @@ }, "value": "4" }, - "src": "3735:10:1", + "src": "3797:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17019,18 +18279,18 @@ ], "expression": { "argumentTypes": null, - "id": 630, + "id": 633, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3723:3:1", + "referencedDeclaration": 457, + "src": "3785:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 631, + "id": 634, "isConstant": false, "isLValue": false, "isPure": false, @@ -17038,13 +18298,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "3723:11:1", + "src": "3785: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": 635, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, @@ -17052,7 +18312,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3723:23:1", + "src": "3785:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -17060,22 +18320,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3708:38:1" + "src": "3770:38:1" }, { "assignments": [ - 638 + 641 ], "declarations": [ { "constant": false, - "id": 638, + "id": 641, "mutability": "mutable", "name": "payload", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 689, - "src": "3756:20:1", + "scope": 692, + "src": "3818:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -17083,10 +18343,10 @@ "typeString": "bytes" }, "typeName": { - "id": 637, + "id": 640, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3756:5:1", + "src": "3818:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -17096,7 +18356,7 @@ "visibility": "internal" } ], - "id": 652, + "id": 655, "initialValue": { "argumentTypes": null, "arguments": [ @@ -17106,19 +18366,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 643, + "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 641, + "id": 644, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "3789:6:1", + "referencedDeclaration": 491, + "src": "3851:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17129,14 +18389,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "35", - "id": 642, + "id": 645, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3798:1:1", + "src": "3860:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -17144,7 +18404,7 @@ }, "value": "5" }, - "src": "3789:10:1", + "src": "3851:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17156,7 +18416,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 650, + "id": 653, "isConstant": false, "isLValue": false, "isPure": false, @@ -17165,18 +18425,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 644, + "id": 647, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3801:3:1", + "referencedDeclaration": 457, + "src": "3863:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 645, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -17184,7 +18444,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3801:10:1", + "src": "3863:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17201,19 +18461,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 648, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 646, + "id": 649, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "3815:6:1", + "referencedDeclaration": 491, + "src": "3877:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17224,14 +18484,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "35", - "id": 647, + "id": 650, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3824:1:1", + "src": "3886:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -17239,27 +18499,27 @@ }, "value": "5" }, - "src": "3815:10:1", + "src": "3877:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 649, + "id": 652, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3814:12:1", + "src": "3876:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3801:25:1", + "src": "3863:25:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17279,18 +18539,18 @@ ], "expression": { "argumentTypes": null, - "id": 639, + "id": 642, "name": "vaa", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "3779:3:1", + "referencedDeclaration": 457, + "src": "3841:3:1", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 640, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -17298,13 +18558,13 @@ "memberName": "slice", "nodeType": "MemberAccess", "referencedDeclaration": 55, - "src": "3779:9:1", + "src": "3841: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": 651, + "id": 654, "isConstant": false, "isLValue": false, "isPure": false, @@ -17312,7 +18572,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3779:48:1", + "src": "3841:48:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -17320,7 +18580,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3756:71:1" + "src": "3818:71:1" }, { "condition": { @@ -17329,19 +18589,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 655, + "id": 658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 653, + "id": 656, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, - "src": "3865:6:1", + "referencedDeclaration": 632, + "src": "3927:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17352,14 +18612,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783031", - "id": 654, + "id": 657, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3875:4:1", + "src": "3937:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -17367,7 +18627,7 @@ }, "value": "0x01" }, - "src": "3865:14:1", + "src": "3927:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17380,19 +18640,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 670, + "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 668, + "id": 671, "name": "action", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 629, - "src": "4073:6:1", + "referencedDeclaration": 632, + "src": "4135:6:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17403,14 +18663,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30783130", - "id": 669, + "id": 672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4083:4:1", + "src": "4145:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", @@ -17418,16 +18678,16 @@ }, "value": "0x10" }, - "src": "4073:14:1", + "src": "4135:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 680, + "id": 683, "nodeType": "Block", - "src": "4140:53:1", + "src": "4202:53:1", "statements": [ { "expression": { @@ -17436,14 +18696,14 @@ { "argumentTypes": null, "hexValue": "696e76616c69642056414120616374696f6e", - "id": 677, + "id": 680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4161:20:1", + "src": "4223:20:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66", @@ -17459,7 +18719,7 @@ "typeString": "literal_string \"invalid VAA action\"" } ], - "id": 676, + "id": 679, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -17467,13 +18727,13 @@ -19 ], "referencedDeclaration": -19, - "src": "4154:6:1", + "src": "4216:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 678, + "id": 681, "isConstant": false, "isLValue": false, "isPure": false, @@ -17481,26 +18741,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4154:28:1", + "src": "4216:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 679, + "id": 682, "nodeType": "ExpressionStatement", - "src": "4154:28:1" + "src": "4216:28:1" } ] }, - "id": 681, + "id": 684, "nodeType": "IfStatement", - "src": "4069:124:1", + "src": "4131:124:1", "trueBody": { - "id": 675, + "id": 678, "nodeType": "Block", - "src": "4089:45:1", + "src": "4151:45:1", "statements": [ { "expression": { @@ -17508,12 +18768,12 @@ "arguments": [ { "argumentTypes": null, - "id": 672, + "id": 675, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "4115:7:1", + "referencedDeclaration": 641, + "src": "4177:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -17527,18 +18787,18 @@ "typeString": "bytes memory" } ], - "id": 671, + "id": 674, "name": "vaaTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "4103:11:1", + "referencedDeclaration": 927, + "src": "4165:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 673, + "id": 676, "isConstant": false, "isLValue": false, "isPure": false, @@ -17546,27 +18806,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4103:20:1", + "src": "4165:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 674, + "id": 677, "nodeType": "ExpressionStatement", - "src": "4103:20:1" + "src": "4165:20:1" } ] } }, - "id": 682, + "id": 685, "nodeType": "IfStatement", - "src": "3861:332:1", + "src": "3923:332:1", "trueBody": { - "id": 667, + "id": 670, "nodeType": "Block", - "src": "3881:182:1", + "src": "3943:182:1", "statements": [ { "expression": { @@ -17578,19 +18838,19 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 659, + "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 657, + "id": 660, "name": "vaa_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "3903:22:1", + "referencedDeclaration": 477, + "src": "3965:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17600,18 +18860,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 658, + "id": 661, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "3929:18:1", + "referencedDeclaration": 401, + "src": "3991:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "3903:44:1", + "src": "3965:44:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17620,14 +18880,14 @@ { "argumentTypes": null, "hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574", - "id": 660, + "id": 663, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3949:59:1", + "src": "4011:59:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a", @@ -17647,7 +18907,7 @@ "typeString": "literal_string \"only the current guardian set can change the guardian set\"" } ], - "id": 656, + "id": 659, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -17655,13 +18915,13 @@ -18 ], "referencedDeclaration": -18, - "src": "3895:7:1", + "src": "3957:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 661, + "id": 664, "isConstant": false, "isLValue": false, "isPure": false, @@ -17669,16 +18929,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3895:114:1", + "src": "3957:114:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 662, + "id": 665, "nodeType": "ExpressionStatement", - "src": "3895:114:1" + "src": "3957:114:1" }, { "expression": { @@ -17686,12 +18946,12 @@ "arguments": [ { "argumentTypes": null, - "id": 664, + "id": 667, "name": "payload", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "4044:7:1", + "referencedDeclaration": 641, + "src": "4106:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -17705,18 +18965,18 @@ "typeString": "bytes memory" } ], - "id": 663, + "id": 666, "name": "vaaUpdateGuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "4023:20:1", + "referencedDeclaration": 792, + "src": "4085:20:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes memory)" } }, - "id": 665, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, @@ -17724,16 +18984,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4023:29:1", + "src": "4085:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 666, + "id": 669, "nodeType": "ExpressionStatement", - "src": "4023:29:1" + "src": "4085:29:1" } ] } @@ -17741,7 +19001,7 @@ { "expression": { "argumentTypes": null, - "id": 687, + "id": 690, "isConstant": false, "isLValue": false, "isPure": false, @@ -17750,26 +19010,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 683, + "id": 686, "name": "consumedVAAs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "4238:12:1", + "referencedDeclaration": 407, + "src": "4300:12:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 685, + "id": 688, "indexExpression": { "argumentTypes": null, - "id": 684, + "id": 687, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "4251:4:1", + "referencedDeclaration": 499, + "src": "4313:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17780,7 +19040,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4238:18:1", + "src": "4300:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17791,14 +19051,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 686, + "id": 689, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4259:4:1", + "src": "4321:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -17806,60 +19066,60 @@ }, "value": "true" }, - "src": "4238:25:1", + "src": "4300:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 688, + "id": 691, "nodeType": "ExpressionStatement", - "src": "4238:25:1" + "src": "4300:25:1" } ] }, "documentation": null, "functionSelector": "3bc0aee6", - "id": 690, + "id": 693, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 457, + "id": 460, "modifierName": { "argumentTypes": null, - "id": 456, + "id": 459, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "2456:12:1", + "referencedDeclaration": 3071, + "src": "2518:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2456:12:1" + "src": "2518:12:1" } ], "name": "submitVAA", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 455, + "id": 458, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 454, + "id": 457, "mutability": "mutable", "name": "vaa", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 690, - "src": "2424:18:1", + "scope": 693, + "src": "2486:18:1", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -17867,10 +19127,10 @@ "typeString": "bytes" }, "typeName": { - "id": 453, + "id": 456, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2424:5:1", + "src": "2486:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -17880,40 +19140,40 @@ "visibility": "internal" } ], - "src": "2414:34:1" + "src": "2476:34:1" }, "returnParameters": { - "id": 458, + "id": 461, "nodeType": "ParameterList", "parameters": [], - "src": "2469:0:1" + "src": "2531:0:1" }, - "scope": 1175, - "src": "2396:1874:1", + "scope": 1254, + "src": "2458:1874:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 788, + "id": 791, "nodeType": "Block", - "src": "4333:755:1", + "src": "4395:755:1", "statements": [ { "assignments": [ - 696 + 699 ], "declarations": [ { "constant": false, - "id": 696, + "id": 699, "mutability": "mutable", "name": "new_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4343:29:1", + "scope": 791, + "src": "4405:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17921,10 +19181,10 @@ "typeString": "uint32" }, "typeName": { - "id": 695, + "id": 698, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4343:6:1", + "src": "4405:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17934,21 +19194,21 @@ "visibility": "internal" } ], - "id": 701, + "id": 704, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 699, + "id": 702, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4389:1:1", + "src": "4451:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17966,18 +19226,18 @@ ], "expression": { "argumentTypes": null, - "id": 697, + "id": 700, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "4375:4:1", + "referencedDeclaration": 695, + "src": "4437:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 698, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, @@ -17985,13 +19245,13 @@ "memberName": "toUint32", "nodeType": "MemberAccess", "referencedDeclaration": 163, - "src": "4375:13:1", + "src": "4437: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": 700, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -17999,7 +19259,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4375:16:1", + "src": "4437:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -18007,22 +19267,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4343:48:1" + "src": "4405:48:1" }, { "assignments": [ - 703 + 706 ], "declarations": [ { "constant": false, - "id": 703, + "id": 706, "mutability": "mutable", "name": "len", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4401:9:1", + "scope": 791, + "src": "4463:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18030,10 +19290,10 @@ "typeString": "uint8" }, "typeName": { - "id": 702, + "id": 705, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4401:5:1", + "src": "4463:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -18043,21 +19303,21 @@ "visibility": "internal" } ], - "id": 708, + "id": 711, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 706, + "id": 709, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4426:1:1", + "src": "4488:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -18075,18 +19335,18 @@ ], "expression": { "argumentTypes": null, - "id": 704, + "id": 707, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "4413:4:1", + "referencedDeclaration": 695, + "src": "4475:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 705, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, @@ -18094,13 +19354,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "4413:12:1", + "src": "4475: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": 707, + "id": 710, "isConstant": false, "isLValue": false, "isPure": false, @@ -18108,7 +19368,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4413:15:1", + "src": "4475:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -18116,22 +19376,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4401:27:1" + "src": "4463:27:1" }, { "assignments": [ - 713 + 716 ], "declarations": [ { "constant": false, - "id": 713, + "id": 716, "mutability": "mutable", "name": "new_guardians", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4439:30:1", + "scope": 791, + "src": "4501:30:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -18140,19 +19400,19 @@ }, "typeName": { "baseType": { - "id": 711, + "id": 714, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4439:7:1", + "src": "4501:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 712, + "id": 715, "length": null, "nodeType": "ArrayTypeName", - "src": "4439:9:1", + "src": "4501:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -18162,18 +19422,18 @@ "visibility": "internal" } ], - "id": 719, + "id": 722, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 717, + "id": 720, "name": "len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "4486:3:1", + "referencedDeclaration": 706, + "src": "4548:3:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -18187,40 +19447,40 @@ "typeString": "uint8" } ], - "id": 716, + "id": 719, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4472:13:1", + "src": "4534: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": 714, + "id": 717, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4476:7:1", + "src": "4538:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 715, + "id": 718, "length": null, "nodeType": "ArrayTypeName", - "src": "4476:9:1", + "src": "4538:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 718, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -18228,7 +19488,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4472:18:1", + "src": "4534:18:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -18236,28 +19496,28 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4439:51:1" + "src": "4501:51:1" }, { "body": { - "id": 747, + "id": 750, "nodeType": "Block", - "src": "4531:103:1", + "src": "4593:103:1", "statements": [ { "assignments": [ - 731 + 734 ], "declarations": [ { "constant": false, - "id": 731, + "id": 734, "mutability": "mutable", "name": "addr", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 747, - "src": "4545:12:1", + "scope": 750, + "src": "4607:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18265,10 +19525,10 @@ "typeString": "address" }, "typeName": { - "id": 730, + "id": 733, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4545:7:1", + "src": "4607:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18279,7 +19539,7 @@ "visibility": "internal" } ], - "id": 740, + "id": 743, "initialValue": { "argumentTypes": null, "arguments": [ @@ -18289,7 +19549,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 738, + "id": 741, "isConstant": false, "isLValue": false, "isPure": false, @@ -18297,14 +19557,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "35", - "id": 734, + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4575:1:1", + "src": "4637:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -18320,19 +19580,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 737, + "id": 740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 735, + "id": 738, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4579:1:1", + "referencedDeclaration": 724, + "src": "4641:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18343,14 +19603,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3230", - "id": 736, + "id": 739, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4583:2:1", + "src": "4645:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", @@ -18358,13 +19618,13 @@ }, "value": "20" }, - "src": "4579:6:1", + "src": "4641:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4575:10:1", + "src": "4637:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18380,18 +19640,18 @@ ], "expression": { "argumentTypes": null, - "id": 732, + "id": 735, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "4560:4:1", + "referencedDeclaration": 695, + "src": "4622:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 733, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, @@ -18399,13 +19659,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "4560:14:1", + "src": "4622: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": 739, + "id": 742, "isConstant": false, "isLValue": false, "isPure": false, @@ -18413,7 +19673,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4560:26:1", + "src": "4622:26:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -18421,12 +19681,12 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4545:41:1" + "src": "4607:41:1" }, { "expression": { "argumentTypes": null, - "id": 745, + "id": 748, "isConstant": false, "isLValue": false, "isPure": false, @@ -18435,26 +19695,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 741, + "id": 744, "name": "new_guardians", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "4600:13:1", + "referencedDeclaration": 716, + "src": "4662:13:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 743, + "id": 746, "indexExpression": { "argumentTypes": null, - "id": 742, + "id": 745, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4614:1:1", + "referencedDeclaration": 724, + "src": "4676:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18465,7 +19725,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4600:16:1", + "src": "4662:16:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18475,26 +19735,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 744, + "id": 747, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "4619:4:1", + "referencedDeclaration": 734, + "src": "4681:4:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4600:23:1", + "src": "4662:23:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 746, + "id": 749, "nodeType": "ExpressionStatement", - "src": "4600:23:1" + "src": "4662:23:1" } ] }, @@ -18504,19 +19764,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 726, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 724, + "id": 727, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4517:1:1", + "referencedDeclaration": 724, + "src": "4579:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18526,38 +19786,38 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 725, + "id": 728, "name": "len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 703, - "src": "4521:3:1", + "referencedDeclaration": 706, + "src": "4583:3:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4517:7:1", + "src": "4579:7:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 748, + "id": 751, "initializationExpression": { "assignments": [ - 721 + 724 ], "declarations": [ { "constant": false, - "id": 721, + "id": 724, "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 748, - "src": "4505:6:1", + "scope": 751, + "src": "4567:6:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18565,10 +19825,10 @@ "typeString": "uint256" }, "typeName": { - "id": 720, + "id": 723, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4505:4:1", + "src": "4567:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18578,18 +19838,18 @@ "visibility": "internal" } ], - "id": 723, + "id": 726, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 722, + "id": 725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4514:1:1", + "src": "4576:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18598,12 +19858,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4505:10:1" + "src": "4567:10:1" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 728, + "id": 731, "isConstant": false, "isLValue": false, "isPure": false, @@ -18611,15 +19871,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4526:3:1", + "src": "4588:3:1", "subExpression": { "argumentTypes": null, - "id": 727, + "id": 730, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "4526:1:1", + "referencedDeclaration": 724, + "src": "4588:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18630,27 +19890,27 @@ "typeString": "uint256" } }, - "id": 729, + "id": 732, "nodeType": "ExpressionStatement", - "src": "4526:3:1" + "src": "4588:3:1" }, "nodeType": "ForStatement", - "src": "4500:134:1" + "src": "4562:134:1" }, { "assignments": [ - 750 + 753 ], "declarations": [ { "constant": false, - "id": 750, + "id": 753, "mutability": "mutable", "name": "old_guardian_set_index", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4644:29:1", + "scope": 791, + "src": "4706:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18658,10 +19918,10 @@ "typeString": "uint32" }, "typeName": { - "id": 749, + "id": 752, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4644:6:1", + "src": "4706:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18671,39 +19931,39 @@ "visibility": "internal" } ], - "id": 752, + "id": 755, "initialValue": { "argumentTypes": null, - "id": 751, + "id": 754, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "4676:18:1", + "referencedDeclaration": 401, + "src": "4738:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "4644:50:1" + "src": "4706:50:1" }, { "expression": { "argumentTypes": null, - "id": 755, + "id": 758, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 753, + "id": 756, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "4704:18:1", + "referencedDeclaration": 401, + "src": "4766:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18713,56 +19973,56 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 754, + "id": 757, "name": "new_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "4725:22:1", + "referencedDeclaration": 699, + "src": "4787:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4704:43:1", + "src": "4766:43:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 756, + "id": 759, "nodeType": "ExpressionStatement", - "src": "4704:43:1" + "src": "4766:43:1" }, { "assignments": [ - 758 + 761 ], "declarations": [ { "constant": false, - "id": 758, + "id": 761, "mutability": "mutable", "name": "new_guardian_set", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 788, - "src": "4758:35:1", + "scope": 791, + "src": "4820:35:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet" }, "typeName": { "contractScope": null, - "id": 757, + "id": 760, "name": "GuardianSet", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 368, - "src": "4758:11:1", + "referencedDeclaration": 371, + "src": "4820:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage_ptr", "typeString": "struct Wormhole.GuardianSet" } }, @@ -18770,18 +20030,18 @@ "visibility": "internal" } ], - "id": 763, + "id": 766, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 760, + "id": 763, "name": "new_guardians", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 713, - "src": "4808:13:1", + "referencedDeclaration": 716, + "src": "4870:13:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -18790,14 +20050,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 761, + "id": 764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4823:1:1", + "src": "4885:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18817,18 +20077,18 @@ "typeString": "int_const 0" } ], - "id": 759, + "id": 762, "name": "GuardianSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "4796:11:1", + "referencedDeclaration": 371, + "src": "4858:11:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_GuardianSet_$368_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_GuardianSet_$371_storage_ptr_$", "typeString": "type(struct Wormhole.GuardianSet storage pointer)" } }, - "id": 762, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, @@ -18836,20 +20096,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4796:29:1", + "src": "4858:29:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4758:67:1" + "src": "4820:67:1" }, { "expression": { "argumentTypes": null, - "id": 768, + "id": 771, "isConstant": false, "isLValue": false, "isPure": false, @@ -18858,26 +20118,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 764, + "id": 767, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "4835:13:1", + "referencedDeclaration": 399, + "src": "4897:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 766, + "id": 769, "indexExpression": { "argumentTypes": null, - "id": 765, + "id": 768, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "4849:18:1", + "referencedDeclaration": 401, + "src": "4911:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18888,9 +20148,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4835:33:1", + "src": "4897:33:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, @@ -18898,31 +20158,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 767, + "id": 770, "name": "new_guardian_set", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "4871:16:1", + "referencedDeclaration": 761, + "src": "4933:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_memory_ptr", + "typeIdentifier": "t_struct$_GuardianSet_$371_memory_ptr", "typeString": "struct Wormhole.GuardianSet memory" } }, - "src": "4835:52:1", + "src": "4897:52:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 769, + "id": 772, "nodeType": "ExpressionStatement", - "src": "4835:52:1" + "src": "4897:52:1" }, { "expression": { "argumentTypes": null, - "id": 781, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, @@ -18933,26 +20193,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 770, + "id": 773, "name": "guardian_sets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 396, - "src": "4897:13:1", + "referencedDeclaration": 399, + "src": "4959:13:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$368_storage_$", + "typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$371_storage_$", "typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)" } }, - "id": 772, + "id": 775, "indexExpression": { "argumentTypes": null, - "id": 771, + "id": 774, "name": "old_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "4911:22:1", + "referencedDeclaration": 753, + "src": "4973:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18963,21 +20223,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4897:37:1", + "src": "4959:37:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_GuardianSet_$368_storage", + "typeIdentifier": "t_struct$_GuardianSet_$371_storage", "typeString": "struct Wormhole.GuardianSet storage ref" } }, - "id": 773, + "id": 776, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "expiration_time", "nodeType": "MemberAccess", - "referencedDeclaration": 367, - "src": "4897:53:1", + "referencedDeclaration": 370, + "src": "4959:53:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18991,7 +20251,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 780, + "id": 783, "isConstant": false, "isLValue": false, "isPure": false, @@ -19003,18 +20263,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 776, + "id": 779, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, - "src": "4960:5:1", + "src": "5022:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 777, + "id": 780, "isConstant": false, "isLValue": false, "isPure": false, @@ -19022,7 +20282,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4960:15:1", + "src": "5022:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19036,29 +20296,29 @@ "typeString": "uint256" } ], - "id": 775, + "id": 778, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4953:6:1", + "src": "5015:6:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 774, + "id": 777, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4953:6:1", + "src": "5015:6:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 778, + "id": 781, "isConstant": false, "isLValue": false, "isPure": false, @@ -19066,7 +20326,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4953:23:1", + "src": "5015:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -19077,32 +20337,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 779, + "id": 782, "name": "guardian_set_expirity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 400, - "src": "4979:21:1", + "referencedDeclaration": 403, + "src": "5041:21:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4953:47:1", + "src": "5015:47:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4897:103:1", + "src": "4959:103:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 782, + "id": 785, "nodeType": "ExpressionStatement", - "src": "4897:103:1" + "src": "4959:103:1" }, { "eventCall": { @@ -19110,12 +20370,12 @@ "arguments": [ { "argumentTypes": null, - "id": 784, + "id": 787, "name": "old_guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "5038:22:1", + "referencedDeclaration": 753, + "src": "5100:22:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19123,12 +20383,12 @@ }, { "argumentTypes": null, - "id": 785, + "id": 788, "name": "guardian_set_index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 398, - "src": "5062:18:1", + "referencedDeclaration": 401, + "src": "5124:18:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19146,18 +20406,18 @@ "typeString": "uint32" } ], - "id": 783, + "id": 786, "name": "LogGuardianSetChanged", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 374, - "src": "5016:21:1", + "referencedDeclaration": 377, + "src": "5078:21:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$", "typeString": "function (uint32,uint32)" } }, - "id": 786, + "id": 789, "isConstant": false, "isLValue": false, "isPure": false, @@ -19165,21 +20425,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5016:65:1", + "src": "5078:65:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 787, + "id": 790, "nodeType": "EmitStatement", - "src": "5011:70:1" + "src": "5073:70:1" } ] }, "documentation": null, - "id": 789, + "id": 792, "implemented": true, "kind": "function", "modifiers": [], @@ -19187,18 +20447,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 693, + "id": 696, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 692, + "id": 695, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 789, - "src": "4306:17:1", + "scope": 792, + "src": "4368:17:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -19206,10 +20466,10 @@ "typeString": "bytes" }, "typeName": { - "id": 691, + "id": 694, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4306:5:1", + "src": "4368:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -19219,40 +20479,40 @@ "visibility": "internal" } ], - "src": "4305:19:1" + "src": "4367:19:1" }, "returnParameters": { - "id": 694, + "id": 697, "nodeType": "ParameterList", "parameters": [], - "src": "4333:0:1" + "src": "4395:0:1" }, - "scope": 1175, - "src": "4276:812:1", + "scope": 1254, + "src": "4338:812:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 923, + "id": 926, "nodeType": "Block", - "src": "5142:1399:1", + "src": "5204:1399:1", "statements": [ { "assignments": [ - 795 + 798 ], "declarations": [ { "constant": false, - "id": 795, + "id": 798, "mutability": "mutable", "name": "source_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5195:18:1", + "scope": 926, + "src": "5257:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19260,10 +20520,10 @@ "typeString": "uint8" }, "typeName": { - "id": 794, + "id": 797, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5195:5:1", + "src": "5257:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -19273,21 +20533,21 @@ "visibility": "internal" } ], - "id": 800, + "id": 803, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "34", - "id": 798, + "id": 801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5229:1:1", + "src": "5291:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -19305,18 +20565,18 @@ ], "expression": { "argumentTypes": null, - "id": 796, + "id": 799, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5216:4:1", + "referencedDeclaration": 794, + "src": "5278:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 797, + "id": 800, "isConstant": false, "isLValue": false, "isPure": false, @@ -19324,13 +20584,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5216:12:1", + "src": "5278: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": 799, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, @@ -19338,7 +20598,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5216:15:1", + "src": "5278:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -19346,22 +20606,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5195:36:1" + "src": "5257:36:1" }, { "assignments": [ - 802 + 805 ], "declarations": [ { "constant": false, - "id": 802, + "id": 805, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5242:18:1", + "scope": 926, + "src": "5304:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19369,10 +20629,10 @@ "typeString": "uint8" }, "typeName": { - "id": 801, + "id": 804, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5242:5:1", + "src": "5304:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -19382,21 +20642,21 @@ "visibility": "internal" } ], - "id": 807, + "id": 810, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "35", - "id": 805, + "id": 808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5276:1:1", + "src": "5338:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -19414,18 +20674,18 @@ ], "expression": { "argumentTypes": null, - "id": 803, + "id": 806, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5263:4:1", + "referencedDeclaration": 794, + "src": "5325:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 804, + "id": 807, "isConstant": false, "isLValue": false, "isPure": false, @@ -19433,13 +20693,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5263:12:1", + "src": "5325: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": 806, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -19447,7 +20707,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5263:15:1", + "src": "5325:15:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -19455,22 +20715,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5242:36:1" + "src": "5304:36:1" }, { "assignments": [ - 809 + 812 ], "declarations": [ { "constant": false, - "id": 809, + "id": 812, "mutability": "mutable", "name": "target_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5397:22:1", + "scope": 926, + "src": "5459:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19478,10 +20738,10 @@ "typeString": "address" }, "typeName": { - "id": 808, + "id": 811, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5397:7:1", + "src": "5459:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19492,7 +20752,7 @@ "visibility": "internal" } ], - "id": 816, + "id": 819, "initialValue": { "argumentTypes": null, "arguments": [ @@ -19502,7 +20762,7 @@ "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" }, - "id": 814, + "id": 817, "isConstant": false, "isLValue": false, "isPure": true, @@ -19510,14 +20770,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3338", - "id": 812, + "id": 815, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5437:2:1", + "src": "5499:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_38_by_1", @@ -19530,14 +20790,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 813, + "id": 816, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5442:2:1", + "src": "5504:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -19545,7 +20805,7 @@ }, "value": "12" }, - "src": "5437:7:1", + "src": "5499:7:1", "typeDescriptions": { "typeIdentifier": "t_rational_50_by_1", "typeString": "int_const 50" @@ -19561,18 +20821,18 @@ ], "expression": { "argumentTypes": null, - "id": 810, + "id": 813, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5422:4:1", + "referencedDeclaration": 794, + "src": "5484:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 811, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, @@ -19580,13 +20840,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "5422:14:1", + "src": "5484: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": 815, + "id": 818, "isConstant": false, "isLValue": false, "isPure": false, @@ -19594,7 +20854,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5422:23:1", + "src": "5484:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19602,22 +20862,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5397:48:1" + "src": "5459:48:1" }, { "assignments": [ - 818 + 821 ], "declarations": [ { "constant": false, - "id": 818, + "id": 821, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5456:17:1", + "scope": 926, + "src": "5518:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19625,10 +20885,10 @@ "typeString": "uint8" }, "typeName": { - "id": 817, + "id": 820, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5456:5:1", + "src": "5518:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -19638,21 +20898,21 @@ "visibility": "internal" } ], - "id": 823, + "id": 826, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3730", - "id": 821, + "id": 824, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5489:2:1", + "src": "5551:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_70_by_1", @@ -19670,18 +20930,18 @@ ], "expression": { "argumentTypes": null, - "id": 819, + "id": 822, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5476:4:1", + "referencedDeclaration": 794, + "src": "5538:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 820, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, @@ -19689,13 +20949,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "5476:12:1", + "src": "5538: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": 822, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, @@ -19703,7 +20963,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5476:16:1", + "src": "5538:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -19711,22 +20971,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5456:36:1" + "src": "5518:36:1" }, { "assignments": [ - 825 + 828 ], "declarations": [ { "constant": false, - "id": 825, + "id": 828, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 923, - "src": "5556:14:1", + "scope": 926, + "src": "5618:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19734,10 +20994,10 @@ "typeString": "uint256" }, "typeName": { - "id": 824, + "id": 827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5556:7:1", + "src": "5618:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19747,21 +21007,21 @@ "visibility": "internal" } ], - "id": 830, + "id": 833, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "313034", - "id": 828, + "id": 831, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5588:3:1", + "src": "5650:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_104_by_1", @@ -19779,18 +21039,18 @@ ], "expression": { "argumentTypes": null, - "id": 826, + "id": 829, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5573:4:1", + "referencedDeclaration": 794, + "src": "5635:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 827, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -19798,13 +21058,13 @@ "memberName": "toUint256", "nodeType": "MemberAccess", "referencedDeclaration": 271, - "src": "5573:14:1", + "src": "5635: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": 829, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -19812,7 +21072,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5573:19:1", + "src": "5635:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19820,7 +21080,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5556:36:1" + "src": "5618:36:1" }, { "expression": { @@ -19832,19 +21092,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 834, + "id": 837, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 832, + "id": 835, "name": "source_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "5611:12:1", + "referencedDeclaration": 798, + "src": "5673:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -19854,18 +21114,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 833, + "id": 836, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "5627:12:1", + "referencedDeclaration": 805, + "src": "5689:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5611:28:1", + "src": "5673:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19874,14 +21134,14 @@ { "argumentTypes": null, "hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564", - "id": 835, + "id": 838, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5641:40:1", + "src": "5703:40:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23", @@ -19901,7 +21161,7 @@ "typeString": "literal_string \"same chain transfers are not supported\"" } ], - "id": 831, + "id": 834, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -19909,13 +21169,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5603:7:1", + "src": "5665:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 836, + "id": 839, "isConstant": false, "isLValue": false, "isPure": false, @@ -19923,16 +21183,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5603:79:1", + "src": "5665:79:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 837, + "id": 840, "nodeType": "ExpressionStatement", - "src": "5603:79:1" + "src": "5665:79:1" }, { "expression": { @@ -19944,19 +21204,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 841, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 839, + "id": 842, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "5700:12:1", + "referencedDeclaration": 805, + "src": "5762:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -19966,18 +21226,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 840, + "id": 843, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "5716:8:1", + "referencedDeclaration": 362, + "src": "5778:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5700:24:1", + "src": "5762:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19986,14 +21246,14 @@ { "argumentTypes": null, "hexValue": "7472616e73666572206d75737420626520696e636f6d696e67", - "id": 842, + "id": 845, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5726:27:1", + "src": "5788:27:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a", @@ -20013,7 +21273,7 @@ "typeString": "literal_string \"transfer must be incoming\"" } ], - "id": 838, + "id": 841, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -20021,13 +21281,13 @@ -18 ], "referencedDeclaration": -18, - "src": "5692:7:1", + "src": "5754:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 843, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, @@ -20035,16 +21295,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5692:62:1", + "src": "5754:62:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 844, + "id": 847, "nodeType": "ExpressionStatement", - "src": "5692:62:1" + "src": "5754:62:1" }, { "condition": { @@ -20053,19 +21313,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 847, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 845, + "id": 848, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "5769:11:1", + "referencedDeclaration": 821, + "src": "5831:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20075,42 +21335,42 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 846, + "id": 849, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "5784:8:1", + "referencedDeclaration": 362, + "src": "5846:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5769:23:1", + "src": "5831:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 921, + "id": 924, "nodeType": "Block", - "src": "6390:145:1", + "src": "6452:145:1", "statements": [ { "assignments": [ - 905 + 908 ], "declarations": [ { "constant": false, - "id": 905, + "id": 908, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 921, - "src": "6404:21:1", + "scope": 924, + "src": "6466:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20118,10 +21378,10 @@ "typeString": "address" }, "typeName": { - "id": 904, + "id": 907, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6404:7:1", + "src": "6466:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20132,7 +21392,7 @@ "visibility": "internal" } ], - "id": 912, + "id": 915, "initialValue": { "argumentTypes": null, "arguments": [ @@ -20142,7 +21402,7 @@ "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" }, - "id": 910, + "id": 913, "isConstant": false, "isLValue": false, "isPure": true, @@ -20150,14 +21410,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3731", - "id": 908, + "id": 911, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6443:2:1", + "src": "6505:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -20170,14 +21430,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3132", - "id": 909, + "id": 912, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6448:2:1", + "src": "6510:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_12_by_1", @@ -20185,7 +21445,7 @@ }, "value": "12" }, - "src": "6443:7:1", + "src": "6505:7:1", "typeDescriptions": { "typeIdentifier": "t_rational_83_by_1", "typeString": "int_const 83" @@ -20201,18 +21461,18 @@ ], "expression": { "argumentTypes": null, - "id": 906, + "id": 909, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "6428:4:1", + "referencedDeclaration": 794, + "src": "6490:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 907, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -20220,13 +21480,13 @@ "memberName": "toAddress", "nodeType": "MemberAccess", "referencedDeclaration": 82, - "src": "6428:14:1", + "src": "6490: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": 911, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, @@ -20234,7 +21494,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6428:23:1", + "src": "6490:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -20242,7 +21502,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6404:47:1" + "src": "6466:47:1" }, { "expression": { @@ -20250,12 +21510,12 @@ "arguments": [ { "argumentTypes": null, - "id": 917, + "id": 920, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6501:14:1", + "referencedDeclaration": 812, + "src": "6563:14:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20263,12 +21523,12 @@ }, { "argumentTypes": null, - "id": 918, + "id": 921, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 825, - "src": "6517:6:1", + "referencedDeclaration": 828, + "src": "6579:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20291,12 +21551,12 @@ "arguments": [ { "argumentTypes": null, - "id": 914, + "id": 917, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 905, - "src": "6473:13:1", + "referencedDeclaration": 908, + "src": "6535:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20310,18 +21570,18 @@ "typeString": "address" } ], - "id": 913, + "id": 916, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "6466:6:1", + "referencedDeclaration": 2615, + "src": "6528:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2536_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2615_$", "typeString": "type(contract IERC20)" } }, - "id": 915, + "id": 918, "isConstant": false, "isLValue": false, "isPure": false, @@ -20329,28 +21589,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6466:21:1", + "src": "6528:21:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } }, - "id": 916, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2570, - "src": "6466:34:1", + "referencedDeclaration": 2649, + "src": "6528:34:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2536_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2536_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2615_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2615_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 919, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -20358,41 +21618,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6466:58:1", + "src": "6528:58:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 920, + "id": 923, "nodeType": "ExpressionStatement", - "src": "6466:58:1" + "src": "6528:58:1" } ] }, - "id": 922, + "id": 925, "nodeType": "IfStatement", - "src": "5765:770:1", + "src": "5827:770:1", "trueBody": { - "id": 903, + "id": 906, "nodeType": "Block", - "src": "5794:590:1", + "src": "5856:590:1", "statements": [ { "assignments": [ - 849 + 852 ], "declarations": [ { "constant": false, - "id": 849, + "id": 852, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 903, - "src": "5808:21:1", + "scope": 906, + "src": "5870:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20400,10 +21660,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 848, + "id": 851, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5808:7:1", + "src": "5870:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20413,21 +21673,21 @@ "visibility": "internal" } ], - "id": 854, + "id": 857, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "3731", - "id": 852, + "id": 855, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5847:2:1", + "src": "5909:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_71_by_1", @@ -20445,18 +21705,18 @@ ], "expression": { "argumentTypes": null, - "id": 850, + "id": 853, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "5832:4:1", + "referencedDeclaration": 794, + "src": "5894:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 851, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -20464,13 +21724,13 @@ "memberName": "toBytes32", "nodeType": "MemberAccess", "referencedDeclaration": 298, - "src": "5832:14:1", + "src": "5894: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": 853, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, @@ -20478,7 +21738,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5832:18:1", + "src": "5894:18:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -20486,22 +21746,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5808:42:1" + "src": "5870:42:1" }, { "assignments": [ - 856 + 859 ], "declarations": [ { "constant": false, - "id": 856, + "id": 859, "mutability": "mutable", "name": "asset_id", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 903, - "src": "5864:16:1", + "scope": 906, + "src": "5926:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20509,10 +21769,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 855, + "id": 858, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5864:7:1", + "src": "5926:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20522,7 +21782,7 @@ "visibility": "internal" } ], - "id": 864, + "id": 867, "initialValue": { "argumentTypes": null, "arguments": [ @@ -20531,12 +21791,12 @@ "arguments": [ { "argumentTypes": null, - "id": 860, + "id": 863, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "5910:11:1", + "referencedDeclaration": 821, + "src": "5972:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20544,12 +21804,12 @@ }, { "argumentTypes": null, - "id": 861, + "id": 864, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "5923:13:1", + "referencedDeclaration": 852, + "src": "5985:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20569,18 +21829,18 @@ ], "expression": { "argumentTypes": null, - "id": 858, + "id": 861, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "5893:3:1", + "src": "5955:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 859, + "id": 862, "isConstant": false, "isLValue": false, "isPure": true, @@ -20588,13 +21848,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5893:16:1", + "src": "5955:16:1", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 862, + "id": 865, "isConstant": false, "isLValue": false, "isPure": false, @@ -20602,7 +21862,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5893:44:1", + "src": "5955:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -20617,18 +21877,18 @@ "typeString": "bytes memory" } ], - "id": 857, + "id": 860, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, - "src": "5883:9:1", + "src": "5945:9:1", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 863, + "id": 866, "isConstant": false, "isLValue": false, "isPure": false, @@ -20636,7 +21896,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5883:55:1", + "src": "5945:55:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -20644,22 +21904,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5864:74:1" + "src": "5926:74:1" }, { "assignments": [ - 866 + 869 ], "declarations": [ { "constant": false, - "id": 866, + "id": 869, "mutability": "mutable", "name": "wrapped_asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 903, - "src": "6030:21:1", + "scope": 906, + "src": "6092:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20667,10 +21927,10 @@ "typeString": "address" }, "typeName": { - "id": 865, + "id": 868, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6030:7:1", + "src": "6092:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -20681,31 +21941,31 @@ "visibility": "internal" } ], - "id": 870, + "id": 873, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 867, + "id": 870, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "6054:13:1", + "referencedDeclaration": 411, + "src": "6116:13:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 869, + "id": 872, "indexExpression": { "argumentTypes": null, - "id": 868, + "id": 871, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 856, - "src": "6068:8:1", + "referencedDeclaration": 859, + "src": "6130:8:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20716,14 +21976,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6054:23:1", + "src": "6116:23:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "6030:47:1" + "src": "6092:47:1" }, { "condition": { @@ -20732,19 +21992,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 876, + "id": 879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 871, + "id": 874, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "6095:13:1", + "referencedDeclaration": 869, + "src": "6157:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20758,14 +22018,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 874, + "id": 877, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6120:1:1", + "src": "6182:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -20781,29 +22041,29 @@ "typeString": "int_const 0" } ], - "id": 873, + "id": 876, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6112:7:1", + "src": "6174:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 872, + "id": 875, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6112:7:1", + "src": "6174:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 875, + "id": 878, "isConstant": false, "isLValue": false, "isPure": true, @@ -20811,42 +22071,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6112:10:1", + "src": "6174:10:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "6095:27:1", + "src": "6157:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 894, + "id": 897, "nodeType": "IfStatement", - "src": "6091:212:1", + "src": "6153:212:1", "trueBody": { - "id": 893, + "id": 896, "nodeType": "Block", - "src": "6124:179:1", + "src": "6186:179:1", "statements": [ { "assignments": [ - 878 + 881 ], "declarations": [ { "constant": false, - "id": 878, + "id": 881, "mutability": "mutable", "name": "asset_decimals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 893, - "src": "6142:20:1", + "scope": 896, + "src": "6204:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20854,10 +22114,10 @@ "typeString": "uint8" }, "typeName": { - "id": 877, + "id": 880, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6142:5:1", + "src": "6204:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20867,21 +22127,21 @@ "visibility": "internal" } ], - "id": 883, + "id": 886, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "313033", - "id": 881, + "id": 884, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6178:3:1", + "src": "6240:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_103_by_1", @@ -20899,18 +22159,18 @@ ], "expression": { "argumentTypes": null, - "id": 879, + "id": 882, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "6165:4:1", + "referencedDeclaration": 794, + "src": "6227:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 880, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -20918,13 +22178,13 @@ "memberName": "toUint8", "nodeType": "MemberAccess", "referencedDeclaration": 109, - "src": "6165:12:1", + "src": "6227: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": 882, + "id": 885, "isConstant": false, "isLValue": false, "isPure": false, @@ -20932,7 +22192,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6165:17:1", + "src": "6227:17:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -20940,24 +22200,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6142:40:1" + "src": "6204:40:1" }, { "expression": { "argumentTypes": null, - "id": 891, + "id": 894, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 884, + "id": 887, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "6200:13:1", + "referencedDeclaration": 869, + "src": "6262:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20970,12 +22230,12 @@ "arguments": [ { "argumentTypes": null, - "id": 886, + "id": 889, "name": "asset_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 856, - "src": "6235:8:1", + "referencedDeclaration": 859, + "src": "6297:8:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -20983,12 +22243,12 @@ }, { "argumentTypes": null, - "id": 887, + "id": 890, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "6245:11:1", + "referencedDeclaration": 821, + "src": "6307:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20996,12 +22256,12 @@ }, { "argumentTypes": null, - "id": 888, + "id": 891, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "6258:13:1", + "referencedDeclaration": 852, + "src": "6320:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21009,12 +22269,12 @@ }, { "argumentTypes": null, - "id": 889, + "id": 892, "name": "asset_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "6273:14:1", + "referencedDeclaration": 881, + "src": "6335:14:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -21040,18 +22300,18 @@ "typeString": "uint8" } ], - "id": 885, + "id": 888, "name": "deployWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, - "src": "6216:18:1", + "referencedDeclaration": 970, + "src": "6278:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_uint8_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,uint8) returns (address)" } }, - "id": 890, + "id": 893, "isConstant": false, "isLValue": false, "isPure": false, @@ -21059,22 +22319,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6216:72:1", + "src": "6278:72:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6200:88:1", + "src": "6262:88:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 892, + "id": 895, "nodeType": "ExpressionStatement", - "src": "6200:88:1" + "src": "6262:88:1" } ] } @@ -21085,12 +22345,12 @@ "arguments": [ { "argumentTypes": null, - "id": 899, + "id": 902, "name": "target_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "6350:14:1", + "referencedDeclaration": 812, + "src": "6412:14:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21098,12 +22358,12 @@ }, { "argumentTypes": null, - "id": 900, + "id": 903, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 825, - "src": "6366:6:1", + "referencedDeclaration": 828, + "src": "6428:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21126,12 +22386,12 @@ "arguments": [ { "argumentTypes": null, - "id": 896, + "id": 899, "name": "wrapped_asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "6330:13:1", + "referencedDeclaration": 869, + "src": "6392:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21145,18 +22405,18 @@ "typeString": "address" } ], - "id": 895, + "id": 898, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "6317:12:1", + "referencedDeclaration": 1811, + "src": "6379:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 897, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, @@ -21164,28 +22424,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6317:27:1", + "src": "6379:27:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 898, + "id": 901, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 1270, - "src": "6317:32:1", + "referencedDeclaration": 1349, + "src": "6379:32:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 901, + "id": 904, "isConstant": false, "isLValue": false, "isPure": false, @@ -21193,16 +22453,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6317:56:1", + "src": "6379:56:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 902, + "id": 905, "nodeType": "ExpressionStatement", - "src": "6317:56:1" + "src": "6379:56:1" } ] } @@ -21210,7 +22470,7 @@ ] }, "documentation": null, - "id": 924, + "id": 927, "implemented": true, "kind": "function", "modifiers": [], @@ -21218,18 +22478,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 792, + "id": 795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 791, + "id": 794, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 924, - "src": "5115:17:1", + "scope": 927, + "src": "5177:17:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -21237,10 +22497,10 @@ "typeString": "bytes" }, "typeName": { - "id": 790, + "id": 793, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5115:5:1", + "src": "5177:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -21250,40 +22510,40 @@ "visibility": "internal" } ], - "src": "5114:19:1" + "src": "5176:19:1" }, "returnParameters": { - "id": 793, + "id": 796, "nodeType": "ParameterList", "parameters": [], - "src": "5142:0:1" + "src": "5204:0:1" }, - "scope": 1175, - "src": "5094:1447:1", + "scope": 1254, + "src": "5156:1447:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 966, + "id": 969, "nodeType": "Block", - "src": "6678:808:1", + "src": "6740:808:1", "statements": [ { "assignments": [ - 938 + 941 ], "declarations": [ { "constant": false, - "id": 938, + "id": 941, "mutability": "mutable", "name": "targetBytes", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 966, - "src": "6856:19:1", + "scope": 969, + "src": "6918:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21291,10 +22551,10 @@ "typeString": "bytes20" }, "typeName": { - "id": 937, + "id": 940, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6856:7:1", + "src": "6918:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes20", "typeString": "bytes20" @@ -21304,18 +22564,18 @@ "visibility": "internal" } ], - "id": 943, + "id": 946, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 941, + "id": 944, "name": "wrappedAssetMaster", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "6886:18:1", + "referencedDeclaration": 359, + "src": "6948:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21329,29 +22589,29 @@ "typeString": "address" } ], - "id": 940, + "id": 943, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6878:7:1", + "src": "6940:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 939, + "id": 942, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6878:7:1", + "src": "6940:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 942, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -21359,7 +22619,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6878:27:1", + "src": "6940:27:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -21367,22 +22627,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6856:49:1" + "src": "6918:49:1" }, { "AST": { "nodeType": "YulBlock", - "src": "6924:348:1", + "src": "6986:348:1", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "6938:24:1", + "src": "7000:24:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "6957:4:1", + "src": "7019:4:1", "type": "", "value": "0x40" } @@ -21390,16 +22650,16 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "6951:5:1" + "src": "7013:5:1" }, "nodeType": "YulFunctionCall", - "src": "6951:11:1" + "src": "7013:11:1" }, "variables": [ { "name": "clone", "nodeType": "YulTypedName", - "src": "6942:5:1", + "src": "7004:5:1", "type": "" } ] @@ -21410,12 +22670,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "6982:5:1" + "src": "7044:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "6989:66:1", + "src": "7051:66:1", "type": "", "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" } @@ -21423,13 +22683,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "6975:6:1" + "src": "7037:6:1" }, "nodeType": "YulFunctionCall", - "src": "6975:81:1" + "src": "7037:81:1" }, "nodeType": "YulExpressionStatement", - "src": "6975:81:1" + "src": "7037:81:1" }, { "expression": { @@ -21439,12 +22699,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "7080:5:1" + "src": "7142:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7087:4:1", + "src": "7149:4:1", "type": "", "value": "0x14" } @@ -21452,27 +22712,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7076:3:1" + "src": "7138:3:1" }, "nodeType": "YulFunctionCall", - "src": "7076:16:1" + "src": "7138:16:1" }, { "name": "targetBytes", "nodeType": "YulIdentifier", - "src": "7094:11:1" + "src": "7156:11:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7069:6:1" + "src": "7131:6:1" }, "nodeType": "YulFunctionCall", - "src": "7069:37:1" + "src": "7131:37:1" }, "nodeType": "YulExpressionStatement", - "src": "7069:37:1" + "src": "7131:37:1" }, { "expression": { @@ -21482,12 +22742,12 @@ { "name": "clone", "nodeType": "YulIdentifier", - "src": "7130:5:1" + "src": "7192:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7137:4:1", + "src": "7199:4:1", "type": "", "value": "0x28" } @@ -21495,15 +22755,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "7126:3:1" + "src": "7188:3:1" }, "nodeType": "YulFunctionCall", - "src": "7126:16:1" + "src": "7188:16:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7144:66:1", + "src": "7206:66:1", "type": "", "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" } @@ -21511,57 +22771,57 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "7119:6:1" + "src": "7181:6:1" }, "nodeType": "YulFunctionCall", - "src": "7119:92:1" + "src": "7181:92:1" }, "nodeType": "YulExpressionStatement", - "src": "7119:92:1" + "src": "7181:92:1" }, { "nodeType": "YulAssignment", - "src": "7224:38:1", + "src": "7286:38:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "7241:1:1", + "src": "7303:1:1", "type": "", "value": "0" }, { "name": "clone", "nodeType": "YulIdentifier", - "src": "7244:5:1" + "src": "7306:5:1" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "7251:4:1", + "src": "7313:4:1", "type": "", "value": "0x37" }, { "name": "seed", "nodeType": "YulIdentifier", - "src": "7257:4:1" + "src": "7319:4:1" } ], "functionName": { "name": "create2", "nodeType": "YulIdentifier", - "src": "7233:7:1" + "src": "7295:7:1" }, "nodeType": "YulFunctionCall", - "src": "7233:29:1" + "src": "7295:29:1" }, "variableNames": [ { "name": "asset", "nodeType": "YulIdentifier", - "src": "7224:5:1" + "src": "7286:5:1" } ] } @@ -21569,31 +22829,31 @@ }, "evmVersion": "istanbul", "externalReferences": [ - { - "declaration": 935, - "isOffset": false, - "isSlot": false, - "src": "7224:5:1", - "valueSize": 1 - }, - { - "declaration": 926, - "isOffset": false, - "isSlot": false, - "src": "7257:4:1", - "valueSize": 1 - }, { "declaration": 938, "isOffset": false, "isSlot": false, - "src": "7094:11:1", + "src": "7286:5:1", + "valueSize": 1 + }, + { + "declaration": 929, + "isOffset": false, + "isSlot": false, + "src": "7319:4:1", + "valueSize": 1 + }, + { + "declaration": 941, + "isOffset": false, + "isSlot": false, + "src": "7156:11:1", "valueSize": 1 } ], - "id": 944, + "id": 947, "nodeType": "InlineAssembly", - "src": "6915:357:1" + "src": "6977:357:1" }, { "expression": { @@ -21601,12 +22861,12 @@ "arguments": [ { "argumentTypes": null, - "id": 949, + "id": 952, "name": "token_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7341:11:1", + "referencedDeclaration": 931, + "src": "7403:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -21614,12 +22874,12 @@ }, { "argumentTypes": null, - "id": 950, + "id": 953, "name": "token_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "7354:13:1", + "referencedDeclaration": 933, + "src": "7416:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21627,12 +22887,12 @@ }, { "argumentTypes": null, - "id": 951, + "id": 954, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 932, - "src": "7369:8:1", + "referencedDeclaration": 935, + "src": "7431:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -21659,12 +22919,12 @@ "arguments": [ { "argumentTypes": null, - "id": 946, + "id": 949, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "7323:5:1", + "referencedDeclaration": 938, + "src": "7385:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21678,18 +22938,18 @@ "typeString": "address" } ], - "id": 945, + "id": 948, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7310:12:1", + "referencedDeclaration": 1811, + "src": "7372:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 947, + "id": 950, "isConstant": false, "isLValue": false, "isPure": false, @@ -21697,28 +22957,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7310:19:1", + "src": "7372:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 948, + "id": 951, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "initialize", "nodeType": "MemberAccess", - "referencedDeclaration": 1249, - "src": "7310:30:1", + "referencedDeclaration": 1328, + "src": "7372:30:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$_t_uint8_$returns$__$", "typeString": "function (uint8,bytes32,uint8) external" } }, - "id": 952, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, @@ -21726,21 +22986,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7310:68:1", + "src": "7372:68:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 953, + "id": 956, "nodeType": "ExpressionStatement", - "src": "7310:68:1" + "src": "7372:68:1" }, { "expression": { "argumentTypes": null, - "id": 958, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -21749,26 +23009,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 954, + "id": 957, "name": "wrappedAssets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "7414:13:1", + "referencedDeclaration": 411, + "src": "7476:13:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 956, + "id": 959, "indexExpression": { "argumentTypes": null, - "id": 955, + "id": 958, "name": "seed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 926, - "src": "7428:4:1", + "referencedDeclaration": 929, + "src": "7490:4:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21779,7 +23039,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7414:19:1", + "src": "7476:19:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21789,31 +23049,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 957, + "id": 960, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "7436:5:1", + "referencedDeclaration": 938, + "src": "7498:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7414:27:1", + "src": "7476:27:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 959, + "id": 962, "nodeType": "ExpressionStatement", - "src": "7414:27:1" + "src": "7476:27:1" }, { "expression": { "argumentTypes": null, - "id": 964, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -21822,26 +23082,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 960, + "id": 963, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7451:14:1", + "referencedDeclaration": 415, + "src": "7513:14:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 962, + "id": 965, "indexExpression": { "argumentTypes": null, - "id": 961, + "id": 964, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "7466:5:1", + "referencedDeclaration": 938, + "src": "7528:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21852,7 +23112,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7451:21:1", + "src": "7513:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21863,14 +23123,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 963, + "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7475:4:1", + "src": "7537:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -21878,20 +23138,20 @@ }, "value": "true" }, - "src": "7451:28:1", + "src": "7513:28:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 965, + "id": 968, "nodeType": "ExpressionStatement", - "src": "7451:28:1" + "src": "7513:28:1" } ] }, "documentation": null, - "id": 967, + "id": 970, "implemented": true, "kind": "function", "modifiers": [], @@ -21899,18 +23159,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 933, + "id": 936, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 926, + "id": 929, "mutability": "mutable", "name": "seed", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6575:12:1", + "scope": 970, + "src": "6637:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21918,10 +23178,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 925, + "id": 928, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6575:7:1", + "src": "6637:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21932,13 +23192,13 @@ }, { "constant": false, - "id": 928, + "id": 931, "mutability": "mutable", "name": "token_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6589:17:1", + "scope": 970, + "src": "6651:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21946,10 +23206,10 @@ "typeString": "uint8" }, "typeName": { - "id": 927, + "id": 930, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6589:5:1", + "src": "6651:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -21960,13 +23220,13 @@ }, { "constant": false, - "id": 930, + "id": 933, "mutability": "mutable", "name": "token_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6608:21:1", + "scope": 970, + "src": "6670:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21974,10 +23234,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 929, + "id": 932, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6608:7:1", + "src": "6670:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -21988,13 +23248,13 @@ }, { "constant": false, - "id": 932, + "id": 935, "mutability": "mutable", "name": "decimals", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6631:14:1", + "scope": 970, + "src": "6693:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22002,10 +23262,10 @@ "typeString": "uint8" }, "typeName": { - "id": 931, + "id": 934, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6631:5:1", + "src": "6693:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -22015,21 +23275,21 @@ "visibility": "internal" } ], - "src": "6574:72:1" + "src": "6636:72:1" }, "returnParameters": { - "id": 936, + "id": 939, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 935, + "id": 938, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 967, - "src": "6664:13:1", + "scope": 970, + "src": "6726:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22037,10 +23297,10 @@ "typeString": "address" }, "typeName": { - "id": 934, + "id": 937, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6664:7:1", + "src": "6726:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22051,19 +23311,19 @@ "visibility": "internal" } ], - "src": "6663:15:1" + "src": "6725:15:1" }, - "scope": 1175, - "src": "6547:939:1", + "scope": 1254, + "src": "6609:939:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "body": { - "id": 1103, + "id": 1182, "nodeType": "Block", - "src": "7662:1059:1", + "src": "7750:1642:1", "statements": [ { "expression": { @@ -22075,19 +23335,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 985, + "id": 990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 983, + "id": 988, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "7680:6:1", + "referencedDeclaration": 974, + "src": "7768:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22098,14 +23358,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 984, + "id": 989, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7690:1:1", + "src": "7778:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22113,7 +23373,7 @@ }, "value": "0" }, - "src": "7680:11:1", + "src": "7768:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22122,14 +23382,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 986, + "id": 991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7693:22:1", + "src": "7781:22:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -22149,7 +23409,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 982, + "id": 987, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -22157,13 +23417,13 @@ -18 ], "referencedDeclaration": -18, - "src": "7672:7:1", + "src": "7760:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 987, + "id": 992, "isConstant": false, "isLValue": false, "isPure": false, @@ -22171,31 +23431,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7672:44:1", + "src": "7760:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 988, + "id": 993, "nodeType": "ExpressionStatement", - "src": "7672:44:1" + "src": "7760:44:1" }, { "assignments": [ - 990 + 995 ], "declarations": [ { "constant": false, - "id": 990, + "id": 995, "mutability": "mutable", "name": "asset_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1103, - "src": "7727:17:1", + "scope": 1182, + "src": "7815:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22203,10 +23463,10 @@ "typeString": "uint8" }, "typeName": { - "id": 989, + "id": 994, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7727:5:1", + "src": "7815:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -22216,37 +23476,37 @@ "visibility": "internal" } ], - "id": 992, + "id": 997, "initialValue": { "argumentTypes": null, - "id": 991, + "id": 996, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "7747:8:1", + "referencedDeclaration": 362, + "src": "7835:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "7727:28:1" + "src": "7815:28:1" }, { "assignments": [ - 994 + 999 ], "declarations": [ { "constant": false, - "id": 994, + "id": 999, "mutability": "mutable", "name": "asset_address", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1103, - "src": "7765:21:1", + "scope": 1182, + "src": "7853:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22254,10 +23514,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 993, + "id": 998, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7765:7:1", + "src": "7853:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -22267,36 +23527,158 @@ "visibility": "internal" } ], - "id": 995, + "id": 1000, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "7765:21:1" + "src": "7853:21:1" + }, + { + "assignments": [ + 1002 + ], + "declarations": [ + { + "constant": false, + "id": 1002, + "mutability": "mutable", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1182, + "src": "7884:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1001, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1008, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1004, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 972, + "src": "7907:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1003, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2537, + "src": "7901:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$2537_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7901:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$2537", + "typeString": "contract ERC20" + } + }, + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 2113, + "src": "7901:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7901:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7884:40:1" }, { "condition": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 996, + "id": 1009, "name": "isWrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 412, - "src": "7800:14:1", + "referencedDeclaration": 415, + "src": "7939:14:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 998, + "id": 1011, "indexExpression": { "argumentTypes": null, - "id": 997, + "id": 1010, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "7815:5:1", + "referencedDeclaration": 972, + "src": "7954:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22307,31 +23689,31 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7800:21:1", + "src": "7939:21:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1079, + "id": 1162, "nodeType": "Block", - "src": "8022:539:1", + "src": "8161:1086:1", "statements": [ { "assignments": [ - 1026 + 1039 ], "declarations": [ { "constant": false, - "id": 1026, + "id": 1039, "mutability": "mutable", "name": "balanceBefore", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1079, - "src": "8036:21:1", + "scope": 1162, + "src": "8175:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22339,10 +23721,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1025, + "id": 1038, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8036:7:1", + "src": "8175:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22352,7 +23734,7 @@ "visibility": "internal" } ], - "id": 1036, + "id": 1049, "initialValue": { "argumentTypes": null, "arguments": [ @@ -22361,14 +23743,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1033, + "id": 1046, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "8092:4:1", + "src": "8231:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1175", + "typeIdentifier": "t_contract$_Wormhole_$1254", "typeString": "contract Wormhole" } } @@ -22376,33 +23758,33 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1175", + "typeIdentifier": "t_contract$_Wormhole_$1254", "typeString": "contract Wormhole" } ], - "id": 1032, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8084:7:1", + "src": "8223:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1031, + "id": 1044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8084:7:1", + "src": "8223:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1034, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, @@ -22410,7 +23792,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8084:13:1", + "src": "8223:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -22430,12 +23812,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1028, + "id": 1041, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8067:5:1", + "referencedDeclaration": 972, + "src": "8206:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22449,249 +23831,44 @@ "typeString": "address" } ], - "id": 1027, + "id": 1040, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "8060:6:1", + "referencedDeclaration": 2615, + "src": "8199:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2536_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2615_$", "typeString": "type(contract IERC20)" } }, - "id": 1029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8060:13:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", - "typeString": "contract IERC20" - } - }, - "id": 1030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "8060:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8060:38:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8036:62:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1041, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8143:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, "id": 1042, "isConstant": false, "isLValue": false, "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8143:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1045, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "8163:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1175", - "typeString": "contract Wormhole" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Wormhole_$1175", - "typeString": "contract Wormhole" - } - ], - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1043, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8155:7:1", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1046, - "isConstant": false, - "isLValue": false, - "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8155:13:1", + "src": "8199:13:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1047, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "8170:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1038, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8119:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1037, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "8112:6:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2536_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 1039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8112:13:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } }, - "id": 1040, + "id": 1043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "safeTransferFrom", + "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 2595, - "src": "8112:30:1", + "referencedDeclaration": 2554, + "src": "8199:23:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2536_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2536_$", - "typeString": "function (contract IERC20,address,address,uint256)" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, "id": 1048, @@ -22702,55 +23879,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8112:65:1", + "src": "8199:38:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1049, - "nodeType": "ExpressionStatement", - "src": "8112:65:1" + "nodeType": "VariableDeclarationStatement", + "src": "8175:62:1" }, { - "assignments": [ - 1051 - ], - "declarations": [ - { - "constant": false, - "id": 1051, - "mutability": "mutable", - "name": "balanceAfter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1079, - "src": "8191:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1050, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1061, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1054, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8282:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8282:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, { "argumentTypes": null, "arguments": [ @@ -22761,9 +23932,9 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, - "src": "8246:4:1", + "src": "8302:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Wormhole_$1175", + "typeIdentifier": "t_contract$_Wormhole_$1254", "typeString": "contract Wormhole" } } @@ -22771,7 +23942,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Wormhole_$1175", + "typeIdentifier": "t_contract$_Wormhole_$1254", "typeString": "contract Wormhole" } ], @@ -22781,7 +23952,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8238:7:1", + "src": "8294:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -22790,7 +23961,7 @@ "id": 1056, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8238:7:1", + "src": "8294:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null @@ -22805,7 +23976,218 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8238:13:1", + "src": "8294:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1060, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "8309:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1051, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 972, + "src": "8258:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1050, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "8251:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$2615_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8251:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$2615", + "typeString": "contract IERC20" + } + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 2674, + "src": "8251:30:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2615_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2615_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8251:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1062, + "nodeType": "ExpressionStatement", + "src": "8251:65:1" + }, + { + "assignments": [ + 1064 + ], + "declarations": [ + { + "constant": false, + "id": 1064, + "mutability": "mutable", + "name": "balanceAfter", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1162, + "src": "8330:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8330:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1074, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1071, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8385:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Wormhole_$1254", + "typeString": "contract Wormhole" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Wormhole_$1254", + "typeString": "contract Wormhole" + } + ], + "id": 1070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8377:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8377:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8377:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -22825,12 +24207,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1053, + "id": 1066, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8221:5:1", + "referencedDeclaration": 972, + "src": "8360:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22844,18 +24226,18 @@ "typeString": "address" } ], - "id": 1052, + "id": 1065, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2536, - "src": "8214:6:1", + "referencedDeclaration": 2615, + "src": "8353:6:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$2536_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$2615_$", "typeString": "type(contract IERC20)" } }, - "id": 1054, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -22863,28 +24245,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8214:13:1", + "src": "8353:13:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } }, - "id": 1055, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "8214:23:1", + "referencedDeclaration": 2554, + "src": "8353:23:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1060, + "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, @@ -22892,7 +24274,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8214:38:1", + "src": "8353:38:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22900,24 +24282,24 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8191:61:1" + "src": "8330:61:1" }, { "expression": { "argumentTypes": null, - "id": 1067, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1062, + "id": 1075, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "8457:6:1", + "referencedDeclaration": 974, + "src": "8596:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22930,12 +24312,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1065, + "id": 1078, "name": "balanceBefore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1026, - "src": "8483:13:1", + "referencedDeclaration": 1039, + "src": "8622:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22951,32 +24333,32 @@ ], "expression": { "argumentTypes": null, - "id": 1063, + "id": 1076, "name": "balanceAfter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "8466:12:1", + "referencedDeclaration": 1064, + "src": "8605:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1064, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1801, - "src": "8466:16:1", + "referencedDeclaration": 1880, + "src": "8605: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": 1066, + "id": 1079, "isConstant": false, "isLValue": false, "isPure": false, @@ -22984,39 +24366,1125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8466:31:1", + "src": "8605:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8457:40:1", + "src": "8596:40:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1068, + "id": 1081, "nodeType": "ExpressionStatement", - "src": "8457:40:1" + "src": "8596:40:1" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1082, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "8711:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "39", + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8722:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "8711:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1130, + "nodeType": "IfStatement", + "src": "8707:339:1", + "trueBody": { + "id": 1129, + "nodeType": "Block", + "src": "8725:321:1", + "statements": [ + { + "assignments": [ + 1086 + ], + "declarations": [ + { + "constant": false, + "id": 1086, + "mutability": "mutable", + "name": "original_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1129, + "src": "8743:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1085, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1088, + "initialValue": { + "argumentTypes": null, + "id": 1087, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "8769:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8743:32:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1089, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "8793:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8813:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1095, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "8827:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "39", + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8838:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "8827:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1093, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8819:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8819:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8813:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1090, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "8802:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 1960, + "src": "8802:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8802:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8793:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1102, + "nodeType": "ExpressionStatement", + "src": "8793:48:1" + }, + { + "condition": { + "argumentTypes": null, + "id": 1103, + "name": "refund_dust", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 982, + "src": "8864:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1124, + "nodeType": "IfStatement", + "src": "8860:141:1", + "trueBody": { + "id": 1123, + "nodeType": "Block", + "src": "8877:124:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1108, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8953:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1115, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "8967:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "39", + "id": 1116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8978:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "8967:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8959:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8959:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8959:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8953:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1110, + "name": "original_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1086, + "src": "8933:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mod", + "nodeType": "MemberAccess", + "referencedDeclaration": 2005, + "src": "8933:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8933:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1105, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 972, + "src": "8905:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1104, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2537, + "src": "8899:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$2537_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8899:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$2537", + "typeString": "contract ERC20" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 2158, + "src": "8899:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8899:83:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1122, + "nodeType": "ExpressionStatement", + "src": "8899:83:1" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1125, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "9019:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "39", + "id": 1126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9030:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "9019:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "9019:12:1" + } + ] + } }, { "expression": { "argumentTypes": null, - "id": 1077, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9085:2:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1138, + "name": "asset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 972, + "src": "9105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1137, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2537, + "src": "9099:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$2537_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 1139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9099:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$2537", + "typeString": "contract ERC20" + } + }, + "id": 1140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 2113, + "src": "9099:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 1141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9099:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "39", + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9125:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "9099:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9091:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9091:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9091:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9085:42:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1132, + "name": "balanceAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "9068:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 1960, + "src": "9068: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": 1146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9068:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1147, + "name": "MAX_UINT64", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 357, + "src": "9132:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "9068:74:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6272696467652062616c616e636520776f756c6420657863656564206d6178696d756d", + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9144:37:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4", + "typeString": "literal_string \"bridge balance would exceed maximum\"" + }, + "value": "bridge balance would exceed maximum" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_173119466b5178b8ca47cb473e247f7a9a678958b1d751b4cef80e7a8162cdd4", + "typeString": "literal_string \"bridge balance would exceed maximum\"" + } + ], + "id": 1131, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9060:122:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1151, + "nodeType": "ExpressionStatement", + "src": "9060:122:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1069, + "id": 1152, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8511:13:1", + "referencedDeclaration": 999, + "src": "9197:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23032,12 +25500,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1074, + "id": 1157, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8543:5:1", + "referencedDeclaration": 972, + "src": "9229:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23051,29 +25519,29 @@ "typeString": "address" } ], - "id": 1073, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8535:7:1", + "src": "9221:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1072, + "id": 1155, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8535:7:1", + "src": "9221:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1075, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -23081,7 +25549,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8535:14:1", + "src": "9221:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23096,29 +25564,29 @@ "typeString": "uint256" } ], - "id": 1071, + "id": 1154, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8527:7:1", + "src": "9213:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1070, + "id": 1153, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8527:7:1", + "src": "9213:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1076, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": false, @@ -23126,32 +25594,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8527:23:1", + "src": "9213:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8511:39:1", + "src": "9197:39:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1078, + "id": 1161, "nodeType": "ExpressionStatement", - "src": "8511:39:1" + "src": "9197:39:1" } ] }, - "id": 1080, + "id": 1163, "nodeType": "IfStatement", - "src": "7796:765:1", + "src": "7935:1312:1", "trueBody": { - "id": 1024, + "id": 1037, "nodeType": "Block", - "src": "7823:193:1", + "src": "7962:193:1", "statements": [ { "expression": { @@ -23161,18 +25629,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1003, + "id": 1016, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "7862:3:1", + "src": "8001:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1004, + "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, @@ -23180,7 +25648,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7862:10:1", + "src": "8001:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -23188,12 +25656,12 @@ }, { "argumentTypes": null, - "id": 1005, + "id": 1018, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "7874:6:1", + "referencedDeclaration": 974, + "src": "8013:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23216,12 +25684,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1000, + "id": 1013, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "7850:5:1", + "referencedDeclaration": 972, + "src": "7989:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23235,18 +25703,18 @@ "typeString": "address" } ], - "id": 999, + "id": 1012, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7837:12:1", + "referencedDeclaration": 1811, + "src": "7976:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1001, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -23254,28 +25722,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7837:19:1", + "src": "7976:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 1002, + "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "burn", "nodeType": "MemberAccess", - "referencedDeclaration": 1291, - "src": "7837:24:1", + "referencedDeclaration": 1370, + "src": "7976:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, - "id": 1006, + "id": 1019, "isConstant": false, "isLValue": false, "isPure": false, @@ -23283,33 +25751,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7837:44:1", + "src": "7976:44:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1007, + "id": 1020, "nodeType": "ExpressionStatement", - "src": "7837:44:1" + "src": "7976:44:1" }, { "expression": { "argumentTypes": null, - "id": 1014, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1008, + "id": 1021, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 990, - "src": "7895:11:1", + "referencedDeclaration": 995, + "src": "8034:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -23327,12 +25795,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1010, + "id": 1023, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "7922:5:1", + "referencedDeclaration": 972, + "src": "8061:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23346,18 +25814,18 @@ "typeString": "address" } ], - "id": 1009, + "id": 1022, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7909:12:1", + "referencedDeclaration": 1811, + "src": "8048:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1011, + "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, @@ -23365,28 +25833,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7909:19:1", + "src": "8048:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 1012, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "assetChain", "nodeType": "MemberAccess", - "referencedDeclaration": 1198, - "src": "7909:30:1", + "referencedDeclaration": 1277, + "src": "8048:30:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 1013, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, @@ -23394,39 +25862,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7909:32:1", + "src": "8048:32:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "7895:46:1", + "src": "8034:46:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1015, + "id": 1028, "nodeType": "ExpressionStatement", - "src": "7895:46:1" + "src": "8034:46:1" }, { "expression": { "argumentTypes": null, - "id": 1022, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1016, + "id": 1029, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "7955:13:1", + "referencedDeclaration": 999, + "src": "8094:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23444,12 +25912,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1018, + "id": 1031, "name": "asset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "7984:5:1", + "referencedDeclaration": 972, + "src": "8123:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23463,18 +25931,18 @@ "typeString": "address" } ], - "id": 1017, + "id": 1030, "name": "WrappedAsset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1732, - "src": "7971:12:1", + "referencedDeclaration": 1811, + "src": "8110:12:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1732_$", + "typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1811_$", "typeString": "type(contract WrappedAsset)" } }, - "id": 1019, + "id": 1032, "isConstant": false, "isLValue": false, "isPure": false, @@ -23482,28 +25950,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7971:19:1", + "src": "8110:19:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WrappedAsset_$1732", + "typeIdentifier": "t_contract$_WrappedAsset_$1811", "typeString": "contract WrappedAsset" } }, - "id": 1020, + "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "assetAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1200, - "src": "7971:32:1", + "referencedDeclaration": 1279, + "src": "8110:32:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$", "typeString": "function () view external returns (bytes32)" } }, - "id": 1021, + "id": 1034, "isConstant": false, "isLValue": false, "isPure": false, @@ -23511,22 +25979,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7971:34:1", + "src": "8110:34:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7955:50:1", + "src": "8094:50:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1023, + "id": 1036, "nodeType": "ExpressionStatement", - "src": "7955:50:1" + "src": "8094:50:1" } ] } @@ -23537,12 +26005,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1082, + "id": 1165, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "8592:12:1", + "referencedDeclaration": 978, + "src": "9278:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -23550,12 +26018,12 @@ }, { "argumentTypes": null, - "id": 1083, + "id": 1166, "name": "asset_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 990, - "src": "8606:11:1", + "referencedDeclaration": 995, + "src": "9292:11:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -23563,83 +26031,12 @@ }, { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1085, - "name": "asset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 969, - "src": "8625:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1084, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2458, - "src": "8619:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$2458_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8619:12:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$2458", - "typeString": "contract ERC20" - } - }, - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 2034, - "src": "8619:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 1088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8619:23:1", - "tryCall": false, + "id": 1167, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "9305:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -23647,12 +26044,12 @@ }, { "argumentTypes": null, - "id": 1089, + "id": 1168, "name": "asset_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "8644:13:1", + "referencedDeclaration": 999, + "src": "9315:13:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23668,18 +26065,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1094, + "id": 1173, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8675:3:1", + "src": "9346:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1095, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": false, @@ -23687,7 +26084,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8675:10:1", + "src": "9346:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -23701,29 +26098,29 @@ "typeString": "address payable" } ], - "id": 1093, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8667:7:1", + "src": "9338:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1092, + "id": 1171, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8667:7:1", + "src": "9338:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1096, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, @@ -23731,7 +26128,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8667:19:1", + "src": "9338:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23746,29 +26143,29 @@ "typeString": "uint256" } ], - "id": 1091, + "id": 1170, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8659:7:1", + "src": "9330:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1090, + "id": 1169, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8659:7:1", + "src": "9330:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1097, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, @@ -23776,7 +26173,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8659:28:1", + "src": "9330:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -23785,12 +26182,12 @@ }, { "argumentTypes": null, - "id": 1098, + "id": 1177, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "8689:9:1", + "referencedDeclaration": 976, + "src": "9360:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23798,12 +26195,12 @@ }, { "argumentTypes": null, - "id": 1099, + "id": 1178, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "8700:6:1", + "referencedDeclaration": 974, + "src": "9371:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23811,12 +26208,12 @@ }, { "argumentTypes": null, - "id": 1100, + "id": 1179, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 977, - "src": "8708:5:1", + "referencedDeclaration": 980, + "src": "9379:5:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23858,18 +26255,18 @@ "typeString": "uint32" } ], - "id": 1081, + "id": 1164, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 392, - "src": "8576:15:1", + "referencedDeclaration": 395, + "src": "9262:15:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$", "typeString": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)" } }, - "id": 1101, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": false, @@ -23877,61 +26274,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8576:138:1", + "src": "9262:123:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1102, + "id": 1181, "nodeType": "EmitStatement", - "src": "8571:143:1" + "src": "9257:128:1" } ] }, "documentation": null, - "functionSelector": "13cca1a9", - "id": 1104, + "functionSelector": "70713960", + "id": 1183, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 980, + "id": 985, "modifierName": { "argumentTypes": null, - "id": 979, + "id": 984, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "7649:12:1", + "referencedDeclaration": 3071, + "src": "7737:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7649:12:1" + "src": "7737:12:1" } ], "name": "lockAssets", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 978, + "id": 983, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 969, + "id": 972, "mutability": "mutable", "name": "asset", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7521:13:1", + "scope": 1183, + "src": "7583:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23939,10 +26336,10 @@ "typeString": "address" }, "typeName": { - "id": 968, + "id": 971, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7521:7:1", + "src": "7583:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -23954,13 +26351,13 @@ }, { "constant": false, - "id": 971, + "id": 974, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7544:14:1", + "scope": 1183, + "src": "7606:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23968,10 +26365,10 @@ "typeString": "uint256" }, "typeName": { - "id": 970, + "id": 973, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7544:7:1", + "src": "7606:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23982,13 +26379,13 @@ }, { "constant": false, - "id": 973, + "id": 976, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7568:17:1", + "scope": 1183, + "src": "7630:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23996,10 +26393,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 972, + "id": 975, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7568:7:1", + "src": "7630:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24010,13 +26407,13 @@ }, { "constant": false, - "id": 975, + "id": 978, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7595:18:1", + "scope": 1183, + "src": "7657:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24024,10 +26421,10 @@ "typeString": "uint8" }, "typeName": { - "id": 974, + "id": 977, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7595:5:1", + "src": "7657:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -24038,13 +26435,13 @@ }, { "constant": false, - "id": 977, + "id": 980, "mutability": "mutable", "name": "nonce", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1104, - "src": "7623:12:1", + "scope": 1183, + "src": "7685:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24052,10 +26449,10 @@ "typeString": "uint32" }, "typeName": { - "id": 976, + "id": 979, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7623:6:1", + "src": "7685:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -24063,27 +26460,55 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 982, + "mutability": "mutable", + "name": "refund_dust", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1183, + "src": "7707:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 981, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7707:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "7511:130:1" + "src": "7573:156:1" }, "returnParameters": { - "id": 981, + "id": 986, "nodeType": "ParameterList", "parameters": [], - "src": "7662:0:1" + "src": "7750:0:1" }, - "scope": 1175, - "src": "7492:1229:1", + "scope": 1254, + "src": "7554:1838:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1157, + "id": 1236, "nodeType": "Block", - "src": "8855:334:1", + "src": "9526:334:1", "statements": [ { "expression": { @@ -24095,7 +26520,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1119, + "id": 1198, "isConstant": false, "isLValue": false, "isPure": false, @@ -24104,18 +26529,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1116, + "id": 1195, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8873:3:1", + "src": "9544:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1117, + "id": 1196, "isConstant": false, "isLValue": false, "isPure": false, @@ -24123,7 +26548,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8873:9:1", + "src": "9544:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24134,14 +26559,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1118, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8886:1:1", + "src": "9557:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -24149,7 +26574,7 @@ }, "value": "0" }, - "src": "8873:14:1", + "src": "9544:14:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24158,14 +26583,14 @@ { "argumentTypes": null, "hexValue": "616d6f756e74206d757374206e6f742062652030", - "id": 1120, + "id": 1199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8889:22:1", + "src": "9560:22:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3", @@ -24185,7 +26610,7 @@ "typeString": "literal_string \"amount must not be 0\"" } ], - "id": 1115, + "id": 1194, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -24193,13 +26618,13 @@ -18 ], "referencedDeclaration": -18, - "src": "8865:7:1", + "src": "9536:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1121, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, @@ -24207,16 +26632,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8865:47:1", + "src": "9536:47:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1122, + "id": 1201, "nodeType": "ExpressionStatement", - "src": "8865:47:1" + "src": "9536:47:1" }, { "expression": { @@ -24231,12 +26656,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1124, + "id": 1203, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 362, - "src": "8961:11:1", + "referencedDeclaration": 365, + "src": "9632:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24250,18 +26675,18 @@ "typeString": "address" } ], - "id": 1123, + "id": 1202, "name": "WETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1186, - "src": "8956:4:1", + "referencedDeclaration": 1265, + "src": "9627:4:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WETH_$1186_$", + "typeIdentifier": "t_type$_t_contract$_WETH_$1265_$", "typeString": "type(contract WETH)" } }, - "id": 1125, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": true, @@ -24269,28 +26694,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8956:17:1", + "src": "9627:17:1", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_WETH_$1186", + "typeIdentifier": "t_contract$_WETH_$1265", "typeString": "contract WETH" } }, - "id": 1126, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": 1180, - "src": "8956:25:1", + "referencedDeclaration": 1259, + "src": "9627:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$", "typeString": "function () payable external" } }, - "id": 1129, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": false, @@ -24304,18 +26729,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1127, + "id": 1206, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "8990:3:1", + "src": "9661:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1128, + "id": 1207, "isConstant": false, "isLValue": false, "isPure": false, @@ -24323,20 +26748,20 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8990:9:1", + "src": "9661:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "8956:44:1", + "src": "9627:44:1", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 1130, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, @@ -24344,16 +26769,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8956:46:1", + "src": "9627:46:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1131, + "id": 1210, "nodeType": "ExpressionStatement", - "src": "8956:46:1" + "src": "9627:46:1" }, { "eventCall": { @@ -24361,12 +26786,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1133, + "id": 1212, "name": "target_chain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, - "src": "9065:12:1", + "referencedDeclaration": 1187, + "src": "9736:12:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -24374,12 +26799,12 @@ }, { "argumentTypes": null, - "id": 1134, + "id": 1213, "name": "CHAIN_ID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "9079:8:1", + "referencedDeclaration": 362, + "src": "9750:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -24388,14 +26813,14 @@ { "argumentTypes": null, "hexValue": "3138", - "id": 1135, + "id": 1214, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9089:2:1", + "src": "9760:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -24411,12 +26836,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1140, + "id": 1219, "name": "WETHAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 362, - "src": "9109:11:1", + "referencedDeclaration": 365, + "src": "9780:11:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24430,29 +26855,29 @@ "typeString": "address" } ], - "id": 1139, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9101:7:1", + "src": "9772:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1138, + "id": 1217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9101:7:1", + "src": "9772:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1141, + "id": 1220, "isConstant": false, "isLValue": false, "isPure": true, @@ -24460,7 +26885,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9101:20:1", + "src": "9772:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -24475,29 +26900,29 @@ "typeString": "uint256" } ], - "id": 1137, + "id": 1216, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9093:7:1", + "src": "9764:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1136, + "id": 1215, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9093:7:1", + "src": "9764:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1142, + "id": 1221, "isConstant": false, "isLValue": false, "isPure": true, @@ -24505,7 +26930,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9093:29:1", + "src": "9764:29:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -24522,18 +26947,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1147, + "id": 1226, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "9140:3:1", + "src": "9811:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1148, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, @@ -24541,7 +26966,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9140:10:1", + "src": "9811:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -24555,29 +26980,29 @@ "typeString": "address payable" } ], - "id": 1146, + "id": 1225, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9132:7:1", + "src": "9803:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1145, + "id": 1224, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9132:7:1", + "src": "9803:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1149, + "id": 1228, "isConstant": false, "isLValue": false, "isPure": false, @@ -24585,7 +27010,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9132:19:1", + "src": "9803:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -24600,29 +27025,29 @@ "typeString": "uint256" } ], - "id": 1144, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9124:7:1", + "src": "9795:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1143, + "id": 1222, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "9124:7:1", + "src": "9795:7:1", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, - "id": 1150, + "id": 1229, "isConstant": false, "isLValue": false, "isPure": false, @@ -24630,7 +27055,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9124:28:1", + "src": "9795:28:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -24639,12 +27064,12 @@ }, { "argumentTypes": null, - "id": 1151, + "id": 1230, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "9154:9:1", + "referencedDeclaration": 1185, + "src": "9825:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24654,18 +27079,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1152, + "id": 1231, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "9165:3:1", + "src": "9836:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1153, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, @@ -24673,7 +27098,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9165:9:1", + "src": "9836:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24681,12 +27106,12 @@ }, { "argumentTypes": null, - "id": 1154, + "id": 1233, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, - "src": "9176:5:1", + "referencedDeclaration": 1189, + "src": "9847:5:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -24728,18 +27153,18 @@ "typeString": "uint32" } ], - "id": 1132, + "id": 1211, "name": "LogTokensLocked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 392, - "src": "9049:15:1", + "referencedDeclaration": 395, + "src": "9720:15:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$", "typeString": "function (uint8,uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)" } }, - "id": 1155, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, @@ -24747,61 +27172,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9049:133:1", + "src": "9720:133:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1156, + "id": 1235, "nodeType": "EmitStatement", - "src": "9044:138:1" + "src": "9715:138:1" } ] }, "documentation": null, "functionSelector": "58d62e46", - "id": 1158, + "id": 1237, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 1113, + "id": 1192, "modifierName": { "argumentTypes": null, - "id": 1112, + "id": 1191, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "8842:12:1", + "referencedDeclaration": 3071, + "src": "9513:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8842:12:1" + "src": "9513:12:1" } ], "name": "lockETH", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1111, + "id": 1190, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1106, + "id": 1185, "mutability": "mutable", "name": "recipient", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1158, - "src": "8753:17:1", + "scope": 1237, + "src": "9424:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24809,10 +27234,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1105, + "id": 1184, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8753:7:1", + "src": "9424:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24823,13 +27248,13 @@ }, { "constant": false, - "id": 1108, + "id": 1187, "mutability": "mutable", "name": "target_chain", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1158, - "src": "8780:18:1", + "scope": 1237, + "src": "9451:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24837,10 +27262,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1107, + "id": 1186, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "8780:5:1", + "src": "9451:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -24851,13 +27276,13 @@ }, { "constant": false, - "id": 1110, + "id": 1189, "mutability": "mutable", "name": "nonce", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1158, - "src": "8808:12:1", + "scope": 1237, + "src": "9479:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24865,10 +27290,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1109, + "id": 1188, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8808:6:1", + "src": "9479:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -24878,25 +27303,25 @@ "visibility": "internal" } ], - "src": "8743:83:1" + "src": "9414:83:1" }, "returnParameters": { - "id": 1114, + "id": 1193, "nodeType": "ParameterList", "parameters": [], - "src": "8855:0:1" + "src": "9526:0:1" }, - "scope": 1175, - "src": "8727:462:1", + "scope": 1254, + "src": "9398:462:1", "stateMutability": "payable", "virtual": false, "visibility": "public" }, { "body": { - "id": 1165, + "id": 1244, "nodeType": "Block", - "src": "9220:57:1", + "src": "9894:57:1", "statements": [ { "expression": { @@ -24905,14 +27330,14 @@ { "argumentTypes": null, "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1162, + "id": 1241, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9228:46:1", + "src": "9902:46:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -24928,7 +27353,7 @@ "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\"" } ], - "id": 1161, + "id": 1240, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -24936,13 +27361,13 @@ -19 ], "referencedDeclaration": -19, - "src": "9221:6:1", + "src": "9895:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1163, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -24950,21 +27375,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9221:54:1", + "src": "9895:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1164, + "id": 1243, "nodeType": "ExpressionStatement", - "src": "9221:54:1" + "src": "9895:54:1" } ] }, "documentation": null, - "id": 1166, + "id": 1245, "implemented": true, "kind": "fallback", "modifiers": [], @@ -24972,28 +27397,28 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1159, + "id": 1238, "nodeType": "ParameterList", "parameters": [], - "src": "9200:2:1" + "src": "9874:2:1" }, "returnParameters": { - "id": 1160, + "id": 1239, "nodeType": "ParameterList", "parameters": [], - "src": "9220:0:1" + "src": "9894:0:1" }, - "scope": 1175, - "src": "9192:85:1", + "scope": 1254, + "src": "9866:85:1", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1173, + "id": 1252, "nodeType": "Block", - "src": "9305:57:1", + "src": "9984:57:1", "statements": [ { "expression": { @@ -25002,14 +27427,14 @@ { "argumentTypes": null, "hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61", - "id": 1170, + "id": 1249, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9313:46:1", + "src": "9992:46:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2", @@ -25025,7 +27450,7 @@ "typeString": "literal_string \"please use lockETH to transfer ETH to Solana\"" } ], - "id": 1169, + "id": 1248, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -25033,13 +27458,13 @@ -19 ], "referencedDeclaration": -19, - "src": "9306:6:1", + "src": "9985:6:1", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1171, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": false, @@ -25047,21 +27472,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9306:54:1", + "src": "9985:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1172, + "id": 1251, "nodeType": "ExpressionStatement", - "src": "9306:54:1" + "src": "9985:54:1" } ] }, "documentation": null, - "id": 1174, + "id": 1253, "implemented": true, "kind": "receive", "modifiers": [], @@ -25069,26 +27494,26 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1167, + "id": 1246, "nodeType": "ParameterList", "parameters": [], - "src": "9285:2:1" + "src": "9964:2:1" }, "returnParameters": { - "id": 1168, + "id": 1247, "nodeType": "ParameterList", "parameters": [], - "src": "9305:0:1" + "src": "9984:0:1" }, - "scope": 1175, - "src": "9278:84:1", + "scope": 1254, + "src": "9957:84:1", "stateMutability": "payable", "virtual": false, "visibility": "external" } ], - "scope": 1187, - "src": "502:8862:1" + "scope": 1266, + "src": "502:9541:1" }, { "abstract": false, @@ -25097,31 +27522,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1176, + "id": 1255, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, - "src": "9385:6:1", + "referencedDeclaration": 2615, + "src": "10064:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$2536", + "typeIdentifier": "t_contract$_IERC20_$2615", "typeString": "contract IERC20" } }, - "id": 1177, + "id": 1256, "nodeType": "InheritanceSpecifier", - "src": "9385:6:1" + "src": "10064:6:1" } ], "contractDependencies": [ - 2536 + 2615 ], "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 1186, + "id": 1265, "linearizedBaseContracts": [ - 1186, - 2536 + 1265, + 2615 ], "name": "WETH", "nodeType": "ContractDefinition", @@ -25130,7 +27555,7 @@ "body": null, "documentation": null, "functionSelector": "d0e30db0", - "id": 1180, + "id": 1259, "implemented": false, "kind": "function", "modifiers": [], @@ -25138,19 +27563,19 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1178, + "id": 1257, "nodeType": "ParameterList", "parameters": [], - "src": "9410:2:1" + "src": "10093:2:1" }, "returnParameters": { - "id": 1179, + "id": 1258, "nodeType": "ParameterList", "parameters": [], - "src": "9429:0:1" + "src": "10112:0:1" }, - "scope": 1186, - "src": "9394:36:1", + "scope": 1265, + "src": "10077:36:1", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -25159,7 +27584,7 @@ "body": null, "documentation": null, "functionSelector": "2e1a7d4d", - "id": 1185, + "id": 1264, "implemented": false, "kind": "function", "modifiers": [], @@ -25167,18 +27592,18 @@ "nodeType": "FunctionDefinition", "overrides": null, "parameters": { - "id": 1183, + "id": 1262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1182, + "id": 1261, "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", "overrides": null, - "scope": 1185, - "src": "9450:14:1", + "scope": 1264, + "src": "10137:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25186,10 +27611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1181, + "id": 1260, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9450:7:1", + "src": "10137:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25199,26 +27624,26 @@ "visibility": "internal" } ], - "src": "9449:16:1" + "src": "10136:16:1" }, "returnParameters": { - "id": 1184, + "id": 1263, "nodeType": "ParameterList", "parameters": [], - "src": "9474:0:1" + "src": "10161:0:1" }, - "scope": 1186, - "src": "9432:43:1", + "scope": 1265, + "src": "10119:43:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 1187, - "src": "9367:110:1" + "scope": 1266, + "src": "10046:118:1" } ], - "src": "103:9375:1" + "src": "103:10062:1" }, "compiler": { "name": "solc", @@ -25226,7 +27651,7 @@ }, "networks": {}, "schemaVersion": "3.2.3", - "updatedAt": "2020-08-28T09:22:10.553Z", + "updatedAt": "2020-08-30T09:23:52.322Z", "devdoc": { "kind": "dev", "methods": {}, diff --git a/web/src/contracts/Wormhole.d.ts b/web/src/contracts/Wormhole.d.ts index 8e613205..70e2c435 100644 --- a/web/src/contracts/Wormhole.d.ts +++ b/web/src/contracts/Wormhole.d.ts @@ -35,12 +35,13 @@ interface WormholeInterface extends Interface { submitVAA: TypedFunctionDescription<{ encode([vaa]: [Arrayish]): string }>; lockAssets: TypedFunctionDescription<{ - encode([asset, amount, recipient, target_chain, nonce]: [ + encode([asset, amount, recipient, target_chain, nonce, refund_dust]: [ string, BigNumberish, Arrayish, BigNumberish, - BigNumberish + BigNumberish, + boolean ]): string; }>; @@ -189,15 +190,17 @@ export class Wormhole extends Contract { recipient: Arrayish, target_chain: BigNumberish, nonce: BigNumberish, + refund_dust: boolean, overrides?: TransactionOverrides ): Promise; - "lockAssets(address,uint256,bytes32,uint8,uint32)"( + "lockAssets(address,uint256,bytes32,uint8,uint32,bool)"( asset: string, amount: BigNumberish, recipient: Arrayish, target_chain: BigNumberish, nonce: BigNumberish, + refund_dust: boolean, overrides?: TransactionOverrides ): Promise; @@ -304,15 +307,17 @@ export class Wormhole extends Contract { recipient: Arrayish, target_chain: BigNumberish, nonce: BigNumberish, + refund_dust: boolean, overrides?: TransactionOverrides ): Promise; - "lockAssets(address,uint256,bytes32,uint8,uint32)"( + "lockAssets(address,uint256,bytes32,uint8,uint32,bool)"( asset: string, amount: BigNumberish, recipient: Arrayish, target_chain: BigNumberish, nonce: BigNumberish, + refund_dust: boolean, overrides?: TransactionOverrides ): Promise; @@ -433,15 +438,17 @@ export class Wormhole extends Contract { recipient: Arrayish, target_chain: BigNumberish, nonce: BigNumberish, + refund_dust: boolean, overrides?: TransactionOverrides ): Promise; - "lockAssets(address,uint256,bytes32,uint8,uint32)"( + "lockAssets(address,uint256,bytes32,uint8,uint32,bool)"( asset: string, amount: BigNumberish, recipient: Arrayish, target_chain: BigNumberish, nonce: BigNumberish, + refund_dust: boolean, overrides?: TransactionOverrides ): Promise; diff --git a/web/src/contracts/WormholeFactory.ts b/web/src/contracts/WormholeFactory.ts index b4d5fad6..4548429f 100644 --- a/web/src/contracts/WormholeFactory.ts +++ b/web/src/contracts/WormholeFactory.ts @@ -355,6 +355,11 @@ const _abi = [ internalType: "uint32", name: "nonce", type: "uint32" + }, + { + internalType: "bool", + name: "refund_dust", + type: "bool" } ], name: "lockAssets", @@ -388,4 +393,4 @@ const _abi = [ ]; const _bytecode = - "0x60806040526002600160146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b50604051620037993803806200379983398181016040528101906200005391906200033e565b600160008190555082600260008063ffffffff1681526020019081526020016000206000820151816000019080519060200190620000939291906200014b565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055509050506000600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200047c565b828054828255906000526020600020908101928215620001c7579160200282015b82811115620001c65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200016c565b5b509050620001d69190620001da565b5090565b5b808211156200021357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620001db565b5090565b600081519050620002288162000448565b92915050565b600082601f8301126200024057600080fd5b8151620002576200025182620003db565b620003ad565b915081818352602084019350602081019050838560208402820111156200027d57600080fd5b60005b83811015620002b1578162000296888262000217565b84526020840193506020830192505060018101905062000280565b5050505092915050565b600060408284031215620002ce57600080fd5b620002da6040620003ad565b9050600082015167ffffffffffffffff811115620002f757600080fd5b62000305848285016200022e565b60008301525060206200031b8482850162000327565b60208301525092915050565b600081519050620003388162000462565b92915050565b6000806000606084860312156200035457600080fd5b600084015167ffffffffffffffff8111156200036f57600080fd5b6200037d86828701620002bb565b9350506020620003908682870162000217565b9250506040620003a38682870162000327565b9150509250925092565b6000604051905081810181811067ffffffffffffffff82111715620003d157600080fd5b8060405250919050565b600067ffffffffffffffff821115620003f357600080fd5b602082029050602081019050919050565b6000620004118262000418565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600063ffffffff82169050919050565b620004538162000404565b81146200045f57600080fd5b50565b6200046d8162000438565b81146200047957600080fd5b50565b61330d806200048c6000396000f3fe6080604052600436106100a05760003560e01c806358d62e461161006457806358d62e4614610212578063822d82b31461022e57806399da1d3c14610259578063a31fe40914610284578063b6694c2a146102c1578063f951975a146102fe576100e0565b806313cca1a91461011b5780631a2be4da146101445780633bc0aee61461018157806342b0aefa146101aa5780634db47840146101e7576100e0565b366100e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d790612dbf565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011290612dbf565b60405180910390fd5b34801561012757600080fd5b50610142600480360381019061013d91906123c1565b61033b565b005b34801561015057600080fd5b5061016b60048036038101906101669190612398565b61080c565b6040516101789190612cfd565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a39190612502565b61082c565b005b3480156101b657600080fd5b506101d160048036038101906101cc9190612570565b6110a0565b6040516101de9190612f81565b60405180910390f35b3480156101f357600080fd5b506101fc6110ce565b6040516102099190612f81565b60405180910390f35b61022c600480360381019061022791906124b3565b6110e4565b005b34801561023a57600080fd5b50610243611291565b6040516102509190612f81565b60405180910390f35b34801561026557600080fd5b5061026e6112a7565b60405161027b9190612c3e565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a69190612461565b6112cd565b6040516102b89190612cfd565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e39190612461565b6112ed565b6040516102f59190612c3e565b60405180910390f35b34801561030a57600080fd5b5061032560048036038101906103209190612570565b611320565b6040516103329190612f5f565b60405180910390f35b60026000541415610381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037890612f3f565b60405180910390fd5b600260008190555060008414156103cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c490612e7f565b60405180910390fd5b6000600160149054906101000a900460ff1690506000600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105a7578673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33886040518363ffffffff1660e01b8152600401610470929190612c74565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156104e857600080fd5b505afa1580156104fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105209190612599565b91508673ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561056857600080fd5b505afa15801561057c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a0919061248a565b9050610722565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105e29190612c59565b60206040518083038186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190612547565b90506106613330898b73ffffffffffffffffffffffffffffffffffffffff1661140d909392919063ffffffff16565b60008873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161069c9190612c59565b60206040518083038186803b1580156106b457600080fd5b505afa1580156106c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ec9190612547565b9050610701828261149690919063ffffffff16565b97508873ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab886858b73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156107a657600080fd5b505afa1580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de9190612599565b8a8c8a6040516107f39695949392919061305d565b60405180910390a3505060016000819055505050505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60026000541415610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086990612f3f565b60405180910390fd5b600260008190555060006108d4600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b905060018160ff161461091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390612e1f565b60405180910390fd5b6000610976600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061153e90919063ffffffff16565b905060006109d2600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b60ff16905060008160420260060190506000610a428283898990500389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061159c9092919063ffffffff16565b8051906020012090506004600082815260200190815260200160002060009054906101000a900460ff1615610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390612d9f565b60405180910390fd5b610ab46121ac565b600260008663ffffffff1663ffffffff16815260200190815260200160002060405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610b6357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b19575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816020015163ffffffff161480610bb6575042816020015163ffffffff16115b610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90612ebf565b60405180910390fd5b8360016003600484600001515181610c0957fe5b0402011115610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490612e5f565b60405180910390fd5b60005b84811015610ec9576000610cb7604283026006018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b90506000610d18604284026007018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061165e90919063ffffffff16565b90506000610d79604285026027018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061165e90919063ffffffff16565b90506000610dda604286026047018e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b9050601b8101905085600001518460ff1681518110610df557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660018883868660405160008152602001604052604051610e369493929190612d18565b6020604051602081039080840390855afa158015610e58573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff1614610eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaf90612e3f565b60405180910390fd5b505050508080600101915050610c50565b506000610f26600485018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506114e090919063ffffffff16565b90506060610f8e60058601600587018c8c9050038c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061159c9092919063ffffffff16565b905060018260ff16141561100a57600360009054906101000a900463ffffffff1663ffffffff168763ffffffff1614610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390612ddf565b60405180910390fd5b611005816116bc565b611060565b60108260ff1614156110245761101f8161193a565b61105f565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690612d7f565b60405180910390fd5b5b60016004600086815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b600360049054906101000a900463ffffffff1681565b6002600054141561112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190612f3f565b60405180910390fd5b60026000819055506000341415611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90612e7f565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156111d257600080fd5b505af11580156111e6573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab884600160149054906101000a900460ff16601288348860405161127c96959493929190612ffc565b60405180910390a36001600081905550505050565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113286121ac565b600260008363ffffffff1663ffffffff168152602001908152602001600020604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156113d757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161138d575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b611490846323b872dd60e01b85858560405160240161142e93929190612c9d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611c0a565b50505050565b60006114d883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cd1565b905092915050565b60006001820183511015611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152090612dff565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90612dff565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90612dff565b60405180910390fd5b606082156000811461160157604051915060208201604052611652565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561163f5780518352602083019250602081019050611622565b50868552601f19601f8301166040525050505b50809150509392505050565b600060208201835110156116a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169e90612dff565b60405180910390fd5b60008260208501015190508091505092915050565b60006116d260008361153e90919063ffffffff16565b905060006116ea6004846114e090919063ffffffff16565b905060608160ff1667ffffffffffffffff8111801561170857600080fd5b506040519080825280602002602001820160405280156117375781602001602082028036833780820191505090505b50905060005b8260ff168110156117ba5760006117636014830260050187611d2c90919063ffffffff16565b90508083838151811061177257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061173d565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff1602179055506117fb6121ac565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060008201518160000190805190602001906118679291906121cc565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff1660405161192a929190612f9c565b60405180910390a1505050505050565b60006119506004836114e090919063ffffffff16565b905060006119686005846114e090919063ffffffff16565b90506000611980603285611d2c90919063ffffffff16565b905060006119986046866114e090919063ffffffff16565b905060006119b0606887611d9990919063ffffffff16565b90508360ff168560ff1614156119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290612f1f565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4990612e9f565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611bbd576000611a8460478861165e90919063ffffffff16565b905060008382604051602001611a9b929190612c12565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b48576000611b3660678b6114e090919063ffffffff16565b9050611b4483878684611df7565b9150505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611b83929190612cd4565b600060405180830381600087803b158015611b9d57600080fd5b505af1158015611bb1573d6000803e3d6000fd5b50505050505050611c02565b6000611bd3605388611d2c90919063ffffffff16565b9050611c0084838373ffffffffffffffffffffffffffffffffffffffff16611fa09092919063ffffffff16565b505b505050505050565b6060611c6c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166120269092919063ffffffff16565b9050600081511115611ccc5780806020019051810190611c8c9190612438565b611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc290612eff565b60405180910390fd5b5b505050565b6000838311158290611d19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d109190612d5d565b60405180910390fd5b5060008385039050809150509392505050565b60006014820183511015611d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6c90612dff565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b60006020820183511015611de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd990612dff565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152866037826000f59250508173ffffffffffffffffffffffffffffffffffffffff1663a7a2d3fb8686866040518463ffffffff1660e01b8152600401611ebb93929190612fc5565b600060405180830381600087803b158015611ed557600080fd5b505af1158015611ee9573d6000803e3d6000fd5b50505050816005600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050949350505050565b6120218363a9059cbb60e01b8484604051602401611fbf929190612cd4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611c0a565b505050565b6060612035848460008561203e565b90509392505050565b606061204985612161565b612088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207f90612edf565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516120b29190612bfb565b60006040518083038185875af1925050503d80600081146120ef576040519150601f19603f3d011682016040523d82523d6000602084013e6120f4565b606091505b50915091508115612109578092505050612159565b60008151111561211c5780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121509190612d5d565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156121a357506000801b8214155b92505050919050565b604051806040016040528060608152602001600063ffffffff1681525090565b828054828255906000526020600020908101928215612245579160200282015b828111156122445782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906121ec565b5b5090506122529190612256565b5090565b5b8082111561228d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612257565b5090565b6000813590506122a08161324d565b92915050565b6000815190506122b581613264565b92915050565b6000813590506122ca8161327b565b92915050565b6000815190506122df8161327b565b92915050565b60008083601f8401126122f757600080fd5b8235905067ffffffffffffffff81111561231057600080fd5b60208301915083600182028301111561232857600080fd5b9250929050565b60008135905061233e81613292565b92915050565b60008151905061235381613292565b92915050565b600081359050612368816132a9565b92915050565b60008135905061237d816132c0565b92915050565b600081519050612392816132c0565b92915050565b6000602082840312156123aa57600080fd5b60006123b884828501612291565b91505092915050565b600080600080600060a086880312156123d957600080fd5b60006123e788828901612291565b95505060206123f88882890161232f565b9450506040612409888289016122bb565b935050606061241a8882890161236e565b925050608061242b88828901612359565b9150509295509295909350565b60006020828403121561244a57600080fd5b6000612458848285016122a6565b91505092915050565b60006020828403121561247357600080fd5b6000612481848285016122bb565b91505092915050565b60006020828403121561249c57600080fd5b60006124aa848285016122d0565b91505092915050565b6000806000606084860312156124c857600080fd5b60006124d6868287016122bb565b93505060206124e78682870161236e565b92505060406124f886828701612359565b9150509250925092565b6000806020838503121561251557600080fd5b600083013567ffffffffffffffff81111561252f57600080fd5b61253b858286016122e5565b92509250509250929050565b60006020828403121561255957600080fd5b600061256784828501612344565b91505092915050565b60006020828403121561258257600080fd5b600061259084828501612359565b91505092915050565b6000602082840312156125ab57600080fd5b60006125b984828501612383565b91505092915050565b60006125ce83836125e9565b60208301905092915050565b6125e381613198565b82525050565b6125f281613129565b82525050565b61260181613129565b82525050565b6000612612826130ce565b61261c81856130fc565b9350612627836130be565b8060005b8381101561265857815161263f88826125c2565b975061264a836130ef565b92505060018101905061262b565b5085935050505092915050565b61266e8161313b565b82525050565b61267d81613147565b82525050565b61269461268f82613147565b613213565b82525050565b60006126a5826130d9565b6126af818561310d565b93506126bf8185602086016131e0565b80840191505092915050565b6126d4816131aa565b82525050565b60006126e5826130e4565b6126ef8185613118565b93506126ff8185602086016131e0565b6127088161322f565b840191505092915050565b6000612720601283613118565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000612760601883613118565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b60006127a0602c83613118565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b6000612806603983613118565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b600061286c601283613118565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b60006128ac601883613118565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b60006128ec601583613118565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b600061292c600983613118565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b600061296c601483613118565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b60006129ac601983613118565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b60006129ec601883613118565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612a2c601d83613118565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612a6c602a83613118565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ad2602683613118565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b38601f83613118565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006040830160008301518482036000860152612b888282612607565b9150506020830151612b9d6020860182612bb7565b508091505092915050565b612bb181613171565b82525050565b612bc08161317b565b82525050565b612bcf8161317b565b82525050565b612bde8161318b565b82525050565b612bf5612bf08261318b565b61321d565b82525050565b6000612c07828461269a565b915081905092915050565b6000612c1e8285612be4565b600182019150612c2e8284612683565b6020820191508190509392505050565b6000602082019050612c5360008301846125f8565b92915050565b6000602082019050612c6e60008301846125da565b92915050565b6000604082019050612c8960008301856125da565b612c966020830184612ba8565b9392505050565b6000606082019050612cb260008301866125f8565b612cbf60208301856125f8565b612ccc6040830184612ba8565b949350505050565b6000604082019050612ce960008301856125f8565b612cf66020830184612ba8565b9392505050565b6000602082019050612d126000830184612665565b92915050565b6000608082019050612d2d6000830187612674565b612d3a6020830186612bd5565b612d476040830185612674565b612d546060830184612674565b95945050505050565b60006020820190508181036000830152612d7781846126da565b905092915050565b60006020820190508181036000830152612d9881612713565b9050919050565b60006020820190508181036000830152612db881612753565b9050919050565b60006020820190508181036000830152612dd881612793565b9050919050565b60006020820190508181036000830152612df8816127f9565b9050919050565b60006020820190508181036000830152612e188161285f565b9050919050565b60006020820190508181036000830152612e388161289f565b9050919050565b60006020820190508181036000830152612e58816128df565b9050919050565b60006020820190508181036000830152612e788161291f565b9050919050565b60006020820190508181036000830152612e988161295f565b9050919050565b60006020820190508181036000830152612eb88161299f565b9050919050565b60006020820190508181036000830152612ed8816129df565b9050919050565b60006020820190508181036000830152612ef881612a1f565b9050919050565b60006020820190508181036000830152612f1881612a5f565b9050919050565b60006020820190508181036000830152612f3881612ac5565b9050919050565b60006020820190508181036000830152612f5881612b2b565b9050919050565b60006020820190508181036000830152612f798184612b6b565b905092915050565b6000602082019050612f966000830184612bc6565b92915050565b6000604082019050612fb16000830185612bc6565b612fbe6020830184612bc6565b9392505050565b6000606082019050612fda6000830186612bd5565b612fe76020830185612674565b612ff46040830184612bd5565b949350505050565b600060c0820190506130116000830189612bd5565b61301e6020830188612bd5565b61302b60408301876126cb565b6130386060830186612674565b6130456080830185612ba8565b61305260a0830184612bc6565b979650505050505050565b600060c0820190506130726000830189612bd5565b61307f6020830188612bd5565b61308c6040830187612bd5565b6130996060830186612674565b6130a66080830185612ba8565b6130b360a0830184612bc6565b979650505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061313482613151565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006131a3826131bc565b9050919050565b60006131b58261318b565b9050919050565b60006131c7826131ce565b9050919050565b60006131d982613151565b9050919050565b60005b838110156131fe5780820151818401526020810190506131e3565b8381111561320d576000848401525b50505050565b6000819050919050565b600061322882613240565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b61325681613129565b811461326157600080fd5b50565b61326d8161313b565b811461327857600080fd5b50565b61328481613147565b811461328f57600080fd5b50565b61329b81613171565b81146132a657600080fd5b50565b6132b28161317b565b81146132bd57600080fd5b50565b6132c98161318b565b81146132d457600080fd5b5056fea26469706673582212208f3f419adeb7ca3cd853715b74fc3a8cacdc215c41169446b0565304bd3fa34364736f6c634300060c0033"; + "0x60806040526002600160146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b5060405162003b6738038062003b6783398181016040528101906200005391906200033e565b600160008190555082600260008063ffffffff1681526020019081526020016000206000820151816000019080519060200190620000939291906200014b565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055509050506000600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200047c565b828054828255906000526020600020908101928215620001c7579160200282015b82811115620001c65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200016c565b5b509050620001d69190620001da565b5090565b5b808211156200021357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620001db565b5090565b600081519050620002288162000448565b92915050565b600082601f8301126200024057600080fd5b8151620002576200025182620003db565b620003ad565b915081818352602084019350602081019050838560208402820111156200027d57600080fd5b60005b83811015620002b1578162000296888262000217565b84526020840193506020830192505060018101905062000280565b5050505092915050565b600060408284031215620002ce57600080fd5b620002da6040620003ad565b9050600082015167ffffffffffffffff811115620002f757600080fd5b62000305848285016200022e565b60008301525060206200031b8482850162000327565b60208301525092915050565b600081519050620003388162000462565b92915050565b6000806000606084860312156200035457600080fd5b600084015167ffffffffffffffff8111156200036f57600080fd5b6200037d86828701620002bb565b9350506020620003908682870162000217565b9250506040620003a38682870162000327565b9150509250925092565b6000604051905081810181811067ffffffffffffffff82111715620003d157600080fd5b8060405250919050565b600067ffffffffffffffff821115620003f357600080fd5b602082029050602081019050919050565b6000620004118262000418565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600063ffffffff82169050919050565b620004538162000404565b81146200045f57600080fd5b50565b6200046d8162000438565b81146200047957600080fd5b50565b6136db806200048c6000396000f3fe6080604052600436106100a05760003560e01c806370713960116100645780637071396014610205578063822d82b31461022e57806399da1d3c14610259578063a31fe40914610284578063b6694c2a146102c1578063f951975a146102fe576100e0565b80631a2be4da1461011b5780633bc0aee61461015857806342b0aefa146101815780634db47840146101be57806358d62e46146101e9576100e0565b366100e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d79061318d565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101129061318d565b60405180910390fd5b34801561012757600080fd5b50610142600480360381019061013d91906126ce565b61033b565b60405161014f91906130ab565b60405180910390f35b34801561016457600080fd5b5061017f600480360381019061017a919061284a565b61035b565b005b34801561018d57600080fd5b506101a860048036038101906101a391906128b8565b610bcf565b6040516101b5919061334f565b60405180910390f35b3480156101ca57600080fd5b506101d3610bfd565b6040516101e0919061334f565b60405180910390f35b61020360048036038101906101fe91906127fb565b610c13565b005b34801561021157600080fd5b5061022c600480360381019061022791906126f7565b610dc0565b005b34801561023a57600080fd5b50610243611461565b604051610250919061334f565b60405180910390f35b34801561026557600080fd5b5061026e611477565b60405161027b9190612fec565b60405180910390f35b34801561029057600080fd5b506102ab60048036038101906102a691906127a9565b61149d565b6040516102b891906130ab565b60405180910390f35b3480156102cd57600080fd5b506102e860048036038101906102e391906127a9565b6114bd565b6040516102f59190612fec565b60405180910390f35b34801561030a57600080fd5b50610325600480360381019061032091906128b8565b6114f0565b604051610332919061332d565b60405180910390f35b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156103a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103989061330d565b60405180910390fd5b60026000819055506000610403600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b905060018160ff161461044b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610442906131ed565b60405180910390fd5b60006104a5600185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061163b90919063ffffffff16565b90506000610501600586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b60ff169050600081604202600601905060006105718283898990500389898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506116999092919063ffffffff16565b8051906020012090506004600082815260200190815260200160002060009054906101000a900460ff16156105db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d29061316d565b60405180910390fd5b6105e36124cd565b600260008663ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561069257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610648575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152505090506000816020015163ffffffff1614806106e5575042816020015163ffffffff16115b610724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071b9061328d565b60405180910390fd5b836001600360048460000151518161073857fe5b040201111561077c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107739061322d565b60405180910390fd5b60005b848110156109f85760006107e6604283026006018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b90506000610847604284026007018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061175b90919063ffffffff16565b905060006108a8604285026027018d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061175b90919063ffffffff16565b90506000610909604286026047018e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b9050601b8101905085600001518460ff168151811061092457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166001888386866040516000815260200160405260405161096594939291906130c6565b6020604051602081039080840390855afa158015610987573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff16146109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de9061320d565b60405180910390fd5b50505050808060010191505061077f565b506000610a55600485018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506115dd90919063ffffffff16565b90506060610abd60058601600587018c8c9050038c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506116999092919063ffffffff16565b905060018260ff161415610b3957600360009054906101000a900463ffffffff1663ffffffff168763ffffffff1614610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b22906131ad565b60405180910390fd5b610b34816117b9565b610b8f565b60108260ff161415610b5357610b4e81611a37565b610b8e565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b859061314d565b60405180910390fd5b5b60016004600086815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505060016000819055505050565b60026020528060005260406000206000915090508060010160009054906101000a900463ffffffff16905081565b600360049054906101000a900463ffffffff1681565b60026000541415610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c509061330d565b60405180910390fd5b60026000819055506000341415610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c9061324d565b60405180910390fd5b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610d0157600080fd5b505af1158015610d15573d6000803e3d6000fd5b50505050503373ffffffffffffffffffffffffffffffffffffffff1660001b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1660001b7f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab884600160149054906101000a900460ff166012883488604051610dab969594939291906133ca565b60405180910390a36001600081905550505050565b60026000541415610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd9061330d565b60405180910390fd5b60026000819055506000851415610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e499061324d565b60405180910390fd5b6000600160149054906101000a900460ff1690506000808873ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610eaf57600080fd5b505afa158015610ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee791906128e1565b9050600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110ad578873ffffffffffffffffffffffffffffffffffffffff16639dc29fac338a6040518363ffffffff1660e01b8152600401610f76929190613022565b600060405180830381600087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050508873ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b158015610fee57600080fd5b505afa158015611002573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102691906128e1565b92508873ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561106e57600080fd5b505afa158015611082573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a691906127d2565b91506113f2565b60008973ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110e89190613007565b60206040518083038186803b15801561110057600080fd5b505afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611138919061288f565b905061116733308b8d73ffffffffffffffffffffffffffffffffffffffff16611d07909392919063ffffffff16565b60008a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111a29190613007565b60206040518083038186803b1580156111ba57600080fd5b505afa1580156111ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f2919061288f565b90506112078282611d9090919063ffffffff16565b995060098360ff1611156112ee5760008a90506112366009850360ff16600a0a8c611dda90919063ffffffff16565b9a5086156112e8578b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336112776009880360ff16600a0a85611e2490919063ffffffff16565b6040518363ffffffff1660e01b8152600401611294929190613022565b602060405180830381600087803b1580156112ae57600080fd5b505af11580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190612780565b505b60099350505b67ffffffffffffffff801661139260098d73ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561134457600080fd5b505afa158015611358573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137c91906128e1565b0360ff16600a0a83611dda90919063ffffffff16565b11156113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca9061312d565b60405180910390fd5b8a73ffffffffffffffffffffffffffffffffffffffff1660001b935050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b827f6bbd554ad75919f71fd91bf917ca6e4f41c10f03ab25751596a22253bb39aab88886858c8e8c6040516114469695949392919061342b565b60405180910390a35050506001600081905550505050505050565b600360009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114f86124cd565b600260008363ffffffff1663ffffffff168152602001908152602001600020604051806040016040529081600082018054806020026020016040519081016040528092919081815260200182805480156115a757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161155d575b505050505081526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b60006001820183511015611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d906131cd565b60405180910390fd5b60008260018501015190508091505092915050565b60006004820183511015611684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167b906131cd565b60405180910390fd5b60008260048501015190508091505092915050565b6060818301845110156116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d8906131cd565b60405180910390fd5b60608215600081146116fe5760405191506020820160405261174f565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561173c578051835260208301925060208101905061171f565b50868552601f19601f8301166040525050505b50809150509392505050565b600060208201835110156117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b906131cd565b60405180910390fd5b60008260208501015190508091505092915050565b60006117cf60008361163b90919063ffffffff16565b905060006117e76004846115dd90919063ffffffff16565b905060608160ff1667ffffffffffffffff8111801561180557600080fd5b506040519080825280602002602001820160405280156118345781602001602082028036833780820191505090505b50905060005b8260ff168110156118b75760006118606014830260050187611e6e90919063ffffffff16565b90508083838151811061186f57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050808060010191505061183a565b506000600360009054906101000a900463ffffffff16905083600360006101000a81548163ffffffff021916908363ffffffff1602179055506118f86124cd565b6040518060400160405280848152602001600063ffffffff1681525090508060026000600360009054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200190815260200160002060008201518160000190805190602001906119649291906124ed565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff160217905550905050600360049054906101000a900463ffffffff164201600260008463ffffffff1663ffffffff16815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055507fdfb80683934199683861bf00b64ecdf0984bbaf661bf27983dba382e99297a6282600360009054906101000a900463ffffffff16604051611a2792919061336a565b60405180910390a1505050505050565b6000611a4d6004836115dd90919063ffffffff16565b90506000611a656005846115dd90919063ffffffff16565b90506000611a7d603285611e6e90919063ffffffff16565b90506000611a956046866115dd90919063ffffffff16565b90506000611aad606887611edb90919063ffffffff16565b90508360ff168560ff161415611af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aef906132ed565b60405180910390fd5b600160149054906101000a900460ff1660ff168460ff1614611b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b469061326d565b60405180910390fd5b600160149054906101000a900460ff1660ff168260ff1614611cba576000611b8160478861175b90919063ffffffff16565b905060008382604051602001611b98929190612fc0565b60405160208183030381529060405280519060200120905060006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c45576000611c3360678b6115dd90919063ffffffff16565b9050611c4183878684611f39565b9150505b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401611c80929190613082565b600060405180830381600087803b158015611c9a57600080fd5b505af1158015611cae573d6000803e3d6000fd5b50505050505050611cff565b6000611cd0605388611e6e90919063ffffffff16565b9050611cfd84838373ffffffffffffffffffffffffffffffffffffffff166120e29092919063ffffffff16565b505b505050505050565b611d8a846323b872dd60e01b858585604051602401611d289392919061304b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612168565b50505050565b6000611dd283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061222f565b905092915050565b6000611e1c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228a565b905092915050565b6000611e6683836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506122eb565b905092915050565b60006014820183511015611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae906131cd565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b60006020820183511015611f24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1b906131cd565b60405180910390fd5b60008260208501015190508091505092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152866037826000f59250508173ffffffffffffffffffffffffffffffffffffffff1663a7a2d3fb8686866040518463ffffffff1660e01b8152600401611ffd93929190613393565b600060405180830381600087803b15801561201757600080fd5b505af115801561202b573d6000803e3d6000fd5b50505050816005600088815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050949350505050565b6121638363a9059cbb60e01b8484604051602401612101929190613082565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612168565b505050565b60606121ca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123479092919063ffffffff16565b905060008151111561222a57808060200190518101906121ea9190612780565b612229576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612220906132cd565b60405180910390fd5b5b505050565b6000838311158290612277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226e919061310b565b60405180910390fd5b5060008385039050809150509392505050565b600080831182906122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c8919061310b565b60405180910390fd5b5060008385816122dd57fe5b049050809150509392505050565b6000808314158290612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a919061310b565b60405180910390fd5b5082848161233d57fe5b0690509392505050565b6060612356848460008561235f565b90509392505050565b606061236a85612482565b6123a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a0906132ad565b60405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040516123d39190612fa9565b60006040518083038185875af1925050503d8060008114612410576040519150601f19603f3d011682016040523d82523d6000602084013e612415565b606091505b5091509150811561242a57809250505061247a565b60008151111561243d5780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612471919061310b565b60405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91508082141580156124c457506000801b8214155b92505050919050565b604051806040016040528060608152602001600063ffffffff1681525090565b828054828255906000526020600020908101928215612566579160200282015b828111156125655782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061250d565b5b5090506125739190612577565b5090565b5b808211156125ae57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101612578565b5090565b6000813590506125c18161361b565b92915050565b6000813590506125d681613632565b92915050565b6000815190506125eb81613632565b92915050565b60008135905061260081613649565b92915050565b60008151905061261581613649565b92915050565b60008083601f84011261262d57600080fd5b8235905067ffffffffffffffff81111561264657600080fd5b60208301915083600182028301111561265e57600080fd5b9250929050565b60008135905061267481613660565b92915050565b60008151905061268981613660565b92915050565b60008135905061269e81613677565b92915050565b6000813590506126b38161368e565b92915050565b6000815190506126c88161368e565b92915050565b6000602082840312156126e057600080fd5b60006126ee848285016125b2565b91505092915050565b60008060008060008060c0878903121561271057600080fd5b600061271e89828a016125b2565b965050602061272f89828a01612665565b955050604061274089828a016125f1565b945050606061275189828a016126a4565b935050608061276289828a0161268f565b92505060a061277389828a016125c7565b9150509295509295509295565b60006020828403121561279257600080fd5b60006127a0848285016125dc565b91505092915050565b6000602082840312156127bb57600080fd5b60006127c9848285016125f1565b91505092915050565b6000602082840312156127e457600080fd5b60006127f284828501612606565b91505092915050565b60008060006060848603121561281057600080fd5b600061281e868287016125f1565b935050602061282f868287016126a4565b92505060406128408682870161268f565b9150509250925092565b6000806020838503121561285d57600080fd5b600083013567ffffffffffffffff81111561287757600080fd5b6128838582860161261b565b92509250509250929050565b6000602082840312156128a157600080fd5b60006128af8482850161267a565b91505092915050565b6000602082840312156128ca57600080fd5b60006128d88482850161268f565b91505092915050565b6000602082840312156128f357600080fd5b6000612901848285016126b9565b91505092915050565b60006129168383612931565b60208301905092915050565b61292b81613566565b82525050565b61293a816134f7565b82525050565b612949816134f7565b82525050565b600061295a8261349c565b61296481856134ca565b935061296f8361348c565b8060005b838110156129a0578151612987888261290a565b9750612992836134bd565b925050600181019050612973565b5085935050505092915050565b6129b681613509565b82525050565b6129c581613515565b82525050565b6129dc6129d782613515565b6135e1565b82525050565b60006129ed826134a7565b6129f781856134db565b9350612a078185602086016135ae565b80840191505092915050565b612a1c81613578565b82525050565b6000612a2d826134b2565b612a3781856134e6565b9350612a478185602086016135ae565b612a50816135fd565b840191505092915050565b6000612a686023836134e6565b91507f6272696467652062616c616e636520776f756c6420657863656564206d61786960008301527f6d756d00000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ace6012836134e6565b91507f696e76616c69642056414120616374696f6e00000000000000000000000000006000830152602082019050919050565b6000612b0e6018836134e6565b91507f5641412077617320616c726561647920657865637574656400000000000000006000830152602082019050919050565b6000612b4e602c836134e6565b91507f706c6561736520757365206c6f636b45544820746f207472616e73666572204560008301527f544820746f20536f6c616e6100000000000000000000000000000000000000006020830152604082019050919050565b6000612bb46039836134e6565b91507f6f6e6c79207468652063757272656e7420677561726469616e2073657420636160008301527f6e206368616e67652074686520677561726469616e20736574000000000000006020830152604082019050919050565b6000612c1a6012836134e6565b91507f52656164206f7574206f6620626f756e647300000000000000000000000000006000830152602082019050919050565b6000612c5a6018836134e6565b91507f5641412076657273696f6e20696e636f6d70617469626c6500000000000000006000830152602082019050919050565b6000612c9a6015836134e6565b91507f564141207369676e617475726520696e76616c696400000000000000000000006000830152602082019050919050565b6000612cda6009836134e6565b91507f6e6f2071756f72756d00000000000000000000000000000000000000000000006000830152602082019050919050565b6000612d1a6014836134e6565b91507f616d6f756e74206d757374206e6f7420626520300000000000000000000000006000830152602082019050919050565b6000612d5a6019836134e6565b91507f7472616e73666572206d75737420626520696e636f6d696e67000000000000006000830152602082019050919050565b6000612d9a6018836134e6565b91507f677561726469616e2073657420686173206578706972656400000000000000006000830152602082019050919050565b6000612dda601d836134e6565b91507f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006000830152602082019050919050565b6000612e1a602a836134e6565b91507f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008301527f6f742073756363656564000000000000000000000000000000000000000000006020830152604082019050919050565b6000612e806026836134e6565b91507f73616d6520636861696e207472616e736665727320617265206e6f742073757060008301527f706f7274656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612ee6601f836134e6565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b60006040830160008301518482036000860152612f36828261294f565b9150506020830151612f4b6020860182612f65565b508091505092915050565b612f5f8161353f565b82525050565b612f6e81613549565b82525050565b612f7d81613549565b82525050565b612f8c81613559565b82525050565b612fa3612f9e82613559565b6135eb565b82525050565b6000612fb582846129e2565b915081905092915050565b6000612fcc8285612f92565b600182019150612fdc82846129cb565b6020820191508190509392505050565b60006020820190506130016000830184612940565b92915050565b600060208201905061301c6000830184612922565b92915050565b60006040820190506130376000830185612922565b6130446020830184612f56565b9392505050565b60006060820190506130606000830186612940565b61306d6020830185612940565b61307a6040830184612f56565b949350505050565b60006040820190506130976000830185612940565b6130a46020830184612f56565b9392505050565b60006020820190506130c060008301846129ad565b92915050565b60006080820190506130db60008301876129bc565b6130e86020830186612f83565b6130f560408301856129bc565b61310260608301846129bc565b95945050505050565b600060208201905081810360008301526131258184612a22565b905092915050565b6000602082019050818103600083015261314681612a5b565b9050919050565b6000602082019050818103600083015261316681612ac1565b9050919050565b6000602082019050818103600083015261318681612b01565b9050919050565b600060208201905081810360008301526131a681612b41565b9050919050565b600060208201905081810360008301526131c681612ba7565b9050919050565b600060208201905081810360008301526131e681612c0d565b9050919050565b6000602082019050818103600083015261320681612c4d565b9050919050565b6000602082019050818103600083015261322681612c8d565b9050919050565b6000602082019050818103600083015261324681612ccd565b9050919050565b6000602082019050818103600083015261326681612d0d565b9050919050565b6000602082019050818103600083015261328681612d4d565b9050919050565b600060208201905081810360008301526132a681612d8d565b9050919050565b600060208201905081810360008301526132c681612dcd565b9050919050565b600060208201905081810360008301526132e681612e0d565b9050919050565b6000602082019050818103600083015261330681612e73565b9050919050565b6000602082019050818103600083015261332681612ed9565b9050919050565b600060208201905081810360008301526133478184612f19565b905092915050565b60006020820190506133646000830184612f74565b92915050565b600060408201905061337f6000830185612f74565b61338c6020830184612f74565b9392505050565b60006060820190506133a86000830186612f83565b6133b560208301856129bc565b6133c26040830184612f83565b949350505050565b600060c0820190506133df6000830189612f83565b6133ec6020830188612f83565b6133f96040830187612a13565b61340660608301866129bc565b6134136080830185612f56565b61342060a0830184612f74565b979650505050505050565b600060c0820190506134406000830189612f83565b61344d6020830188612f83565b61345a6040830187612f83565b61346760608301866129bc565b6134746080830185612f56565b61348160a0830184612f74565b979650505050505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006135028261351f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006135718261358a565b9050919050565b600061358382613559565b9050919050565b60006135958261359c565b9050919050565b60006135a78261351f565b9050919050565b60005b838110156135cc5780820151818401526020810190506135b1565b838111156135db576000848401525b50505050565b6000819050919050565b60006135f68261360e565b9050919050565b6000601f19601f8301169050919050565b60008160f81b9050919050565b613624816134f7565b811461362f57600080fd5b50565b61363b81613509565b811461364657600080fd5b50565b61365281613515565b811461365d57600080fd5b50565b6136698161353f565b811461367457600080fd5b50565b61368081613549565b811461368b57600080fd5b50565b61369781613559565b81146136a257600080fd5b5056fea2646970667358221220c2c5c5efcbf02fa3995baa2a1d9f45dfa7344533b3f1c0232cdb372ed8dc4c0764736f6c634300060c0033"; diff --git a/web/src/pages/Transfer.tsx b/web/src/pages/Transfer.tsx index b589a4a3..dadcc925 100644 --- a/web/src/pages/Transfer.tsx +++ b/web/src/pages/Transfer.tsx @@ -31,7 +31,7 @@ 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, 10) + let res = await wh.lockAssets(asset, amount, recipient, target_chain, 10, false) 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"})